私は、標準レポジトリ派です。というわけで、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
を忘れずに。画面がまっしろになります。