Vagrant(CentOS7.4)で動いていたPHPが動かなくなったときの対処方法
こんにちは、ヱビス(@evisu_phper)です。
先日からVagrantの設定方法をまとめています。
その中で、PHP7.2をインストールしたのに起動しないという現象が発生したので、備忘録と共有を兼ねてまとめておきます。
今回のVagrant環境
・CentOS7.4
・Apache2.4
・PHP7.2
初回はPHPが動いたのに…
PHPを初回インストールしたときは、PHPが動作したというのが肝です。
$ php -v
PHP 7.2.9 (cli) (built: Aug 15 2018 08:05:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
この状態で、Vagrantを停止・再起動してから再度PHPを確認すると…
$ php -v
bash: php: command not found
この時点でテンパりましたw
パスを通してみる
PHPのパス設定を確認します。
$ cat /opt/remi/php72/enable
export PATH=/opt/remi/php72/root/usr/bin:/opt/remi/php72/root/usr/sbin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/opt/remi/php72/root/usr/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MANPATH=/opt/remi/php72/root/usr/share/man:${MANPATH}
PHPのパス設定が表示されるので、3つとも実行します。
$ export PATH=/opt/remi/php72/root/usr/bin:/opt/remi/php72/root/usr/sbin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/opt/remi/php72/root/usr/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
$ export MANPATH=/opt/remi/php72/root/usr/share/man:${MANPATH}
PHPのパスが通ったはずなので、再度PHPを動かしてみます。
$ php -v
PHP 7.2.9 (cli) (built: Aug 15 2018 08:05:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
しっかりと、パスが通りました。
これで安心。
再起動するとパスがやっぱり通らない
安心して、再度Vagrantを停止・再起動してみると…
$ php -v
bash: php: command not found
パス設定がクリアされているという悲しい結果になりました。
Vagrantの停止・再起動のたびにパス設定をするのは非効率的なので、恒久的にパス設定が効くようにします。
設定を書き込むのは、Linuxの環境変数設定ファイルになります。
$ vi /etc/profile
プロファイルの最終行に、下記の3行を追加します。
export PATH=/opt/remi/php72/root/usr/bin:/opt/remi/php72/root/usr/sbin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/opt/remi/php72/root/usr/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MANPATH=/opt/remi/php72/root/usr/share/man:${MANPATH}
保存後、Vagrantを再起動すれば反映されます。
まとめ
以前に作成したときは、PHPのコマンドが使えないというトラブルに遭わなかったのでびっくりしました。
初回で成功しても油断しないように気をつけたいと思います。