CentOS6.4でphp5.3からphp5.6へアップデートした時につまづいたところをメモ。
#知っておくこと
phpをアンインストールしても、起動中のPHPは動く。
apacheを再起動した時に最新版が反映される。
/etc/php.iniをバックアップでとっておく
(後で新しいバージョンのPHPの設定を書き換えるため)
#事前にリポジトリを用意
EPEL,remiリポジトリ最新版を入れておく
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
#GDライブラリエラーにそなえて
私の環境ではGDライブラリをインストールしようとすると、libwebp.so.5()(64bit)が必要というエラーがでてうまくできませんでした。ググるとこのエラーは多いようです。ですので、もしlibwebpが入ってなければ事前にインストール。
yum install libwebp
がダメなら直接入れる。
rpm -ivh ftp://mirror.switch.ch/pool/4/mirror/epel/6/x86_64/libwebp-0.4.3-3.el6.x86_64.rpm
#PHPを削除
yum remove php*
#PHP5.6をインストール
yum install --enablerepo=remi,remi-php56,epel php php-cli php-common php-devel php-mbstring php-pdo php-gd php-mysql php-mcrypt php-xml php-pear php-soap php-pecl-apcu php-mysqlnd
apacheを再起動して完了
/etc/rc.d/init.d/httpd restart
#MySQLに接続できないエラー
MySQLユーザーが古い16バイトのパスワードフォーマットであることが原因。
my.cnfのold_passwords=0
にするか削除
そして
set password for 'ユーザ名'@'ホスト' = password('パスワード');
で設定しなおして解決
#SOAPのエラー
「could not connect to host」というエラーが...
ひとまず、動かすには以下のようにcontextをつける
$context = stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
$opt = array(
'trace' => 1,
'location' => $url,
'stream_context' => $context
);