Я настраиваю среду suexec с Apache2 и PHP 7.0 с FastCGI.
Я установил все обычным способом
Aptitude install libapache2-mod-fcgid apache2-suexec-custom
A2enmod suexec
Мой сервер имеет следующую структуру:
SuEXEC пока работает, но есть серьезная проблема: по какой-то причине suEXEC запрашивает / etc / apache2 / suexec / www-data вместо / etc / apache2 / suexec / username, поэтому я может работать только мой веб-сайт в / data или веб-сайты в / home, но не то и другое одновременно. Я не понимаю этого, поскольку ни один скрипт на моем сервере не принадлежит www-data.
/ etc / apache2 / suexec / www-data (без изменений, поскольку я не t использовать www-data)
/var/www
public_html/cgi-bin
/ etc / apache2 / suexec / homepage
/data
www/cgi-bin
/ etc / apache2 / suexec / userXYZ
/home/userXYZ
public_html/cgi-bin
/ data / www / cgi-bin / php-fcgi
#!/bin/sh
export PHPRC="/etc/php/7.0/cgi"
exec /usr/bin/php-cgi
/ home / userXYZ /public_html/cgi-bin/php-fcgi
#!/bin/sh
export PHPRC="/etc/php/7.0/cgi"
exec /usr/bin/php-cgi
/etc/apache2/sites-enabled/...
<Directory /data/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
FCGIWrapper /data/www/cgi-bin/php-fcgi .php
<FilesMatch \.php$>
SetHandler fcgid-script
</FilesMatch>
Options +ExecCGI
</Directory>
<Directory /home/userXYZ/public_html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
FCGIWrapper /home/userXYZ/public_html/cgi-bin/php-fcgi .php
<FilesMatch \.php$>
SetHandler fcgid-script
</FilesMatch>
Options +ExecCGI
</Directory>
<VirtualHost *:80>
DocumentRoot "/home/userXYZ/public_html"
SuexecUserGroup userXYZ userXYZ
ServerName ...
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/data/www"
SuexecUserGroup homepage homepage
ServerName ...
</VirtualHost>
Итак, когда я получаю доступ к своему основному дому (/ data / www), он не работает, так как suexec / Документ www-data.conf находится в / var / www. Если я изменю suexec / www-data.conf на / data, то основная домашняя страница будет работать. Но тогда сайты пользователей не работают, так как они находятся в / home. Если я изменю www-data на / home, моя главная домашняя страница не будет работать, так как ее корневой каталог находится в / data ... Как я могу избежать того, что suEXEC запрашивает конфигурацию www-data, а вместо этого запрашивает правильную конфигурацию пользователя?
Согласно https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785740 :
Идея состоит в том, чтобы иметь возможность запускать разные процессы apache2 как разные пользователи могут использовать разные конфигурации suexec.
Таким образом, если apache2 работает под www-data, рассматривается только файл / etc / apache2 / suexec / www-data.