Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

私は、標準レポジトリ派です。というわけで、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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした