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

Я настраиваю среду suexec с Apache2 и PHP 7.0 с FastCGI.

Я установил все обычным способом

Aptitude install libapache2-mod-fcgid apache2-suexec-custom
A2enmod suexec

Мой сервер имеет следующую структуру:

  • Есть пользователи, которые имеют свои веб-сайты в / home / имя пользователя / public_html / (пользователь Linux « имя пользователя »)
  • , а главный веб-сайт имеет корневой каталог в / data / www / ( пользователь "домашняя страница").

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, а вместо этого запрашивает правильную конфигурацию пользователя?

0
задан 12 August 2017 в 14:00
1 ответ

Согласно https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785740 :

Идея состоит в том, чтобы иметь возможность запускать разные процессы apache2 как разные пользователи могут использовать разные конфигурации suexec.

Таким образом, если apache2 работает под www-data, рассматривается только файл / etc / apache2 / suexec / www-data.

1
ответ дан 4 December 2019 в 16:10

Теги

Похожие вопросы