0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPバージョンアップ後、設定が効かないときにまず疑うべきこと

0
Posted at

はじめに

本記事は「既存環境を引き継いだときの確認手順」をテーマにしたメモです。

ある案件で、PHP7.4→8.3にすでにバージョンアップ済みのサーバ環境をインフラ担当者から引き継ぎました。
構成はremiリポジトリ+php-fpmです。

引き継ぎ時点で共有されていた情報は、以下のような概要レベルのものでした。

  • PHPは8.3で稼働している
  • remiリポジトリを使用している
  • Webはphp-fpm構成

一方で、
「どのPHPプロセスが、どのphp.iniを読んでいるか」
といった点までは明確になっていませんでした。

引き継ぎ後に設定調整を行おうとしたところ、

  • php.iniを修正しても挙動が変わらない
  • 設定が初期値に戻っているように見える

という状態に遭遇しました。

この時点では、
「php.iniが正しく引き継がれていないのでは?」
と考えていました。

しかし、実際の原因はまったく別のところにありました。

結論

php.iniが引き継がれていなかったわけではありません。

問題だったのは、自分が編集しているphp.iniが、
実際に稼働しているPHPプロセスが読み込んでいるphp.iniだ
と無意識に思い込んでいたことでした。

引き継ぎ後の環境では、
構成を「知っているつもり」で判断すると簡単にズレます。

まず最初にやるべきだったこと

php-fpmプロセスの確認

振り返ってみて、一番最初にやるべきだったのはphp.iniを探すことではありませんでした。

引き継いだ環境ではまず、
「今、Web側で何が実行されているか」
を事実ベースで確認する必要があります。

$ ps aux | grep php-fpm

ここで確認すべきポイントは以下です。

  • php-fpmが起動しているか
  • バージョン付きプロセスか(例:php83-fpm)
  • 複数バージョンのphp-fpmが同時に動いていないか

出力例(remi環境)

root 1234 php-fpm: master process (/etc/opt/remi/php83/php-fpm.conf)
apache 1235 php-fpm: pool www

この時点で、
Web側はPHP8.3(php83-fpm)で動いている
という事実が確定します。

CLI側のPHPとphp.iniを確認

次に、CLI側のPHPを確認しました。

$ php83 -i | grep "Loaded Configuration File"
Loaded Configuration File => /etc/opt/remi/php83/php.ini

remi環境では、php83のようなバージョン付きバイナリが一般的に使われます。

この結果から、php.iniの実体は
/etc/opt/remi/php83/php.ini
であることが分かります。

何を勘違いしていたのか(本当の原因)

引き継いだ環境では、自分が今見ているphp.iniが、
そのまま実行中のPHPに効いているはずだと思い込んでいたことです。

この勘違いは、PHPやremiに詳しくないから起きたものではありません。
むしろ「構成はだいたい分かっている」という状態だからこそ起きたものだと感じています。

なぜそう思ってしまったのか

設定の場所はだいたい想像がつくだろう
という思い込みがありました。

その結果、

  • /etc/php.ini
  • /etc/php/*

といった一般的な配置を前提に設定を確認・編集していました。

しかし実際には、Web側ではphp-fpmプロセスが動作しており、
そのphp-fpmが参照しているのは
/etc/opt/remi/php83/php.ini
でした。

まとめ

  • 引き継ぎ環境では「分かっているつもり」を一度捨てる
  • 設定ファイルを探す前に、まず「何が動いているか」を確認する
  • php.iniは推測ではなく、実行中プロセスから特定する
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?