我正在用Apache2和PHP 7.0与FastCGIbuild立一个suexec环境。
我已经安装了一切正常的方式
Aptitude install libapache2-mod-fcgid apache2-suexec-custom A2enmod suexec
我的服务器有以下结构:
到目前为止,SuEXEC的工作,但有一个主要的问题:由于某种原因,suEXEC查询/ etc / apache2 / suexec /万维网数据而不是/ etc / apache2 / suexec /用户名,因此我只能有我的网站/数据工作,或在/在家工作的网站,但不是两个。 我不明白,因为我的服务器上没有脚本是由万维网数据拥有。
/ etc / apache2 / suexec / www-data(不变,因为我不使用www-data)
/var/www public_html/cgi-bin
在/ etc / apache2的/ suexec的/主页
/data www/cgi-bin
的/ etc / apache2的/ suexec的/ userXYZ
/home/userXYZ public_html/cgi-bin
/数据/networking/的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
在/ etc /启用站点-的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上有它的docroot。 如果我将suexec / www-data.conf更改为/ data,那么主页将工作。 但是,那么用户网站不工作,因为他们位于/ home。 如果我将www-data更改为/ home,那么我的主页不起作用,因为它的docroot位于/ data …我怎样才能避免suEXEC查询www-dataconfiguration,而是查询正确的用户configuration?
根据https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785740 :
这个想法是能够运行不同的apache2进程,因为不同的用户可以使用不同的suexecconfiguration。
因此,如果apache2在www-data下运行,只考虑文件/ etc / apache2 / suexec / www-data。