Ubuntu の Apache + php5-fpm で Internal Server Error

PHP テスト環境として仮想化環境に Ubuntu Server を入れて使用しているのですが、
突然 Internal Server Error が発生するようになりました・・・

環境は次の通り。

  • Ubuntu Server 12.04 LTS
  • Apache2
  • libapache2-mod-fastcgi
  • php5-fpm

バージョンは「apt-get update」⇒「apt-get upgrade」で更新した最新のパッケージ版です。

とりあえずログを見てみると何やらパーミッション関連のエラーが。

(13)Permission denied: FastCGI: failed to connect to server “/usr/sbin/php5-fpm”: connect() failed

ググってみるとそれらしいのを発見。

FPM with apache2 not working (Permission denied)

どうやらソケットを使用している場合にソケットファイルの所有者と php5-fpm の実行ユーザが異なることが原因のようです。

解決方法としては

  • php5-fpm の実行ユーザーを www-data (たぶんデフォルト)
  • Unix ソケットのファイルパスを /var/run/php5-fpm.sock

とした場合、コンフィグファイル /etc/php5/fpm/pool.d/www.conf を

listen.owner = www-data
listen.group = www-data
;listen.mode = 0666

のようにアンコメント。(modeは不要)
※Ubuntu 14.04 LTS の場合はデフォルトで有効の模様

そしてphp5-fpm を再起動させると

sudo service php5-fpm restart

エラーはなくなりました。

他にもソケットのファイルのオーナーを無理矢理変更したり、

sudo chown www-data /var/run/php5-fpm.sock

パーミッションを無理矢理 666 にしたり、

sudo chmod 666 /var/run/php5-fpm.sock

しても一応動きましたが。

以前は問題なく使えていたのですがアップデートで仕様がかわったのかもしれません。
テスト環境ということもありしばらく使っていなかったので気が付きませんでした・・・

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク