1. TOPTOP
  2. Webサービス
  3. PHP

PHPの設定ファイル(php.ini)を消去してしまったときの応急措置について。PHP For Windows: Binaries and sources Releasesを使う

|

php

自分のアホさ加減をさらすことになりますが、反面教師のネタとして面白いので書き残しておきます。

先日、PHPのエラー表示(display_errors)を変えるために、設定ファイル(php.ini)を操作していました。実はそのとき他の用事で慌てていて、変更した内容をしっかり保存(:wq)していませんでした。

記憶がちょっとあいまいなのですが、たしか、:qもしくは:q!で終了させていたかと。するとどうなったか?

swapファイル現る!

再度、設定ファイルを開けようとします。

$sudo vi /etc/php.ini

すると「ファイルが入れ替わっているよ!」という主旨のエラーが表れます。

E325: ATTENTION
Found a swap file by the name "/etc/.php.ini.swp"
          owned by: root   dated: Tue Sep  2 23:00:42 2014
         file name: /etc/php.ini
          modified: YES
         user name: root   host name: myservername.com
        process ID: 1091
While opening file "/etc/php.ini"
             dated: Thu Nov 20 14:23:46 2014
      NEWER than swap file!

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.
    Quit, or continue with caution.

(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r /etc/php.ini"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file "/etc/.php.ini.swp"
    to avoid this message.

swap1

なるほど、.php.ini.swapという見慣れないファイルが。

swap2

swapファイルの内容を確認すると文字化けがひどく、いかにもファイルが壊れた感じの内容です。ここで自分は、/etcから、php.ini.swapというファイルを削除いたしました。

swap3

削除すると、「リカバリーできたよ!」という感じのメッセージが返ってきましたが、実は全然リカバリーできていません。php.iniの内容は真っ白です

phpをアンインストールして、再インストールしてみました。しかし、相変わらずphp.iniは真っ白のままです。

最終的にはどうしたか?

swap4

仕方がないので、PHP For Windows: Binaries(新しいタブで開く)から、PHPバイナリの zip 版(VC11 x86 Non Thread Safe (2014-Nov-13 03:39:23))をダウンロードします。

ダウンロードしたフォルダの中から、php.iniのファイルを見つけ出し、内容をそのまま真っ白のphp.iniにコピペしました。

:wq
$sudo service httpd restart 

保存と再起動に関するコマンドもお忘れなく!またTimezoneや言語設定もやり直す必要があります。何をやるかは、ドットインストールの動画(新しいタブで開く)が参考になるでしょう。

一応動いてます

zipフォルダはWindows用らしいですが、一応Linux(CenTOS6.5)上でも動きます。php.iniを消してしまい、パニックなりそうなときの応急措置としてありかもしれません。

教訓としては、php.iniを操作するときは落ち着いてやるというところでしょうか。「とりあえず動く」というだけなので、これがまともなやり方かどうか、検証する必要があるでしょう。

〔参考サイト〕