UbuntuをアップデートしたらPHPが動かなくなった

Ubuntu をアップデート

久しぶりに自宅サーバにログインしたら、以下のような表示が出ていた。

アップデートする場合は、「do-release-upgrade」を実行せよとのことだったので、何も考えずに実行した。

アップデートに30分ほど掛かったが、特に何事もなく終わった。アップデート後、以下のコマンドを叩いてアップデート後のバージョンを確認した。

以前は、VERSION が 17.x だったので、確かにアップデートされたようです。

PHP が動かなくなっとる!

アップデートしたときは全く気が付かなかったのですが、後日、自室の気温などを監視しているページを見ようとしたら、php のソースコードがまんま表示される状態になっている事が発覚した。

あらら、どうしちゃったのよ!?

タイミング的にどう見ても Ubuntu のアップデートが原因と思われる。

  • アップデートの際に何かの設定が書き換えられたか…
  • 手動起動していたプロセス、手動読込みしたモジュールが再起動によって白紙にされたのか…

ろくなドキュメントを残していないので、今となっては後の祭りです。

作業記録はしっかり残しましょう!

原因の究明

とりあえず、コードとは言えページは表示されるので httpd は生きてるようだ。

ssh でログインして、php -info を実行すると情報が表示されるので、php 自体も動く状況にあるらしい。
ちなみに php -v を実行してみたところ、以下の様に表示された。

PHP が 7.2 になってる…。どうやらアップデートでバージョンが上がったようです。

こうなると、PHP 関連のモジュールが読み込まれてない?くらいしか考えられないので、apache2ctl -M で、ロードされているモジュールを確認してみた。

おや? PHP 関連のモジュールがロードされてない!

ということで、まずは /etc/apache2/mod-available を確認してみた。

php7.2 用の設定ファイル(下線部分)はあるようです。

お次は、/etc/apache2/mod-enable で、設定ファイルをロードするようになっているかを確認。

あれ?PHP関連のロード設定が何も表示されない。

どうやら、設定ファイルの実体は存在するが、apache 起動時に読み込む様になっていない(mods-enable 内に設定ファイルへのリンクが無い)ようです。

復旧作業

復旧作業は極めて簡単。/etc/apache2/mod-enable で、/etc/apache2/mod-available 内の設定ファイルにシンボリックリンクを張るだけです。

シンボリックリンクができているか念のため確認

バッチリできてます。
ちなみに、php7.2.load、php7.2.conf の中身を事前に確認しましたが、変更する必要が無さそうだったので設定内容自体は何も手を加えていません。

これでモジュールを読み込む準備が整ったの apache を再起動。

エラーを吐く事なく再起動完了。

確認のため、自室の気象観測ページにアクセス。見事測定結果が表示されました!

想定外のトラブルで、数時間を無駄にしました。

参考ページ
Apache2 Debian conf どこになにを置けばいいのか

    UbuntuをアップデートしたらPHPが動かなくなった” に対して 2 件のコメントがあります

    この投稿はコメントできません。