Apache2 PHP-FPM配置池

时间:2016-09-13 16:50:27

标签: php apache fastcgi pool 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>

然后我创建了一个名为“web”的用户

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-data”,而它应显示“web”

那我的Apache配置有什么问题?

0 个答案:

没有答案