Dud*_*y67 7 apache2 php7 fastcgi
我刚刚在 Ubuntu 18.04 服务器上安装了 LAMP,但我无法让 PHP fastcgi 工作。这是我的设置:
我的 fpm PHP 文件:/etc/php/7.2/fpm/pool.d/sites.mydomain.conf
[sites.mydomain]
...
user = sites
group = sites
...
listen = /run/php/php7.2-fpm.sites.mydomain.sock
...
listen.owner = www-data
listen.group = www-data
Run Code Online (Sandbox Code Playgroud)
然后
sudo service php7.2-fpm reload
sudo service php7.2-fpm restart
Run Code Online (Sandbox Code Playgroud)
我的虚拟主机文件:etc/apache2/sites-available/sites.mydomain.conf
ServerName sites.mydomain
ServerAdmin webmaster@localhost
DocumentRoot /srv/www/sites/html
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi-sites .php
Action php7-fcgi-sites /php7-fcgi-sites
Alias /php7-fcgi-sites /usr/lib/cgi-bin/php7-fcgi-sites
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-sites -idle-timeout 60 -socket /var/run/php/php7.2-fpm.sites.mydomain.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
<Directory /srv/www/sites/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
然后
sudo a2enmod actions
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
但是 PHP 在运行脚本时不被解释,页面显示为纯文本。
有人可以告诉我我的设置有什么问题吗?
注意:我在我的 Ubuntu 16.04 服务器上以完全相同的方式设置它并且它工作正常。
小智 8
不幸的是,我在这里接受了答案的建议,要么是不正确的,要么是切线的。
经过一番挖掘,我意识到有问题的模块(proxy_fcgi)实际上是仿生 apache2-bin 包的一部分
所以只需要:
a2enmod proxy_fcgi
Run Code Online (Sandbox Code Playgroud)
最后就不需要安装这个libapache2-mod-fastcgi包了。
这个技巧发生在etc/apache2/sites-available/sites.mydomain.conf文件中(请参阅上面的示例)。
将<IfModule mod_fastcgi.c>零件替换为
<FilesMatch "\.php$">
SetHandler "proxy:unix:///var/run/php/php7.2-fpm.sites.mydomain.sock|fcgi://sites/"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
你就完成了。
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
24900 次 |
| 最近记录: |