文書の過去の版を表示しています。
CentOS 6 で PHP 5.3 から 7.3 へバージョンアップする手順。
7.3 以外をインストールしたい場合は、バージョンを指定している箇所の数字を変更すればOK。
# PHP のバージョン確認 $ php -v PHP 5.3.3 # OS の確認 $ cat /etc/issue CentOS release 6.10 (Final) # どのリポジトリからインストールしたか $ yum info php リポジトリー : installed 提供元リポジトリー : base # インストール可能なパッケージを確認 yum list | grep php # リポジトリを確認(以下のどちらかで確認) $ yum repolist all $ less /etc/yum.repos.d
remi リポジトリが存在するが、古いリポジトリのようで、PHP7系が無かったため、remi リポジトリをインストールし直すことにする。
インストールしたい PHP バージョンがあれば「3.PHP を入れ直す」の手順に進む。
# php.ini の場所 $ php -r "echo phpinfo();" | grep "php.ini" Loaded Configuration File => /etc/php.ini # 必要であれば php.ini をローカルにダウンロードしたり、バックアップを取っておく # インストール済みのパッケージ名確認 $ rpm -qa | grep epel epel-release-6-8.noarch $ rpm -qa | grep remi remi-release-6.5-1.el6.remi.noarch # アンインストールのテスト $ rpm -e --test epel-release-6-8.noarch エラー: 依存性の欠如: epel-release >= 6 は (インストール済み)remi-release-6.5-1.el6.remi.noarch に必要とされています epel-release >= 6 は (インストール済み)rpmfusion-free-release-6-4.noarch に必要とされ ています epel-release >= 6 は (インストール済み)rpmfusion-nonfree-release-6-4.noarch に必要とされています # 依存性のエラーが出た場合、そちらから先にアンインストールを行う # 依存性のエラーで表示されたパッケージのアンインストールテスト $ rpm -e --test remi-release-6.5-1.el6.remi.noarch $ rpm -e --test rpmfusion-free-release-6-4.noarch $ rpm -e --test rpmfusion-nonfree-release-6-4.noarch # アンインストール(依存先から順番に削除) $ sudo rpm -e rpmfusion-nonfree-release-6-4.noarch $ sudo rpm -e rpmfusion-free-release-6-4.noarch $ sudo rpm -e remi-release-6.5-1.el6.remi.noarch $ sudo rpm -e epel-release-6-8.noarch # リポジトリが削除されているのを確認 $ less /etc/yum.repos.d
以下のサイトで、最新の URL を確認する。
EPEL(CentOS 6 用に「EL6 epel-release」がある)
https://fedoraproject.org/wiki/EPEL/ja
Remi(Linux 6 用のパッケージ「remi-release-6.rpm」がある)
https://rpms.remirepo.net/
# epel のインストール $ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm # remi のインストール $ sudo yum install http://ftp.riken.jp/Linux/remi/enterprise/remi-release-6.rpm # 登録したリポジトリを確認 $ less /etc/yum.repos.d # remi-php73.repo などが追加されている # 自動で使用しないようにする $ sudoedit /etc/yum.repos.d/epel.repo [epel] enabled=1 ↓ enabled=0
# インストールしたい PHP バージョンのパッケージ確認
$ yum list | grep php73
# インストールされるパッケージの確認
$ yum info --enablerepo=epel,remi-php73 php
# php 5.3 のインストール済みパッケージを確認
$ yum list installed | grep php
php.x86_64 5.3.3-49.el6 @base
php-cli.x86_64 5.3.3-49.el6 @base
php-common.x86_64 5.3.3-49.el6 @base
php-devel.x86_64 5.3.3-49.el6 @base
php-gd.x86_64 5.3.3-49.el6 @base
php-mbstring.x86_64 5.3.3-49.el6 @base
php-mysql.x86_64 5.3.3-49.el6 @base
php-pdo.x86_64 5.3.3-49.el6 @base
php-pear.noarch 1:1.9.4-5.el6 @base
php-xml.x86_64 5.3.3-49.el6 @base
# php 5.3 のアンインストール
$ sudo yum remove php* -y
# PHP 7.3 のインストール(まずは php と php-common のみ)
$ sudo yum install -y --enablerepo=remi,remi-php73 php php-common
# インストールしたパッケージの確認
$ yum list installed | grep php
# その他の足りないパッケージをインストール
$ sudo yum install -y --enablerepo=remi,remi-php73 php-devel php-mbstring php-mysql php-pdo php-pear php-xml
# php-gd をインストールしようとしてエラーが出る
$ sudo yum install -y --enablerepo=remi,remi-php73 php-gd
エラー: パッケージ: gd-last-2.3.0-1.el6.remi.x86_64 (remi)
要求: libwebp.so.5()(64bit)
# libwebp をインストール
$ sudo yum install -y --enablerepo=epel libwebp
# 再度 php-gd のインストールを試す
$ sudo yum install -y --enablerepo=remi,remi-php73 php-gd
# インストールされたパッケージを確認
$ sudo yum list installed | grep php
# バージョン確認
$ php -v
PHP 7.3.19 (cli)
# PHP のログディレクトリ作成
$ sudo mkdir /var/log/php
$ sudo chown apache:apache /var/log/php
# php.ini を編集
$ sudoedit /etc/php.ini
php.ini で以下の設定を書き換える
mbstring.language = Japanese mbstring.detect_order = auto date.timezone = Asia/Tokyo expose_php = Off memory_limit = 512M post_max_size = 128M upload_max_filesize = 128M register_argc_argv = On error_log = /var/log/php/error.log
php.ini の編集が終わったら、Apache を再起動する
# Apache 再起動 $ sudo service httpd graceful # エラーログを確認 $ tail -f /var/log/php/error.log
エラーログを表示しながら、サイトにアクセスして動作確認を行う。
# ログディレクトリ
$ sudo ls -l /var/log/
# 先程 php.ini で設定した PHP のログディレクトリ
$ sudo ls -l /var/log/php
# ログローテーションの設定ファイルを確認
$ sudoedit /etc/logrotate.conf
# 個別設定ファイル保存先
$ ls -l /etc/logrotate.d
# httpd の設定ファイルを覗いてみる
$ less /etc/logrotate.d/httpd
# PHP のローテーションを新規作成
$ sudoedit /etc/logrotate.d/php
/var/log/php/error.log {
notifempty
daily
missingok
dateext
rotate 14
copytruncate
}
# 確認
$ sudo logrotate -dv /etc/logrotate.d/php
# 強制的に実行
$ sudo logrotate -fv /etc/logrotate.d/php
# ローテーションされたか確認
$ sudo ls -l /var/log/php
# ログファイルの確認
$ less /var/log/php/error.log
コメント
# epel のインストール にある下記のリンクは、2022/05現在リンク切れになっていました
https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
廣田 克夫 様 コメントありがとうございます。 気がつくのが遅くなってしまい、すみません。 自分では試せてないのですが、調べた感じですと以下のサイトで紹介されている URL なら有効かもしれません。 https://dynamic-one.com/archives/51756838.html