Eu tenho um aplicativo PHP 8.3 rodando em um vhost no Apache2 rodando no subsistema Windows para Linux V1. É muito lento e a atualização de uma única página pode levar um ou dois minutos.
Quando trabalho nele (abro no navegador), todo o servidor Apache2 congela por dois minutos.
Durante este período, não consigo acessar outros vhosts ou recuperar uma listagem de diretório, que não esteja usando PHP.
Eu tentei a abordagem FPM e libapache2-mod-php e ainda enfrento o problema.
Eu configurei loglevel warn
, mas não vejo nada.
Eu também experimentei essas configurações e ainda nada.
StartServers 100
MinSpareServers 100
MaxSpareServers 1024
ServerLimit 16000
MaxRequestWorkers 16000
MaxConnectionsPerChild 10000
#Timeout 300
KeepAlive On
MaxKeepAliveRequests 0
#KeepAliveTimeout 5
Saída deapachectl -S
VirtualHost configuration:
*:80 Varun-PC. (/etc/apache2/sites-enabled/vhosts.conf:4)
*:443 is a NameVirtualHost
default server Varun-PC. (/etc/apache2/sites-enabled/vhosts.conf:10)
port 443 namevhost Varun-PC. (/etc/apache2/sites-enabled/vhosts.conf:10)
alias win
port 443 namevhost Varun-PC. (/etc/apache2/sites-enabled/vhosts.conf:22)
alias trading.win
port 443 namevhost Varun-PC. (/etc/apache2/sites-enabled/vhosts.conf:31)
alias trading_secret.win
port 443 namevhost Varun-PC. (/etc/apache2/sites-enabled/vhosts.conf:54)
alias pma.win
port 443 namevhost Varun-PC. (/etc/apache2/sites-enabled/vhosts.conf:66)
wild alias *.*.*.win
port 443 namevhost Varun-PC. (/etc/apache2/sites-enabled/vhosts.conf:78)
wild alias *.*.win
port 443 namevhost Varun-PC. (/etc/apache2/sites-enabled/vhosts.conf:88)
wild alias *.win
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
Como faço para resolver isso?
Este deveria ser um comentário, mas é um pouco longo.
A situação que você descreve é excepcionalmente estranha. Embora eu concorde que o WSL geralmente não se comporta como uma VM Linux ou um host nativo, isso pouco explica o problema - embora se o Apache ou o PHP estiverem tentando acessar quaisquer recursos no host MS-Windows - esse pode ser o problema. O MS-Windows é muito pesado com bloqueios de arquivos exclusivos.
Então NÃO use o aplicativo para testar o servidor web. Se você ainda não fez isso, tente executar isto:
Para criar o primeiro processo, então...
Se você conseguir que o segundo script seja executado simultaneamente, o problema está no seu código, não na configuração do servidor web/PHP.
Se o segundo script estiver bloqueado, tente comparar lsof para os 2 processos e verifique a saída de
top
Executei o script do symcbean enquanto tentava desabilitar lentamente diferentes extensões PHP e módulos do Apache para ver o que estava causando o problema.
Acontece que foi o módulo SSL do Apache2 que estava causando o problema no meu caso. Assim que o desativei, o problema parou completamente.