web関連

さくらのVPSに新しいPHPバージョンのインストール方法

さくらのVPSに新しいPHPバージョンのインストール方法

お客さんが借りてきたサーバーでwordpressを運用する際にPHPが5.3だったので今後の事を考えて、公開前にバージョンをあげないといけなくなった時にした作業をまとめました。
php7系はちょっと怖い(VPSも怖いのでダブルパンチ)のでphp5.6にあげたときの備忘録

さくらのVPSでバージョンを指定することなくインストールすると古いバージョンが入るようなので新しいバージョンを入れ直します。

phpのパッケージを確認

今インストールされているphpのパッケージを確認する

# rpm -qa | grep php
php-common-5.3.3-49.el6.x86_64
php-mbstring-5.3.3-49.el6.x86_64
php-php-gettext-1.0.12-1.el6.noarch
php-fedora-autoloader-1.0.0-1.el6.noarch
php-pdo-5.3.3-49.el6.x86_64
php-5.3.3-49.el6.x86_64
php-gd-5.3.3-49.el6.x86_64
php-mysql-5.3.3-49.el6.x86_64
php-process-5.3.3-49.el6.x86_64
php-xml-5.3.3-49.el6.x86_64
php-tidy-5.3.3-49.el6.x86_64
php-bcmath-5.3.3-49.el6.x86_64
php-tcpdf-6.2.13-1.el6.noarch
phpMyAdmin-4.0.10.19-1.el6.noarch
php-cli-5.3.3-49.el6.x86_64
php-devel-5.3.3-49.el6.x86_64
php-mcrypt-5.3.3-5.el6.x86_64
php-tcpdf-dejavu-sans-fonts-6.2.13-1.el6.noarch

なんかいっぱいでてきた…

CentOSのバージョン確認

# cat /etc/redhat-release
CentOS release 6.9 (Final)

CentOS6系では、yumでインストールすると古いPHPが入るらしい

remiリポジトリ―を使えるようにする

CentOSの公式リポジトリにはphp5.6のパッケージが置かれていないようなので、phpの最新アプリケーションパッケージがあるremiという別のリポジトリから取得します。
EPELを入れないとremiを使えないようなのでインストールする必要があるらしい、さくらのVPSではすでに入っているようなので省略

remiをインストールする

//CentOS6系の場合
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
//CentOS7系の場合
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

この時点で/etc/yum.repos.dの中身を見ると[remi-php56]というのが…あれ、ない…
5.5と5.6がみあたらない…
本来[remi-php56]がリポジトリ名なので、yum installの時にこれを指定してインストールするらしい

grepコマンドを使って検索

[remi-php56]がなかったので不安になりgrepを使って検索

# yum list --enablerepo=remi | grep php56

したらいっぱい出てきた、入っているっぽいのでインストールする

古いインストール済みのファイルは削除

インストールする前に、なんか削除した方がいいらしいから古いのは削除

# yum remove php-*

このとき、phpmyadminも消えて再インストールする羽目になるとは思わなかった(1敗)

個別に削除をする必要があるみたい・・・気をつけて・・・

php5.6をインストールする

# yum install --enablerepo=remi-php56 php php php-devel php-mbstring php-mysql php-gd

再起動

新しいバージョンのphpを入れたら最後に、再起動させます。

//CentOS6系
# service httpd restart
//CentOS7系からはこっちらしい
# systemctl restart httpd

実際systemctl restart httpdを使ってもservice httpd restartにリダイレクトされるようなので問題ないっぽい

phpのバージョン確認

最後にバージョンが変わっていたらokです

# php --version
PHP 5.6.32 (cli) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

実行コマンドまとめ

長々と説明いらないからささっとコマンドみたい方用

//phpのパッケージを確認
# rpm -qa | grep php
//CentOSのバージョン確認
# cat /etc/redhat-release
//remiインストールコマンドCentOS6系の場合
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
//remiインストールコマンドCentOS7系の場合
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
//grepコマンドを使ってphp5.6がインストールされているか確認検索
# yum list --enablerepo=remi | grep php56
//古いインストール済みのファイルは削除
# yum remove php-*
//php5.6をインストールする
# yum install --enablerepo=remi-php56 php php php-devel php-mbstring php-mysql php-gd
//再起動
# service httpd restart
//phpバージョン確認
# php --version

まじで吐きそうになるからVPSサーバーは触りたくない…