CentOS7 PHP7ローカル環境構築
CentOS6からのアップグレード断念
CentOS6から7にアップグレードするためのプログラムが配布されていて、これを利用するのが早いかなと思ったのですが、断念しました。理由はいくつかあります。6から7にアップグレードするプログラムは、6のバージョンが低い内は対応していたようですが、6のバージョンが上がってしまっている場合は、一旦ダウングレードしてからでないとうまくいかないそうです。また、アップグレードするプログラムを使用しても、一部の設定は書き替えが必要とのことでした。
使用していたバージョンは、CentOS release 6.10 (Final)で、CentOS6で10までバージョンが上がっている状態でした。
参考書
CentOS7はサービス管理の仕組みが変わり、systemctlコマンドを使用するようになりました。このようなこともあり、CentOS7の解説書を購入して使用しています。
購入した本は「標準テキスト CentOS7 構築・運用・管理パーフェクトガイド」で、発行は、SBクリエイティブ(SB Creative)です。かなり厚い本で、圧倒されてしまう気もしましたが、平易な文章になっていて、必要なところだけ読む分には圧倒されることはありませんでした。情報量が豊富なので、環境構築の多くの面で役立ちました。この本以外で知ったことを書きこんで、更に使いやすくしています。
本の誤りの密度は、正誤表によるとあまり高くないように感じられます。ただ、正誤表は結構長く、私が買ったのは初版第1刷でしたから結構書き直す必要もありました。本の誤りは少ない方がいいですが、誤りがあっても正誤表が十分に更新されない方が問題と思いますので、何度も更新されているのは良心的と言えるかもしれません。以前こういったIT関連書籍を電子書籍で購入し、安く買えてよかったと喜んだこともありましたが、正誤表に載っていた誤りがまったく修正されておらず、電子書籍のリーダーと正誤表のPDFを何度も切り替えて見ることになり、大変不便でした。
ローカル環境構築では、この本をベースとして、古いバージョンの本やネット情報も活用しました。
PHP7インストール
CentOS7の標準リポジトリでPHPをインストールすると、PHP5がインストールされ、WordPressのコアさえ、最新バージョンを入れられない状態でした。PHP7.3のインストール手順を記録します。
EPELリポジトリ追加
EPELリポジトリを利用するため、下記のコマンドを実行します。
yum install epel-release
EPEL無効化
yumを実行時に、明示的に指定したときだけEPELを有効にするため、次のように設定を変更します。
# vi /etc/yum.repos.d/epel.repo [epel] enabled=0
このように設定すると、yumのオプションとして--enablerepo=epel
を指定したときに有効になるそうです。
参考:なんでもノート - yumでEPELを使う
http://t0m00m0t.hatenablog.com/entry/2018/03/03/223832
Remiリポジトリ追加
Remiリポジトリを利用するため、以下のコマンドを実行します。
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
PHPアンインストール
インストール済みのPHPをアンインストールするため、以下のコマンドを実行します。
yum remove php-*
PHP7.3インストール
PHP7.3をインストールするため、以下のコマンドを実行します。
yum install --enablerepo=epel,remi,remi-php73 php php-{mbstring,gd,mcrypt,mysql,xml}
ちなみに、php-xmlはプラグインのエラーメッセージで必要なことが分かり、後から追加インストールしました。
Apacheの再起動
PHP7.3をインストールしても、phpinfo()でバージョンを確認するとPHP5のままでした。WordPressも最新版にアップグレードできない状態のままでした。
下記のようにhttpdを再起動した後、phpinfo()でバージョンを確認するとPHP7になっていました。
systemctl restart httpd
参考サイト
Qiita-CentOS7のPHPを5.6/7.0/7.1/7.2/7.3系にバージョンアップする
https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0
PHPをバージョンアップして良かったこと
ローカルではWordPressをデバッグモードで動作させています。このため、PHPのエラーメッセージなどがある場合、認知することができます。バージョンアップ後、以下のようなメッセージが表示されるようになりました。
Deprecated: Function create_function() is deprecated in /var/www/html/〇〇〇/wp-content/plugins/△△△ on line □□□
これにより、特定のプラグインにPHPで非推奨になってしまった記述があることが分かりました。非推奨でも現在のところ動作に問題は無く、修正方法も直ぐにわかりましたので、いつか更にPHPのバージョンが上がり動作に問題が起こったときには、対応が必要になると知ることができました。
ちなみにWordPressをデバッグモードで動作させるのは簡単です。wp-config.phpを開けば、コメントにも書かれているので簡単に変更できます。HP上に上記のようなメッセージが表示されると見た人が心配になると思いますから、ローカル環境で使用すべきモードと思います。