ユーザ用ツール

サイト用ツール


サーバ:centos:centos6でphpのバージョンアップ

CentOS 6 で PHP のバージョンアップ

CentOS 6 で PHP 5.3 から 7.3 へバージョンアップする手順。
7.3 以外をインストールしたい場合は、バージョンを指定している箇所の数字を変更すればOK。

1.現状を確認

  1. # PHP のバージョン確認
  2. $ php -v
  3. PHP 5.3.3
  4.  
  5. # OS の確認
  6. $ cat /etc/issue
  7. CentOS release 6.10 (Final)
  8.  
  9. # どのリポジトリからインストールしたか
  10. $ yum info php
  11.  
  12. リポジトリー : installed
  13. 提供元リポジトリー : base
  14.  
  15. # インストール可能なパッケージを確認
  16. yum list | grep php
  17.  
  18. # リポジトリを確認(以下のどちらかで確認)
  19. $ yum repolist all
  20. $ less /etc/yum.repos.d

2.リポジトリをインストールし直す

remi リポジトリが存在するが、古いリポジトリのようで、PHP7系が無かったため、remi リポジトリをインストールし直すことにする。
既にリポジトリにインストールしたい PHP バージョンがあれば「3.PHP を入れ直す」の手順に進む。

古いリポジトリの削除

  1. # php.ini の場所
  2. $ php -r "echo phpinfo();" | grep "php.ini"
  3. Loaded Configuration File => /etc/php.ini
  4.  
  5. # 必要であれば php.ini をローカルにダウンロードしたり、バックアップを取っておく
  6.  
  7. # インストール済みのパッケージ名確認
  8. $ rpm -qa | grep epel
  9. epel-release-6-8.noarch
  10.  
  11. $ rpm -qa | grep remi
  12. remi-release-6.5-1.el6.remi.noarch
  13.  
  14. # アンインストールのテスト
  15. $ rpm -e --test epel-release-6-8.noarch
  16.  
  17. エラー: 依存性の欠如:
  18. epel-release >= 6 (インストール済み)remi-release-6.5-1.el6.remi.noarch に必要とされています
  19. epel-release >= 6 (インストール済み)rpmfusion-free-release-6-4.noarch に必要とされ ています
  20. epel-release >= 6 (インストール済み)rpmfusion-nonfree-release-6-4.noarch に必要とされています
  21.  
  22. # 依存性のエラーが出た場合、そちらから先にアンインストールを行う
  23.  
  24. # 依存性のエラーで表示されたパッケージのアンインストールテスト
  25. $ rpm -e --test remi-release-6.5-1.el6.remi.noarch
  26. $ rpm -e --test rpmfusion-free-release-6-4.noarch
  27. $ rpm -e --test rpmfusion-nonfree-release-6-4.noarch
  28.  
  29. # アンインストール(依存先から順番に削除)
  30. $ sudo rpm -e rpmfusion-nonfree-release-6-4.noarch
  31. $ sudo rpm -e rpmfusion-free-release-6-4.noarch
  32. $ sudo rpm -e remi-release-6.5-1.el6.remi.noarch
  33. $ sudo rpm -e epel-release-6-8.noarch
  34.  
  35. # リポジトリが削除されているのを確認
  36. $ 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

  1. # epel のインストール
  2. $ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
  3.  
  4. # remi のインストール
  5. $ sudo yum install http://ftp.riken.jp/Linux/remi/enterprise/remi-release-6.rpm
  6.  
  7. # 登録したリポジトリを確認
  8. $ less /etc/yum.repos.d
  9.  
  10. # remi-php73.repo などが追加されている
  11.  
  12. # 自動で使用しないようにする
  13. $ sudoedit /etc/yum.repos.d/epel.repo
  14. [epel]
  15. enabled=1
  16. enabled=0

