php7.0-fpm 不工作

php7.0-fpm 不工作

我已經在 Ubuntu 16.04 機器上安裝了 Apache php7.0mysql但我得到的答案是「php 未運行」。這是我的虛擬主機配置:

<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 東西,並將這一行添加到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)權限被拒絕:AH02454:FCGI:嘗試連線到Unix 網域套接字/var/run/php/php7.0- fpm。

套接字的權限看起來正確

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

我不知道從哪裡得到 = 符號

答案1

如果您使用 PHP-FPM,您應該考慮使用mod_proxy_fcgiApache 2.4 中新提供的 ,並且僅適用於此類用例。這PHP-FPM 的 Apache wiki 條目有一些很好的入門指導。

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 更高版本中發生的一些其他變更來解決此問題

相關內容