Apache2 PHP-FPM настройка пулов

Я пытаюсь установить пулы для запуска сценариев 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?

0 ответов

Другие вопросы по тегам