Я пытаюсь установить пулы для запуска сценариев PHP от имени разных пользователей, но это не работает.
Вот шаг за шагом, что я сделал (на Ubuntu 16.04):
sudo apt-get install apache2 libapache2-mod-fastcgi php7.0-fpm php7.0
a2enmod actions fastcgi alias
sudo service apache2 restart
vi /etc/apache2/sites-available/000-default.conf
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi .php
Action php7-fcgi /php7-fcgi virtual
Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
Затем я создал пользователя с именем «веб»
sudo adduser web
и настройте его домашний каталог в / var / www / web
Создайте и настройте файл пула для нового пользователя:
sudo cp /etc/php/7.0/fpm/pool.d/www.conf /etc/php/7.0/fpm/pool.d/web.conf
[web]
...
user = web
group = web
...
listen = /run/php/php7.0-fpm.web.sock
...
listen.owner = web
listen.group = web
sudo service php7.0-fpm reload
vi /etc/apache2/sites-available/web.conf
ServerAdmin webmaster@localhost
DocumentRoot /var/www/web
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi-web .php
Action php7-fcgi-web /php7-fcgi-web virtual
Alias /php7-fcgi-web /usr/lib/cgi-bin/php7-fcgi-web
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-web -socket /var/run/php/php7.0-fpm.web.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
sudo a2ensite web.conf
sudo service apache2 reload
Теперь, чтобы убедиться, что php-скрипты работают от имени пользователя, я поместил следующий скрипт в / var / www и var / www / web
<?php
$processUser = posix_getpwuid( posix_geteuid() );
var_dump($processUser);
?>
когда я запускаю /var/www/user.php, он отображает «www-data», что правильно.
Но когда я запускаю /var/www/web/user.php, он все равно отображает «www-данные», тогда как он должен отображать «web»
Так что не так с моим конфигом Apache?
Задача ещё не решена.
Других решений пока нет …