php7.0-fpm 不工作

php7.0-fpm 不工作

我已经在 Ubuntu 16.04 机器上安装了 Apache php7.0mysql但得到的答案是“php 未运行”。这是我的 vhost 配置:

<VirtualHost *:80>
  ServerAdmin [email protected]
  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 内容,并将此行添加到配置文件中

ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php/php7.0-fpm.kermit.sock|fcgi://localhost/var/www/sites/www.example.com/httpdocs  

现在我在错误日志中收到以下错误

[2018 年 3 月 21 日星期三 13:04:35.539499] [proxy:error] [pid 26569](13)权限被拒绝:AH02454:FCGI:尝试连接到 Unix 域套接字 /var/run/php/php7.0-fpm.kermit.sock(localhost)失败

该套接字的权限看起来正确

srw-rw----  1 kermit   kermit     0 Mar 21 13:00 php7.0-fpm.kermit.sock=  

我不知道那个= 符号从哪里来的

答案1

如果您正在使用 PHP-FPM,则应考虑使用mod_proxy_fcgi,它是 Apache 2.4 中新推出的,仅适用于此类用例。Apache wiki 中有关 PHP-FPM 的条目有一些很好的入门指导。

mod_proxy_fcgi文档还包括设置 PHP-FPM 的具体示例以及PHP 文档还有有用的信息。

答案2

您的套接字权限不正确:“srw-rw---- 1 kermit kermit 0 Mar 21 13:00 php7.0-fpm.kermit.sock”

您说 Apache 使用 www-data 运行。

您要么需要将 www-data 添加到 kermit,要么将 php-fpm 池配置中的套接字权限更改为类似 kermit:www-data

答案3

我可以通过将组更改为 www-data 以及在 apache-22 和 24 的后续版本中发生的其他一些更改来解决这个问题

相关内容