提供:すだちWiki
yumでPHP7.2をインストールする方法(CentOS7)
メインページ > CentOS 7 で自宅サーバー構築 > yumでPHP7.2をインストールする方法(CentOS7)
- 自宅サーバーで、動作確認しています。導入される方は自己責任で行ってください。
- EPELリポジトリ、Remiリポジトリを導入済みとします。
- MediaWiki 1.31.1 動作しました。
- WordPress 4.9.8 動作しました。
CentOSバージョン確認
[root@host2 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
Remiリポジトリをアップデートする
アップデート
[root@host4 ~]# yum update http://rpms.famillecollet.com/enterprise/remi-release-7.rpm ・ ・ 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ remi-release.noarch 0:7.2-1.el7.remi を 更新 ---> パッケージ remi-release.noarch 0:7.4-2.el7.remi を アップデート --> 依存性解決を終了しました。 依存性を解決しました
repoファイルの変更
- repoファイルが既に存在しているためrepo.rpmnewとして保存されてしまいました。
[root@host4 ~]# cd /etc/yum.repos.d/ [root@host4 yum.repos.d]# ll |grep remi- -rw-r--r-- 1 root root 456 3月 21 22:28 remi-php54.repo -rw-r--r-- 1 root root 1188 5月 15 2017 remi-php70.repo -rw-r--r-- 1 root root 1314 3月 21 22:28 remi-php70.repo.rpmnew -rw-r--r-- 1 root root 1201 4月 1 12:17 remi-php71.repo -rw-r--r-- 1 root root 1314 3月 21 22:28 remi-php71.repo.rpmnew -rw-r--r-- 1 root root 1325 4月 7 07:00 remi-php72.repo -rw-r--r-- 1 root root 449 7月 20 2016 remi-safe.repo -rw-r--r-- 1 root root 750 3月 21 22:28 remi-safe.repo.rpmnew
- repoファイルが変更されないと意味がないのでファイル名を入れ替えます。
[root@host4 yum.repos.d]# mv remi-php70.repo remi-php70.repo.old && mv remi-php70.repo.rpmnew remi-php70.repo [root@host4 yum.repos.d]# mv remi-php71.repo remi-php71.repo.old && mv remi-php71.repo.rpmnew remi-php71.repo [root@host4 yum.repos.d]# mv remi-safe.repo remi-safe.repo.old && mv remi-safe.repo.rpmnew remi-safe.repo [root@host4 yum.repos.d]# cd [root@host4 ~]#
- 他リポジトリとのパッケージの競合をさけるため、enabled=0 として普段は読まないようにしておく。
[root@host4 ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/remi-safe.repo
PHP7.2用のRemiリポジトリの優先度を1(最大)にする
エラーが出たため、PHP7.2用のRemiリポジトリの優先度を1(最大)にすることで問題を回避しました。
[root@host4 ~]# vi /etc/yum.repos.d/remi-php72.repo [remi-php72] priority=1 ← 追加 name=Remi's PHP 7.2 RPM repository for Enterprise Linux 7 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/7/php72/$basearch/ #mirrorlist=https://rpms.remirepo.net/enterprise/7/php72/httpsmirror mirrorlist=http://cdn.remirepo.net/enterprise/7/php72/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
既に入っているPHPのバージョン確認
自宅サーバー4号機
[root@host4 ~]# php -v PHP 7.1.16 (cli) (built: Mar 28 2018 13:19:29) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.1.16, Copyright (c) 1999-2018, by Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
既に入っているPHPをアンインストール
インストール済みパッケージ確認
自宅サーバー4号機
PHP7.2にアップグレード前です。
[root@host4 ~]# rpm -qa | grep php php-json-7.1.16-1.el7.remi.x86_64 php-mbstring-7.1.16-1.el7.remi.x86_64 php-pecl-xdebug-2.6.0-1.el7.remi.7.1.x86_64 php-mysqlnd-7.1.16-1.el7.remi.x86_64 php-xml-7.1.16-1.el7.remi.x86_64 php-pecl-igbinary-2.0.5-1.el7.remi.7.1.x86_64 php-pdo-7.1.16-1.el7.remi.x86_64 php-opcache-7.1.16-1.el7.remi.x86_64 php-fpm-7.1.16-1.el7.remi.x86_64 php71-php-json-7.1.16-1.el7.remi.x86_64 php71-php-pecl-imagick-3.4.3-8.el7.remi.x86_64 php-fedora-autoloader-1.0.0-1.el7.remi.noarch php-cli-7.1.16-1.el7.remi.x86_64 php-devel-7.1.16-1.el7.remi.x86_64 php-gd-7.1.16-1.el7.remi.x86_64 php71-runtime-1.0-1.el7.remi.x86_64 php-process-7.1.16-1.el7.remi.x86_64 php-pecl-apcu-5.1.11-1.el7.remi.7.1.x86_64 php-7.1.16-1.el7.remi.x86_64 php-gmp-7.1.16-1.el7.remi.x86_64 php-pecl-redis-3.1.6-1.el7.remi.7.1.x86_64 php-common-7.1.16-1.el7.remi.x86_64 php-mcrypt-7.1.16-1.el7.remi.x86_64 php71-php-common-7.1.16-1.el7.remi.x86_64 php-pear-1.10.5-6.el7.remi.noarch
アンインストール
[root@host4 ~]# yum remove php php-* php* php71* [root@host4 ~]# php -v [root@host4 ~]# rpm -qa | grep php
バージョン情報が出てこなければアンインストール完了です。
インストール
インストール実行
※行の長さの関係で途中に改行が入ってます。注意してください。
[root@host4 ~]# yum --enablerepo=epel,remi,remi-php72 install php php-cli php-devel php-common php-mbstring php-mysqlnd php-fpm php-gd php-gmp php-mcrypt php-opcache php-pdo php-xml php-json ・ ・ 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: php x86_64 7.2.4-1.el7.remi remi-php72 3.2 M php-cli x86_64 7.2.4-1.el7.remi remi-php72 4.8 M php-common x86_64 7.2.4-1.el7.remi remi-php72 1.1 M php-devel x86_64 7.2.4-1.el7.remi remi-php72 1.2 M php-fpm x86_64 7.2.4-1.el7.remi remi-php72 1.6 M php-gd x86_64 7.2.4-1.el7.remi remi-php72 75 k php-gmp x86_64 7.2.4-1.el7.remi remi-php72 66 k php-json x86_64 7.2.4-1.el7.remi remi-php72 61 k php-mbstring x86_64 7.2.4-1.el7.remi remi-php72 620 k php-mysqlnd x86_64 7.2.4-1.el7.remi remi-php72 230 k php-opcache x86_64 7.2.4-1.el7.remi remi-php72 279 k php-pdo x86_64 7.2.4-1.el7.remi remi-php72 123 k php-pecl-mcrypt x86_64 1.0.1-4.el7.remi.7.2 remi-php72 29 k php-xml x86_64 7.2.4-1.el7.remi remi-php72 203 k 依存性関連でのインストールをします: libargon2 x86_64 20161029-2.el7 epel 23 k トランザクションの要約 ================================================================================
追加パッケージをインストール
[root@host4 ~]# yum --enablerepo=remi,remi-php72 install php-pear php-pecl-xdebug ・ ・ ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: php-pear noarch 1:1.10.5-6.el7.remi remi-php72 356 k php-pecl-xdebug x86_64 2.6.0-1.el7.remi.7.2 remi-php72 226 k 依存性関連でのインストールをします: php-fedora-autoloader noarch 1.0.0-1.el7.remi remi 8.9 k php-process x86_64 7.2.4-1.el7.remi remi-php72 77 k トランザクションの要約 ================================================================================ インストール 2 パッケージ (+2 個の依存関係のパッケージ)
php7.2インストール済みパッケージ確認
自宅サーバー4号機
[root@host4 ~]# rpm -qa | grep php php-mysqlnd-7.2.4-1.el7.remi.x86_64 php-fpm-7.2.4-1.el7.remi.x86_64 php-xml-7.2.4-1.el7.remi.x86_64 php-fedora-autoloader-1.0.0-1.el7.remi.noarch php-cli-7.2.4-1.el7.remi.x86_64 php-devel-7.2.4-1.el7.remi.x86_64 php-gmp-7.2.4-1.el7.remi.x86_64 php-process-7.2.4-1.el7.remi.x86_64 php-json-7.2.4-1.el7.remi.x86_64 php-7.2.4-1.el7.remi.x86_64 php-pecl-mcrypt-1.0.1-4.el7.remi.7.2.x86_64 php-opcache-7.2.4-1.el7.remi.x86_64 php-pecl-xdebug-2.6.0-1.el7.remi.7.2.x86_64 php-common-7.2.4-1.el7.remi.x86_64 php-gd-7.2.4-1.el7.remi.x86_64 php-pear-1.10.5-6.el7.remi.noarch php-pdo-7.2.4-1.el7.remi.x86_64 php-mbstring-7.2.4-1.el7.remi.x86_64
php.iniの設定
[root@host4 ~]# vi /etc/php.ini # [PHP]ブロック expose_php = Off ← レスポンスヘッダにPHPのバージョンを表示させない error_reporting = E_ALL ← 全てのログを出力させる display_errors = Off ← ブラウザでのエラー表示させない log_errors = On ← エラーをログに残す log_errors_max_len = 4096 ← エラーログの長さを設定、念のため大きめに error_log = "/var/log/php_errors.log" ← エラーログ出力先 default_charset = "UTF-8" ← 文字エンコーディング #[Date]ブロック date.timezone = "Asia/Tokyo" ← タイムゾーン #[mbstring]ブロック mbstring.language = Japanese ← デフォルト言語 mbstring.internal_encoding = UTF-8 ← 内部文字エンコーディング mbstring.http_input = auto ← HTTP入力文字エンコーディングのデフォルト mbstring.detect_order = auto ← 文字エンコーディング検出順序のデフォルト
Webサーバー再起動
[root@host4 ~]# systemctl restart httpd
phpバージョン確認
[root@host4 ~]# php -v PHP 7.2.4 (cli) (built: Mar 27 2018 17:23:35) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.4, Copyright (c) 1999-2018, by Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
Imagickをphpで使う
[root@host4 ~]# yum -y install ImageMagick [root@host4 ~]# yum -y install ImageMagick-devel [root@host4 ~]# pecl install imagick [root@host4 ~]# find / -name imagick.so /usr/lib64/php/modules/imagick.so [root@host4 ~]# cat /etc/php.d/imagick.ini extension=imagick.so [root@host4 ~]# systemctl restart httpd [root@host4 ~]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 土 2018-04-07 08:23:42 JST; 15s ago Docs: man:httpd(8) man:apachectl(8) Process: 19494 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 19500 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service tq19500 /usr/sbin/httpd -DFOREGROUND tq19501 /usr/sbin/httpd -DFOREGROUND tq19502 /usr/sbin/httpd -DFOREGROUND tq19503 /usr/sbin/httpd -DFOREGROUND tq19504 /usr/sbin/httpd -DFOREGROUND mq19505 /usr/sbin/httpd -DFOREGROUND 4月 07 08:23:42 host4.awajp.com systemd[1]: Starting The Apache HTTP Server... 4月 07 08:23:42 host4.awajp.com systemd[1]: Started The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full.
PHPINFO
- この画像は、古いバージョンです。