У меня есть сервер Debian 6, и я ранее использовал Apache с mod_php, но решил переключиться на использование fcgi, поскольку Wordpress каким-то образом вызывал сбой Apache. В конфигурационном файле Apache моего сайта есть следующее:
Options +ExecCGI
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
SuexecUserGroup "#1001" "#1003"
Все работает нормально, если я не включаю SuexecUserGroup
, но, очевидно, затем он запускает сценарий как www-data
вместо пользователя и группы выше. Когда я включаю эту строку, я получаю ошибку 500, и в моем suexec.log
файл:
[2013-05-22 16:00:12]: command not in docroot (/usr/lib/cgi-bin/php5)
Все было установлено с помощью пакетов, поэтому я даже не знаю, где находится docroot является.
Вот моя информация о suexec:
# /usr/lib/apache2/suexec -V
-D SUEXEC_CONFIG_DIR=/etc/apache2/suexec/
-D AP_GID_MIN=100
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
И разрешения для моего файла php5, если это имеет к нему какое-либо отношение:
# ls -l /usr/lib/cgi-bin/php5
-rwxr-xr-x 1 root root 7769160 Mar 4 08:25 /usr/lib/cgi-bin/php5
Корень документа в сообщении об ошибке - это suexec
корень документа. По соображениям безопасности вы не можете напрямую использовать FCGIWrapper
команды, которые не содержатся в вашем каталоге suexec. По умолчанию это /var/www/
, однако при использовании apache2-suexec-custom
, вы можете изменить это на любой каталог, который хотите, изменив первую строку в /etc/apache2/suexec/www-data
файл.