1. TOPTOP
  2. Webサービス
  3. PHP
  4. CentOS7(さくらのクラウド)でPHPの最新バージョンをインストール。5.4.16から5.4.40に

CentOS7(さくらのクラウド)でPHPの最新バージョンをインストール。5.4.16から5.4.40に

|

php

さくらのクラウドでインストールしたCentOS7だと、デフォルトで入っていたPHPのバージョンは、5.4.16でした。自分の頭の中では、

epelリポジトリのインストール
↓
remiリポジトリのインストール
↓
remiリポジトリからPHPのインストール

という手続きを踏めば、PHP5.5か5.6をインストールできるかと思っていましたが、どうもそのとおりには行きませんでした。結論から言ってしまうと、同じく5.4系である、5.4.40がインストールされました。

これは、自分が使っているさくらのクラウドだからそうなってしまうのかどうかは、分かりません。とりあえず作業の流れだけを残しておきましょう。

「最新バージョン」のPHPをインストール

wgetをインストール

# yum -y install wget

さくらのクラウドでCentOS7をインストールした直後の状態では、wgetコマンドが使えません。まずインストールします。

デフォルト状態でのPHPバージョンを確認

centos7_php1

# yum info php

デフォルト状態でのPHPのバージョンを確認します。5.4.16でした。

epelのインストールと設定

# yum install epel-release

Loading mirror speeds from cached hostfile
 * elrepo: ftp.ne.jp
 * epel: ftp.kddilabs.jp
 * rpmforge: ftp.kddilabs.jp
パッケージ epel-release-7-5.noarch はインストール済みか最新バージョンです
何もしません

定石で行くと、次はepelリポジトリのインストールです。ですが自分の場合、すでにインストールされてました(汗

もちろんサーバー環境によっては、インストールされていないことも考えられますので、インストールするかどうかは、ご自身の判断になります。

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

[epel]
…
enabled=0

enabled=0とは、デフォルトの状態ではepelを使用しないという意味です。もともと、enabled=1だった設定を変更しています。

remiのインストール

# wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# rpm -Uvh remi-release-7.rpm
警告: remi-release-7.rpm: ヘッダー V3 DSA/SHA1 Signature、鍵 ID 00f97f56: NOKEY
準備しています...              ################################# [100%]
	パッケージ remi-release-7.0-1.el7.remi.noarch は既にインストールされています。

remiについても、インストールせよということが書かれていますが、自分の環境ではすでにインストール済みでした。

PHPバージョン情報の確認とインストール

centos7_php1

# yum info --enablerepo=remi php

remiから引っ張ってきたPHPのバージョンは、5.4.40でした。他のページを見るとここで5.5か5.6が登場するようなことが書かれています。ですが自分の場合は、そうではありませんでした。

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

まぁ、マイナーバージョンは上がっているから、良しとしましょう。remiからPHP5.4.40をインストールします。

php.iniの設定

設定ファイルのコピー

# cp /etc/php.ini /etc/php.ini.org

念のために、PHPの設定ファイルをコピーしておきましょう。

エラーログ、言語、タイムゾーンの設定

# vi /etc/php.ini

error_log = /var/log/php.log
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.detect_order = auto
expose_php = Off
date.timezone = Asia/Tokyo

systemctl start httpd

エラーログの場所とか、言語設定、タイムゾーンの設定など。

まとめ

最後のほうはやっつけ気味でしたが、とりあえずPHPのインストールから初期設定までを書いてみました。epelやremiがすでにインストールされていたりして、必ずしも「教科書通り」には行きませんでしたが、ご参考までにどうぞ。

〔参考サイト〕