[CentOS]EPEL + Remiレポジトリーを追加して、PHP5.6 + MySQL5.5インストール(バージョンアップ)

こんにちは。
BIG1等を当てたいサラリーマンです。

こちらのエントリーで構築したローカル開発環境の、PHPとMySQLをバージョンアップします。

追記——
先日、気づいたのですがphpインストールのコマンドに間違いありました。
php5.6系を再インストールしていて気付きました。
以下で訂正しました。

[ローカル開発環境 #03]Web開発環境を構築しよう
ローカル開発環境の構築:もくじ ローカルサーバーを導入しよう ローカルサーバーの設定をしよう Web開発環境を構築しよう A...

yumでインストールした古いバージョンを削除した後に、新たにPHP5.6とMySQL5.5をインストールします。
インストールはEPELとRemiのレポジトリーを追加して行います。

もくじ

レポジトリーを追加

Remiのリポジトリを追加するには、EPELのリポジトリが必要です。

EPELレポジトリーを追加する

sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

epel.repoの編集

viでepel.repoを編集します。

sudo vi /etc/yum.repos.d/epel.repo

EPELのリポジトリは明示的に使用するようにします。

[epel]

(省略)

enabled=0

Remiレポジトリーを追加する

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

PHP

インストール済みパッケージを確認

yum list installed | grep php

削除

sudo yum remove -y php*

インストール

sudo yum --enablerepo=remi-php56 install -y php php-cli php-common php-devel php-mbstring  php-mysqlnd php-pdo php-mysql

オプションが足りませんでした。
訂正しました。

sudo yum --enablerepo=remi --enablerepo=remi-php56 install -y php php-cli php-common php-devel php-mbstring  php-mysqlnd php-pdo php-mysql

ここで以下のエラーが発生しました。

Loading mirror speeds from cached hostfile
エラー: Cannot retrieve metalink for repository: epel. Please verify its path and try again

最後に紹介している参考ページをヒントに、yumのアップデートを行ったら解決しました。

sudo yum update -y

無事インストールできました。

SS 2015-09-02 3.43.01

php-gdインストール

今のところ、画像処理(GD)を使うことは無いのですが、参考にしたページに、php-gdをインストールするには先にgd-lastをインストールする必要があるとの情報がありました。

GDってなに?という方はこちら
PHP: GD – Manual

後で困らないように検証もかねてインストールすることにしました。

sudo yum --enablerepo=remi-php56 install php-gd
sudo yum --enablerepo=remi --enablerepo=remi-php56 install php-gd

SS 2015-09-02 3.52.33

問題なくインストール出来まいた。
依存パッケージとしてgd-lastもインストールされていました。

php.iniの編集

こちらエントリーの内容で編集します。

[ローカル開発環境 #03]Web開発環境を構築しよう
ローカル開発環境の構築:もくじ ローカルサーバーを導入しよう ローカルサーバーの設定をしよう Web開発環境を構築しよう A...

mbstringは、少しわりました。
5.6で非推奨になった項目以外を以下の様に編集しました。

mbstring.language = Japanese
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring.substitute_character = none
mbstring.func_overload = 0
;mbstring.strict_detection = On
;mbstring.http_output_conv_mimetype=

PHP: 実行時設定 – Manual

MySQL

バックアップ

パッケージを削除してもデータバースは削除されませんが、念のためデータベースのバックアップを圧縮して作成します。

mysqldump -u root -p wordpress | gzip > dump.sql.gz

ちなみにリストアは以下のコマンドで行います。

zcat dump.sql.gz | mysql -u user -p

インストール済みパッケージを確認

yum list installed | grep mysql

php-mysqlndのパッケージが検出されました。
削除は、mysql-にワイルドカードで行います。

削除

sudo yum remove -y mysql-*

依存パッケージを含めて全て削除されました。

インストール

sudo yum --enablerepo=remi install -y mysql-server

SS 2015-09-03 5.34.07

my.cnfの編集

こちらエントリーの内容で編集します。

[ローカル開発環境 #03]Web開発環境を構築しよう
ローカル開発環境の構築:もくじ ローカルサーバーを導入しよう ローカルサーバーの設定をしよう Web開発環境を構築しよう A...

default-storage-engine=InnoDBは、バージョン5.5以上なので不要です。

mysql_upgrade実行

MySQLのバージョンアップ後は、mysql_upgradeを実行する必要があります。
確認するとmysql.userテーブルのフィールドが追加されていました。

mysql_upgrade はすべてのデータベースのすべてのテーブルに対して、MySQL サーバーの現在のバージョンとの非互換性を調べます。また、mysql_upgrade は、システムテーブルをアップグレードして、追加された可能性のある新しい権限または機能を利用できるようにします。

4.4.7 mysql_upgrade — MySQL テーブルのチェックとアップグレード

コマンドを実行すると以下のエラーが発生しました。

Could not create the upgrade info file '/var/lib/mysql/mysql_upgrade_info' in the MySQL Servers datadir, errno: 13

SS 2015-09-04 4.47.32

sudo付きで実行したら、正常にアップグレードが完了しました。

sudo mysql_upgrade -u root -p

/var/lib/mysql/mysql_upgrade_infoは、バージョンナンバーが1行あるだけのファイルでした。
mysql_upgradeしたバージョンナンバーをアーカイブするファイルだと思われます。
パーミッションは、644でファイルオーナはrootでした。
予想ですがvagarntユーザでは、権限がないので書き込みが出来なかったのだと思われます。

外部ホストからの接続を許可する

権限は再設定が必要のようです。

grant all privileges on *.* to root@"%" identified by 'root' with grant option;

まとめ

パッケージ管理にはyumを利用するのが一般的です。レポジトリーを追加することにより使いたいバージョンをインストールする事ができました。
他には、パッケージをソースからインストールする方法もありますので、別の機会にまとめたいと思います。

参考ページ

スポンサーリンク
レクタングル(大)
レクタングル(大)

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>