php7.0
ApacheをUbuntu 16.04 マシンにインストールしましたmysql
が、「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のものを削除し、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.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で新しく利用可能になり、このタイプの使用ケース専用になったの使用を検討する必要があります。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 で実行されるとおっしゃっています。
kermitにwww-dataを追加するか、php-fpmプール設定のソケット権限をkermit:www-dataのように変更する必要があります。
答え3
私は、グループをwww-dataに変更し、apache-22および24の後のバージョンで行われた他のいくつかの変更を加えることで、これを修正することができました。