Você precisa recompilar suexec.c --with-suexec-docroot = / srv / www
Meus sites estavam todos funcionando bem antes ... Não sei quando aconteceu porque notei isso uma semana depois (imagino que talvez depois de uma atualização do sistema), mas todos os meus VirtualHosts ficaram offline com o temido "Premature". fim do cabeçalho do script: php-fcgid-wrapper ”500 erro.
Os registros do SuExec me deram isso para cada site:
[2012-07-16 00:45:02]: uid: (1001/site) gid: (1001/site) cmd: php-fcgid-wrapper
[2012-07-16 00:45:02]: command not in docroot (/var/www/site/fcgi-bin/php-fcgid-wrapper)
Isso não é (ou pelo menos não deveria ser) verdadeiro ... Eu compilarão automaticamente o Apache com --with-suexec-docroot=/srv/www
set. Ainda assim, eu tentei uma verificação de sanidade, para ver que docroot SuExec realmente achava que tinha:
$ suexec -V
suexec policy violation: see suexec log for more details
Para o qual os registros foram reivindicados:
[2012-07-16 01:07:52]: too few arguments
Tentei com sudo também; mesma coisa. Então, mesmo isso não faz sentido, e me impede de ser capaz de diagnosticar o problema corretamente.
Outra coisa que eu tentei foi mover tudo de /srv/www
para /var/www
, o docroot padrão, para ver se ele havia sido revertido para a versão de repositório bruta durante a atualização. Atualizei meus VirtealHosts, reiniciei o Apache, mas ainda recebi os mesmos 500 erros.
O que mais poderia estar causando isso?
Você não precisa recompilá-lo. Você pode usar este pacote para definir um caminho personalizado no debian ou ubuntu:
apt-get install apache2-suexec-custom
Depois de instalar o pacote, existe um diretório especial, onde você pode definir o caminho suexec para cada usuário. Deve haver um arquivo de exemplo para o usuário www-data:
/etc/apache/suexec/<some-user-name>
Se você não tem Debian ou Ubuntu, você tem que procurar por um pacote ou recompilar o suexec com o docroot correto (veja suexec doc ). O param é:
--with-suexec-docroot=DIR
Você precisa verificar como fazer isso na sua distro.
Encontre as configurações do fcgid com este comando:
/usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
O wrapper deve ser escrito na árvore de diretórios de: AP_DOC_ROOT para ser acessado e executado.
Existe um arquivo de dados www (/ etc / apache2 / suexec / www-data) com 2 linhas:
/var/www
/public/cgi-bin/
você pode mudar as linhas para o que você preferir
Tags php fastcgi apache-2.2 suexec arch-linux