yumでPHP7.1をインストールする方法(CentOS7)
提供:あわ自由帳
メインページ > CentOS 7 で自宅サーバー構築 > yumでPHP7.1をインストールする方法(CentOS7)
- 自宅サーバーで、動作確認しています。導入される方は自己責任で行ってください。
- EPELリポジトリ、Remiリポジトリを導入済みとします。
CentOSバージョン確認
[root@host2 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
PHP7.1用のRemiリポジトリの優先度を1(最大)にする
エラーが出たため、PHP7.1用のRemiリポジトリの優先度を1(最大)にすることで問題を回避しました。
[root@host2 ~]# vi /etc/yum.repos.d/remi-php71.repo [remi-php71] priority=1 ← 追加 name=Remi's PHP 7.1 RPM repository for Enterprise Linux 7 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/7/php71/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/7/php71/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
既に入っているPHPのバージョン確認
自宅サーバー2号機
[root@host2 ~]# php -v PHP 7.0.19 (cli) (built: May 9 2017 16:02:11) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.19, Copyright (c) 1999-2017, by Zend Technologies with Xdebug v2.5.3, Copyright (c) 2002-2017, by Derick Rethans
自宅サーバー3号機
[root@host3 ~]# php -v
PHP 7.0.11 (cli) (built: Sep 14 2016 08:28:52) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.11, Copyright (c) 1999-2016, by Zend Technologies with Xdebug v2.5.3, Copyright (c) 2002-2017, by Derick Rethans
既に入っているPHPをアンインストール
インストール済みパッケージ確認
自宅サーバー2号機
PHP7.1にアップグレード前です。
[root@host2 ~]# rpm -qa | grep php php-7.0.28-1.el7.remi.x86_64 php-pecl-apcu-5.1.9-1.el7.remi.7.0.x86_64 php-gmp-7.0.28-1.el7.remi.x86_64 php-pear-1.10.5-2.el7.remi.noarch php-fpm-7.0.28-1.el7.remi.x86_64 php-cli-7.0.28-1.el7.remi.x86_64 php-opcache-7.0.28-1.el7.remi.x86_64 php-devel-7.0.28-1.el7.remi.x86_64 php-mcrypt-7.0.28-1.el7.remi.x86_64 php-pecl-apcu-bc-1.0.3-1.el7.remi.7.0.x86_64 php-common-7.0.28-1.el7.remi.x86_64 php-xml-7.0.28-1.el7.remi.x86_64 php-pecl-xdebug-2.5.5-1.el7.remi.7.0.x86_64 php-pdo-7.0.28-1.el7.remi.x86_64 php-gd-7.0.28-1.el7.remi.x86_64 php-mbstring-7.0.28-1.el7.remi.x86_64 php-json-7.0.28-1.el7.remi.x86_64 php-mysqlnd-7.0.28-1.el7.remi.x86_64 php-process-7.0.28-1.el7.remi.x86_64
自宅サーバー3号機
PHP7.1にアップグレード前です。
[root@host3 ~]# rpm -qa | grep php php-xml-7.0.11-1.el7.remi.x86_64 php-opcache-7.0.11-1.el7.remi.x86_64 php-devel-7.0.11-1.el7.remi.x86_64 php-pdo-7.0.11-1.el7.remi.x86_64 php-mysqlnd-7.0.11-1.el7.remi.x86_64 php-fpm-7.0.11-1.el7.remi.x86_64 php-mbstring-7.0.11-1.el7.remi.x86_64 php-pecl-apcu-5.1.5-1.el7.remi.7.0.x86_64 php-json-7.0.11-1.el7.remi.x86_64 php-cli-7.0.11-1.el7.remi.x86_64 php-pear-1.10.1-6.el7.remi.noarch php-mcrypt-7.0.11-1.el7.remi.x86_64 php-pecl-apcu-bc-1.0.3-1.el7.remi.7.0.x86_64 php-common-7.0.11-1.el7.remi.x86_64 php-7.0.11-1.el7.remi.x86_64 php-pecl-xdebug-2.5.3-2.el7.remi.7.0.x86_64 php-process-7.0.11-1.el7.remi.x86_64 php-gmp-7.0.11-1.el7.remi.x86_64 php-gd-7.0.11-1.el7.remi.x86_64
アンインストール
[root@host2 ~]# yum remove php php-* php70-* [root@host2 ~]# php -v [root@host2 ~]# rpm -qa | grep php
バージョン情報が出てこなければアンインストール完了です。
インストール
インストール実行
※行の長さの関係で途中に改行が這い入ってます。注意してください。
[root@host2 ~]# yum --enablerepo=remi-php71 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.1.16-1.el7.remi remi-php71 3.0 M php-cli x86_64 7.1.16-1.el7.remi remi-php71 4.6 M php-common x86_64 7.1.16-1.el7.remi remi-php71 1.0 M php-devel x86_64 7.1.16-1.el7.remi remi-php71 1.1 M php-fpm x86_64 7.1.16-1.el7.remi remi-php71 1.6 M php-gd x86_64 7.1.16-1.el7.remi remi-php71 74 k php-gmp x86_64 7.1.16-1.el7.remi remi-php71 66 k php-json x86_64 7.1.16-1.el7.remi remi-php71 59 k php-mbstring x86_64 7.1.16-1.el7.remi remi-php71 577 k php-mcrypt x86_64 7.1.16-1.el7.remi remi-php71 57 k php-mysqlnd x86_64 7.1.16-1.el7.remi remi-php71 229 k php-opcache x86_64 7.1.16-1.el7.remi remi-php71 240 k php-pdo x86_64 7.1.16-1.el7.remi remi-php71 122 k php-xml x86_64 7.1.16-1.el7.remi remi-php71 208 k トランザクションの要約 ================================================================================
上記以外のパッケージはインストール出来ませんでした。
インストール出来なかったパッケージをインストール
[root@host2 ~]# yum --enablerepo=remi,remi-php71 install php-pear php-pecl-xdebug ・ ・ ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: php-pear noarch 1:1.10.5-6.el7.remi remi-php71 356 k php-pecl-xdebug x86_64 2.6.0-1.el7.remi.7.1 remi-php71 226 k 依存性関連でのインストールをします: php-fedora-autoloader noarch 1.0.0-1.el7.remi remi 8.9 k php-process x86_64 7.1.16-1.el7.remi remi-php71 76 k トランザクションの要約 ================================================================================ インストール 2 パッケージ (+2 個の依存関係のパッケージ)
再度インストール済みパッケージ確認
自宅サーバー2号機
[root@host2 ~]# rpm -qa | grep php php-7.1.16-1.el7.remi.x86_64 php-mcrypt-7.1.16-1.el7.remi.x86_64 php-fpm-7.1.16-1.el7.remi.x86_64 php-process-7.1.16-1.el7.remi.x86_64 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-opcache-7.1.16-1.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-gd-7.1.16-1.el7.remi.x86_64 php-pecl-apcu-5.1.11-1.el7.remi.7.1.x86_64 php-gmp-7.1.16-1.el7.remi.x86_64 php-common-7.1.16-1.el7.remi.x86_64 php-pear-1.10.5-6.el7.remi.noarch php-pdo-7.1.16-1.el7.remi.x86_64 php-devel-7.1.16-1.el7.remi.x86_64
自宅サーバー3号機
[root@host3 ~]# rpm -qa | grep php php-pdo-7.1.16-1.el7.remi.x86_64 php-fpm-7.1.16-1.el7.remi.x86_64 php-common-7.1.16-1.el7.remi.x86_64 php-mcrypt-7.1.16-1.el7.remi.x86_64 php-pear-1.10.5-6.el7.remi.noarch php-json-7.1.16-1.el7.remi.x86_64 php-7.1.16-1.el7.remi.x86_64 php-mbstring-7.1.16-1.el7.remi.x86_64 php-gmp-7.1.16-1.el7.remi.x86_64 php-pecl-xdebug-2.6.0-1.el7.remi.7.1.x86_64 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 php-process-7.1.16-1.el7.remi.x86_64 php-opcache-7.1.16-1.el7.remi.x86_64 php-fedora-autoloader-1.0.0-1.el7.remi.noarch php-mysqlnd-7.1.16-1.el7.remi.x86_64 php-xml-7.1.16-1.el7.remi.x86_64
php.iniの設定
[root@host2 ~]# 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@host2 ~]# systemctl restart httpd
phpバージョン確認
[root@host2 ~]# php -v PHP Warning: PHP Startup: imagick: Unable to initialize module Module compiled with module API=20151012 PHP compiled with module API=20160303 These options need to match in Unknown on line 0 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
Imagickをphpで使う
[root@host2 ~]# pecl install imagick [root@host2 ~]# find / -name imagick.so /usr/lib64/php/modules/imagick.so [root@host2 ~]# vi /etc/php.d/imagick.ini ; Enable imagick extension module extension=imagick.so [root@host2 ~]# systemctl restart httpd