Я настраиваю среду 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 , или веб-сайты в / дома работают, но не то и другое одновременно. Я не понимаю этого, поскольку ни один скрипт на моем сервере не принадлежит www-data.
/ etc / apache2 / suexec / www-data (без изменений, так как я не использую www-data)
/var/www
public_html/cgi-bin
/ и т. д. / apache2 / suexec / домашняя страница
/data
www/cgi-bin
/ и т. д. / apache2 / suexec / userXYZ
/home/userXYZ
public_html/cgi-bin
/ данные / www / cgi-bin / php-fcgi
#!/bin/sh
export PHPRC="/etc/php/7.0/cgi"
exec /usr/bin/php-cgi
/ главная / userXYZ / public_html / cgi-bin / php-fcgi
#!/bin/sh
export PHPRC="/etc/php/7.0/cgi"
exec /usr/bin/php-cgi
/ и т.д. / apache2 / сайты-включен / ...
<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.