狂ったお茶会のlog

後で起きる自分のためのメモ

PHPのバージョンを5.3から5.6にアップデートした

やりたいこと

サーバ(CentOS)に入ってるPHPのversionを上げたい。
なんか5.4あたりから配列定義が変わったらしく、使いたいライブラリでエラーが出たため。
いま入ってるやつはボンヤリyum installしたものなので古い。

もともと入ってたやつチェック

# rpm -qa | grep php
php-common-5.3.3-46.el6_7.1.x86_64
php-xml-5.3.3-46.el6_7.1.x86_64
php-pear-1.9.4-4.el6.noarch
php-cli-5.3.3-46.el6_7.1.x86_64
php-pdo-5.3.3-46.el6_7.1.x86_64
php-gd-5.3.3-46.el6_7.1.x86_64
php-mcrypt-5.3.3-4.el6.x86_64
php-devel-5.3.3-46.el6_7.1.x86_64
php-mbstring-5.3.3-46.el6_7.1.x86_64
php-5.3.3-46.el6_7.1.x86_64
php-mysql-5.3.3-46.el6_7.1.x86_64


やったこと

CentOSのversionをみたところ6.7

# cat /etc/redhat-release
CentOS release 6.7 (Final)
CentOS6系のepslリポジトリを入れる
# yum install epel-release

これはでももう入ってた。

CentOS6系のremiリポジトリを入れる
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

こっちは入ってなかったのでDLされた。

インストール済みの古いphpを削除する
# yum remove php-*
php5.6をインストールする (無駄なパッケージもあるかもしれない)
# yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-mysql php-mcrypt php-xml php-pear
いれたやつのバージョンチェック
# php --version
PHP 5.6.30 (cli) (built: Jan 19 2017 08:09:42)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

できた〜

apacheリスタート(php.ini を変更するなら、その後またする)
# service httpd restart


phpの設定ファイルも変更する

場所は以下なので開いて編集

# vi /etc/php.ini

今回変更したのは以下

error_log = /var/log/php_errors.log
date.timezone = “Asia/Tokyo”        ([Date] 項目)
mbstring.language = Japanese        ([mbstring] 項目)
mbstring.internal_encoding = UTF-8  ([mbstring] 項目)

mbstring.internal_encoding もなんだけど、
mbstring.http_input とかは今後非推奨のようなのでそのまま放っておいた。
PHP: 実行時設定 - Manual

ログファイルの実体がなかったから一応viで作っておいたのと、
書き込み権限がないとエラーが書き込まれてくれないとのことだったので、一応chmod 666をしておいた。

ログは以下で見れる。

less /var/log/php_errors.log

以上


参考URL

CentOS6/CentOS7にPHP5.6/PHP7をyumでインストール - Qiita
PHP: 実行時設定 - Manual
TwitterOAuth.php on line 334 のsyntax errorの原因と修正 - 半地下備忘録
PHP 5.4から配列定義は超簡単に、そして落とし穴も | yohgaki's blog