Я пытаюсь заставить suexec работать с PHP на Debian Stretch (Apache 2.4.25).
У меня загружен стандартный набор модулей пакета Debian плюс cgid
и php7.0
.
Это блок VirtualHost
, который я использую в своей тестовой системе:
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
SuexecUserGroup testuser testuser
Он правильно работает с простым скриптом Perl в / var / www / cgi-bin
, который печатает UID процесса. Сценарий печатает 1000
, подтверждая, что suexec работает. Я также получаю ожидаемую строку в suexec.log
:
[2017-07-28 11:54:27]: uid: (1000/testuser) gid: (1000/testuser) cmd: moo.cgi
Однако, когда я использую аналогичный PHP-скрипт, suexec
никогда не вызывается, и скрипт запускается от имени пользователя Apache.
Как заставить suexec работать со скриптами PHP?
Включенный модуль php7.0 обрабатывает ваши PHP-страницы. Отключите его, установите php -cgi и включите его, как
AddHandler cgi-handler.php
Action cgi-handler /usr/bin/php-cgi7.0