90
95

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOS6.4(6.5)のPHPを5.6にアップデートする方法

Last updated at Posted at 2015-05-05

私は、標準レポジトリ派です。というわけで、PHPは5.3.3を利用していて、ほとんど不都合はありません。が、ここにきてLaravel5を使う状況になったので、仕方なく、5.4以上にアップデートします。5.6というのがあったので、結果それにしました。

###今、何がインストールされているかの確認

rpm -qa | grep php

で、ぞろぞろ出てきます。

###そもそも、どこのリポジトリからインストールしたものか?

めったに触らないので、正直覚えてません。ちょうしにのって、remiからか、epelからか。。。

yum info php

とすると、

Installed Packages
Name        : php
Arch        : x86_64
Version     : 5.3.3
Release     : 40.el6_6
Size        : 3.5 M
Repo        : installed
From repo   : updates
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/
License     : PHP
Description : PHP is an HTML-embedded scripting language. PHP attempts to make
            : it easy for developers to write dynamically generated webpages.
            : PHP also offers built-in database integration for several
            : commercial and non-commercial database management systems, so
            : writing a database-enabled webpage with PHP is fairly simple. The
            : most common use of PHP coding is probably as a replacement for CGI
            : scripts.
            :
            : The php package contains the module which adds support for the PHP
            : language to Apache HTTP Server.

From repoがそうなので、updates(標準)とわかります。

###そもそも、どのリポジトリを登録したか?

上記同様、覚えてないことが多いです。そんな時は、

yum repolist all

とすると、利用対象のrepoリストが出てきます。

/etc/yum.repos.d

の中のファイル見ても、わかりますが。

###リポジトリ自体を更新(削除し再インストール)

なんか、矛盾が出ておかしくなることもあるので、一旦消して、再インストールします。
私の場合、remiとepelがインストールされていたので、それぞれのパッケージ名を調べます。

rpm -qa | grep epel
rpm -qa | grep remi

消してしまって問題ないか、--testオプションをつけて調べます。

rpm -e --test epel-release-6-8.noarch

なぜか、epelはremiに依存しているらしいので、remiから消します。

rpm -e remi-release-5-8.el5.remi.noarch
rpm -e epel-release-6-8.noarch

そして、再インストール。ダンロードURLは変わるので、随時チェック。

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

epelはなぜか標準でenable=1となっているので0に変更しておく。必要に応じて、--enablerepo=epelとすればいいので。

###まずは、既存のものを削除

yum remove php*

php.iniを保存したとかのアラート?が出るが無視。

###インストール
まずは、利用できる最新のものを調べる。

yum --enablerepo=epel,remi info php

5.6.8というのがremi-php56というところにあるらしい。まずは、phpだけ。依存関係で怒られるのでcommonも。

yum install php php-common --enablerepo=remi,remi-php56

依存関係を処理するために、remiも指定したほうがいい(remi-php56はphp関連のみしかないみたい)。

その他、使うものとして、

yum install php-mysqlnd php-mbstring php-gd php-pdo php-gd php-xml --enablerepo=remi,remi-php56

このあたりを入れる。php-xmlはPHPUnitで必要だと言われる。
php-gdを入れる際、libgd.so.3()がどうたらこうたらで怒られるので、その場合は入れる。

yum install --enablerepo=remi gd-last

phpがらみでは、

php-pdo(済)
php-mysqlnd(済)
php-gd(済)
php-odbc
php-pear
php-xml(PHPUnitでいる:Laraveでいる)
php-xmlrpc
php-mbstring
php-mcrypt(Laravelでいる)

などがインストール候補となるだろう。

php.iniはとりあえず、date.timezon=Asia/Tokyoとしておく。

###for Laravel

ララベル用に、libmcryptとphp-mcryptをインストールする。libmcryptはepelにあるみたい。
php-xmlも入っていないと、composerでcreate-projectするときに怒られる(というか落ちる)。

yum install libmcrypt --enablerepo=epel
yum install php-mcrypt --enablerepo=remi,remi-php56

###何はなくともApache再起動

sudo service httpd restart

phpinfo()などで、設定が反映していることを確認して下さい。

###その他メモ

composerは、

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

あと、ローカル開発しているとついつい忘れるが、

sudo chmod -R 777 storage

を忘れずに。画面がまっしろになります。

90
95
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
90
95

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?