3.PHP を入れ直す

  1. # インストールしたい PHP バージョンのパッケージ確認
  2. $ yum list | grep php73
  3.  
  4. # インストールされるパッケージの確認
  5. $ yum info --enablerepo=epel,remi-php73 php
  6.  
  7. # インストール済みの PHP 5.3 パッケージを確認
  8. $ yum list installed | grep php
  9. php.x86_64 5.3.3-49.el6 @base
  10. php-cli.x86_64 5.3.3-49.el6 @base
  11. php-common.x86_64 5.3.3-49.el6 @base
  12. php-devel.x86_64 5.3.3-49.el6 @base
  13. php-gd.x86_64 5.3.3-49.el6 @base
  14. php-mbstring.x86_64 5.3.3-49.el6 @base
  15. php-mysql.x86_64 5.3.3-49.el6 @base
  16. php-pdo.x86_64 5.3.3-49.el6 @base
  17. php-pear.noarch 1:1.9.4-5.el6 @base
  18. php-xml.x86_64 5.3.3-49.el6 @base
  19.  
  20. # php 5.3 のアンインストール
  21. $ sudo yum remove php* -y
  22.  
  23. # PHP 7.3 のインストール(まずは php と php-common のみ)
  24. $ sudo yum install -y --enablerepo=remi,remi-php73 php php-common
  25.  
  26. # インストールしたパッケージの確認
  27. $ yum list installed | grep php
  28.  
  29. # その他の足りないパッケージをインストール
  30. $ sudo yum install -y --enablerepo=remi,remi-php73 php-devel php-mbstring php-mysql php-pdo php-pear php-xml
  31.  
  32. # php-gd をインストールしようとしてエラーが出る
  33. $ sudo yum install -y --enablerepo=remi,remi-php73 php-gd
  34.  
  35. エラー: パッケージ: gd-last-2.3.0-1.el6.remi.x86_64 (remi)
  36. 要求: libwebp.so.5()(64bit)
  37.  
  38. # libwebp をインストール
  39. $ sudo yum install -y --enablerepo=epel libwebp
  40.  
  41. # 再度 php-gd のインストールを試す
  42. $ sudo yum install -y --enablerepo=remi,remi-php73 php-gd
  43.  
  44. # インストールしたパッケージの確認
  45. $ sudo yum list installed | grep php
  46.  
  47. # バージョン確認
  48. $ php -v
  49. PHP 7.3.19 (cli)
  50.  
  51. # PHP のログディレクトリ作成
  52. $ sudo mkdir /var/log/php
  53. $ sudo chown apache:apache /var/log/php
  54.  
  55. # php.ini を編集
  56. $ sudoedit /etc/php.ini

php.ini で以下の設定を書き換える

  1. mbstring.language = Japanese
  2.  
  3. mbstring.detect_order = auto
  4.  
  5. date.timezone = Asia/Tokyo
  6.  
  7. expose_php = Off
  8.  
  9. memory_limit = 512M
  10. post_max_size = 128M
  11. upload_max_filesize = 128M
  12.  
  13. error_log = /var/log/php/error.log

php.ini の編集が終わったら、Apache を再起動する

  1. # Apache 再起動
  2. $ sudo service httpd graceful
  3.  
  4. # エラーログを確認
  5. $ tail -f /var/log/php/error.log

エラーログを表示しながら、サイトにアクセスして動作確認を行う。

4.PHP のログローテーション設定

PHP のバージョンアップが問題なく終われば、ログローテーションを仕込む。

  1. # ログディレクトリ
  2. $ sudo ls -l /var/log/
  3.  
  4. # 先程 php.ini で設定した PHP のログディレクトリ
  5. $ sudo ls -l /var/log/php
  6.  
  7. # ログローテーションの設定ファイルを確認
  8. $ sudoedit /etc/logrotate.conf
  9.  
  10. # 個別設定ファイル保存先
  11. $ ls -l /etc/logrotate.d
  12.  
  13. # httpd の設定ファイルを覗いてみる
  14. $ less /etc/logrotate.d/httpd
  15.  
  16. # PHP のローテーションを新規作成
  17. $ sudoedit /etc/logrotate.d/php
  18.  
  19. /var/log/php/error.log {
  20. notifempty
  21. daily
  22. missingok
  23. dateext
  24. rotate 14
  25. copytruncate
  26. }
  27.  
  28. # 確認
  29. $ sudo logrotate -dv /etc/logrotate.d/php
  30.  
  31. # 強制的に実行
  32. $ sudo logrotate -fv /etc/logrotate.d/php
  33.  
  34. # ローテーションされたか確認
  35. $ sudo ls -l /var/log/php
  36.  
  37. # ログファイルの確認
  38. $ less /var/log/php/error.log

コメント

廣田 克夫, 2022/05/27 11:35

# epel のインストール にある下記のリンクは、2022/05現在リンク切れになっていました

https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

humo, 2022/09/30 10:54

廣田 克夫 様 コメントありがとうございます。 気がつくのが遅くなってしまい、すみません。 自分では試せてないのですが、調べた感じですと以下のサイトで紹介されている URL なら有効かもしれません。 https://dynamic-one.com/archives/51756838.html

コメントを入力. Wiki文法が有効です:
 
サーバ/centos/centos6でphpのバージョンアップ.txt · 最終更新: 2022/09/30 10:58 by humolife