我已经在Ubuntu 16.04机器上安装了Apache PHP7.0和
mysql,我得到了答案“PHP没有运行”.这是我的vhost配置:
<VirtualHost *:80> ServerAdmin webmaster@example.com ServerName www.example.com DocumentRoot /var/www/sites/www.example.com/httpdocs ScriptAlias "cgi-bin" "/var/www/sites/wwww.example.com/cgi-bin" ErrorLog ${APACHE_LOG_DIR}/www.example.com.error_log LogLevel debug CustomLog ${APACHE_LOG_DIR}/www.example.com.log combined <IfModule mod_fastcgi.c> AddHandler PHP7-fcgi .PHP Action PHP7-fcgi /PHP7-fcgi virtual Alias /PHP7-fcgi-kermit /usr/lib/cgi-bin/PHP7-fcgi-kermit FastCgiExternalServer /usr/lib/cgi-bin/PHP7-fcgi-kermit -socket /run/PHP/PHP7.0-fpm.kermit.sock -pass-header Authorization <Directory "/usr/lib/cgi-bin"> Require all granted </Directory> </IfModule> <IfModule mod_fastcgi.c> <FilesMatch ".+\.ph(p[345]?|t|tml)$"> SetHandler PHP7-fcgi-kermit </FilesMatch> </IfModule> </VirtualHost>
当我尝试访问该网站时,它不是解析PHP而是将其打印到屏幕上.
有人有什么想法吗?
我已经摆脱了以前用于处理apache 2.2的所有其他fpm的东西,并将此行添加到conf中
ProxyPassMatch ^/(.*\.PHP(/.*)?)$unix:/var/run/PHP/PHP7.0-fpm.kermit.sock|fcgi://localhost/var/www/sites/www.example.com/httpdocs
[Wed Mar 21 13:04:35.539499 2018] [proxy:error] [pid 26569] (13)Permission denied: AH02454: FCGI: attempt to connect to Unix domain socket /var/run/PHP/PHP7.0-fpm.kermit.sock (localhost) Failed
对于套接字来说,permisssions看起来是正确的
srw-rw---- 1 kermit kermit 0 Mar 21 13:00 PHP7.0-fpm.kermit.sock=
我不知道它在哪里得到=但是
如果您使用的是PHP-FPM,则应考虑使用mod_proxy_fcgi,它是Apache 2.4中新增的,仅适用于此类用例.
Apache wiki entry for PHP-FPM有一些良好的入门指导.
mod_proxy_fcgi
documentation还包括设置PHP-FPM的具体示例,PHP documentation也提供了有用的信息.