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