Назад | Перейти на главную страницу

suEXEC запрашивает www-данные при попытке выполнить скрипт от имени пользователя XYZ

Я настраиваю среду 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.