php5.4から7.0へアップデートしようとしたらはまったのでその対処方法を記録に残します。
1.phpの削除とphp7.0のインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
yum remove php-* ls -la /etc/yum.repos.d/ -rw-r--r-- 1 root root 1697 Nov 16 2015 CentOS-Base.repo -rw-r--r-- 1 root root 1309 Dec 9 2015 CentOS-CR.repo ーrw-r--r-- 1 root root 649 Dec 9 2015 CentOS-Debuginfo.repo -rw-r--r-- 1 root root 290 Dec 9 2015 CentOS-fasttrack.repo -rw-r--r-- 1 root root 630 Dec 9 2015 CentOS-Media.repo -rw-r--r-- 1 root root 1331 Dec 9 2015 CentOS-Sources.repo -rw-r--r-- 1 root root 1952 Dec 9 2015 CentOS-Vault.repo -rw-r--r-- 1 root root 957 Mar 31 2016 epel.repo -rw-r--r-- 1 root root 1056 Mar 31 2016 epel-testing.repo -rw-r--r-- 1 root root 739 Jun 12 2014 mirrors-rpmforge -rw-r--r-- 1 root root 717 Jun 12 2014 mirrors-rpmforge-extras -rw-r--r-- 1 root root 728 Jun 12 2014 mirrors-rpmforge-testing -rw-r--r-- 1 root root 30123 Nov 14 2015 mondorescue.pubkey -rw-r--r-- 1 root root 201 Nov 14 2015 mondorescue.repo -rw-r--r-- 1 root root 113 Jul 15 2014 nginx.repo #*** 上記のようにリポジトリ―リストが表示される。Noar,remiがなければ以下のようにインストール yum -y install epel-release.noarch rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm #*** ここでphp7をインストールしようとするとエラー。どうも削除したはずのphp5.4を一部参照しているらしい。 yum -y install --enablerepo=remi --enablerepo=remi-php70 php php-opcache php-devel php-fpm php-gd php-pdo php-dom php-mbstring php-mcrypt php-mysqlnd php-mssql php-pecl-xdebug php-openssl php-json php-pecl-apcu php-pdo_sqlite php-pdo_mysql php-pecl-memcached php-bcmath php-msgpack php-ldap php-pecl-imagick php-pgsql php-pecl-pthreads php-pecl-msgpack php-posix php-pecl-zip #*** そこで、Remiリポジトリを以下のように変更して優先度を上げる vi /etc/yum.repos.d/remi-php70.repo priority=1 #*** この後、再度php7をインストールする。今度はうまくいった。バージョン確認 php --version PHP: syntax error, unexpected '=' in /etc/php.ini on line 1373 PHP 7.0.13 (cli) (built: Nov 8 2016 20:16:29) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.13, Copyright (c) 1999-2016, by Zend Technologies with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans |
2.php.iniの設定
1 2 3 4 5 6 7 8 |
*** デフォルトキャラクターをUTF-8にする変更はPHP7からは不要(デフォルトがUTF-8の為) vi /etc/php.ini [Date]ブロック # タイムゾーン date.timezone = "Asia/Tokyo" [mbstring]ブロック # デフォルト言語 mbstring.language = Japanese |
3.php-fpmの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
vi /etc/php-fpm.d/www.conf listen = /var/run/php-fpm/php-fpm.sock; ## ←変更 listen.owner = nginx ## ←変更 listen.group = nginx ## ←変更 user = nginx ##追加 group = nginx ##追加 **プロセス生成方法変更 pm = static ## (Dynamicを変更) pm.max_children = 10 ##(生成するプロセスを10に固定する) **HTTPレスポンスヘッダに含まれるPHPバージョン情報を出力しない php_admin_flag[expose_php] = off ***所有権の変更 chown -R nginx.nginx /var/lib/php/ ***起動(自動起動)設定 systemctl start php-fpm systemctl enable php-fpm |
以上で設定はおしまい。これでphp7も動作します。
ほぼ同じケースの対応記事がありこれを参考にさせていただきました。