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/
【2022.9.30追記】
以下の epel の URL は無効になってしまいました。
試せてないですが、こちらのサイトで紹介されている URL なら動くかもしれません。
https://dynamic-one.com/archives/51756838.html
- # 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
- error_log = /var/log/php/error.log
php.ini の編集が終わったら、Apache を再起動する
- # Apache 再起動
- $ sudo service httpd graceful
- # エラーログを確認
- $ tail -f /var/log/php/error.log
エラーログを表示しながら、サイトにアクセスして動作確認を行う。
PHP のバージョンアップが問題なく終われば、ログローテーションを仕込む。
- # ログディレクトリ
- $ 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