Debian 9 Stretch LAMP安装使用FPM的沙盒用户

我试图在Debian 9上设置Apache和FPM,就像我们之前用Debian 7和8完成的一样。我相信,在Apache 2.4中mod_fastcgi被赞成mod_proxy_fcgi的弃用,并且随后将其从Debian 9 apt repos,我一直无法完成我们以前的设置。 基本上,我们使用FPM来在单个服务器(登台/开发服务器)上对多个站点进行沙箱。 最终的结果是,每个站点都拥有并分组到一个用户,FPM在该特定用户的进程下运行该站点。

以下是我们使用的Apache vhost示例:

FastCgiExternalServer /home/siteusername/www/php5-fcgi -socket /tmp/php5-fpm-siteusername.sock -pass-header Authorization <VirtualHost *:80> DocumentRoot /home/username/www/domain.com/public_html/ ServerName www.domain.com <Directory /home/siteusername/www/domain.com/public_html/> AllowOverride all </Directory> <Directory /home/siteusername/www/> Require all granted AllowOverride all </Directory> AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /home/siteusername/www/php5-fcgi <ifModule mod_headers.c> Header set X-Robots-Tag "noindex" </ifModule> </VirtualHost> 

这里是我们使用的一个FPMconfiguration的例子:

 [siteusername] listen = /tmp/php5-fpm-siteusername.sock listen.allowed_clients = 127.0.0.1 listen.owner = www-data listen.group = www-data user = siteusername group = siteusername pm = ondemand pm.max_children = 50 php_admin_value[upload_tmp_dir] = /home/siteusername/tmp/upload php_admin_value[session.save_path] = /home/siteusername/tmp/session 

使用Apache 2.4,PHP 7.0,FPM 7.0,以及mod_proxy_fcgi(和更新版本号)的Debian 9上的确切设置导致启动Apache时出错:

 Invalid command 'FastCgiExternalServer', perhaps misspelled or defined by a module not included in the server configuration 

我假设命令是mod_fastcgi的一部分,没有它,我似乎无法运行在自己的用户下的网站。 而是像任何通常configuration的Apache站点那样运行在www-data下。

到目前为止,我无法find有关如何完成此configuration的文档。 有没有人有任何想法更新的configurationmod_proxy_fcgi是什么?

我处于和你一样的状况,我发现这个解决scheme。

https://www.devops.zone/webserver/installing-php7-fpm-with-apache2-worker-on-ubuntu/

这个对我有用。

祝你好运

尝试这个。

在您的FPM定义中,ADAPT套接字名称以匹配正确的php版本

 [siteusername] listen = /tmp/php7-fpm-siteusername.sock 

(在Debian 9中,不再是php5,而是php7)

在您的Vhost定义中删除以下内容

 FastCgiExternalServer /home/siteusername/www/php5-fcgi -socket /tmp/php5-fpm-siteusername.sock -pass-header Authorization ... AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /home/siteusername/www/php5-fcgi 

在相同的虚拟主机定义中添加以下内容

 <FilesMatch \.php$> SetHandler "proxy:unix:/tmp/php7-fpm-siteusername.sock|fcgi://localhost" </FilesMatch> 

或者,您可以在虚拟主机定义中添加以下内容

 ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/tmp/php7-fpm-siteusername.sock|fcgi://localhost/home/siteusername/www/" 

确保启用了模块mod_proxy和mod_proxy_fcgi

 a2enmod proxy proxy_fcgi