Ubuntu16.04 のパッケージを PHP7.0から PHP7.2にアップグレードしてみた。
①PHP7.2 をインストール
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install php7.2
$ sudo apt-get install php7.2-mbstring php7.2-mysql php7.2-xml php7.2-gd php7.2-zip php7.2-cgi php7.2-fpm php7.2-readline php7.2-json php7.2-common php7.2-cli
※モジュールは必要なものだけでOK
※mcrypt は PHP7.2から非推奨となったため標準ではモジュールが用意されていない
②PHP7.0 と 7.2 のバージョンを切り替える
update-alternatives コマンドで、バージョンを切り替え設定する。
$ update-alternatives --list php
/usr/bin/php7.0
/usr/bin/php7.2
$ update-alternatives --display php
php - 自動モード
最適なリンクのバージョンは '/usr/bin/php7.2' です
リンクは現在 /usr/bin/php7.2 を指しています
リンク php は /usr/bin/php です
スレーブ php.1.gz は /usr/share/man/man1/php.1.gz です
/usr/bin/php7.0 - 優先度 70
スレーブ php.1.gz: /usr/share/man/man1/php7.0.1.gz
/usr/bin/php7.2 - 優先度 72
スレーブ php.1.gz: /usr/share/man/man1/php7.2.1.gz
--config オプションを使う
$ update-alternatives --config php
alternative php (/usr/bin/php を提供) には 2 個の選択肢があります。
選択肢 パス 優先度 状態
------------------------------------------------------------
* 0 /usr/bin/php7.2 72 自動モード
1 /usr/bin/php7.0 70 手動モード
2 /usr/bin/php7.2 72 手動モード
現在の選択 [*] を保持するには 、さもなければ選択肢の番号のキーを押してください: 1
update-alternatives: /usr/bin/php (php) を提供するためにマニュアルモードで /usr/bin/php7.0 を使います
③Apache2 の設定、モジュールを有効化、旧バージョンを無効化
a2enconf php7.2-cgi
a2enconf php7.2-fpm
a2disconf php7.0-cgi
a2disconf php7.0-fpm
a2enmod php7.2
a2dismod php7.0
④fpmの設定を確認、書き換える
/etc/php/7.2/fpm/pool.d/www.conf の
listen = /run/php/php7.2-fpm.sock をコメントアウトし、行を追加
;listen = /run/php/php7.2-fpm.sock
listen = 127.0.0.1:9000
※これを確認しておかないと、以下のようなエラーが apache2のエラーログに記録される
[proxy:error] [pid xxxx] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:9000 (*) failed
[proxy_fcgi:error] [pid xxxx] [client xxx.xxx.xxx.xxx:xxxxx] AH01079: failed to make connection to backend: 127.0.0.1
⑤apache2 を再起動し、動作を確認する
$ sudo service apache2 restart
0コメント