yumでPHP7をインストールする方法(CentOS7)
提供:あわ自由帳
メインページ > CentOS 7 で自宅サーバー構築 > yumでPHP7をインストールする方法(CentOS7)
失敗防止の記録です。
導入は成功してます。
- 設置済み MediaWiki 1.26.4 が動作しました。
- MediaWiki 1.27.1 にアップデート成功しました。
- 設置済み WordPress が動作しました。
- WordPress インストールに成功しました。
EPELリポジトリ、Remiリポジトリを導入済みとします。
CentOSバージョン確認
[root@host4 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
既に入っているPHPをアンインストール
[root@host4 ~]# yum remove php* [root@host4 ~]# php -v
バージョン情報が出てこなければアンインストール完了です。
PHP7用のRemiリポジトリの優先度を1(最大)にする
エラーが出たため、PHP7用のRemiリポジトリの優先度を1(最大)にすることで問題を回避しました。
[root@host4 ~]# vi /etc/yum.repos.d/remi-php70.repo [remi-php70] priority=1 ← 追加 name=Remi's PHP 7.0 RPM repository for Enterprise Linux 7 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/7/php70/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/7/php70/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
インストール
インストール実行
[root@host4 ~]# yum --enablerepo=remi-php70 install php php-cli php-devel php-common php-mbstring php-mysqlnd php-pear php-pecl-xdebug php-fpm php-gd php-gmp php-mcrypt php-opcache php-pdo php-xml php-json ・ ・ 依存性を解決しました ================================================================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================================ インストール中: php x86_64 7.0.10-1.el7.remi remi-php70 2.6 M php-cli x86_64 7.0.10-1.el7.remi remi-php70 3.9 M php-common x86_64 7.0.10-1.el7.remi remi-php70 1.0 M php-devel x86_64 7.0.10-1.el7.remi remi-php70 1.0 M php-fpm x86_64 7.0.10-1.el7.remi remi-php70 1.4 M php-gd x86_64 7.0.10-1.el7.remi remi-php70 67 k php-gmp x86_64 7.0.10-1.el7.remi remi-php70 61 k php-mbstring x86_64 7.0.10-1.el7.remi remi-php70 567 k php-mcrypt x86_64 7.0.10-1.el7.remi remi-php70 51 k php-mysqlnd x86_64 7.0.10-1.el7.remi remi-php70 230 k php-opcache x86_64 7.0.10-1.el7.remi remi-php70 150 k php-pdo x86_64 7.0.10-1.el7.remi remi-php70 116 k php-pecl-xdebug x86_64 2.4.1-1.el7.remi.7.0 remi-php70 193 k php-xml x86_64 7.0.10-1.el7.remi remi-php70 201 k php-json x86_64 7.0.10-1.el7.remi remi-php70 54 k
上記以外のパッケージはインストール出来ませんでした。
インストール済みパッケージ確認
自宅サーバー3号機
PHP7にアップグレード前です。
[root@host3 ~]# rpm -qa | grep php php-devel-5.4.16-36.3.el7_2.x86_64 php-xml-5.4.16-36.3.el7_2.x86_64 php-cli-5.4.16-36.3.el7_2.x86_64 php-intl-5.4.16-36.3.el7_2.x86_64 php-snmp-5.4.16-36.3.el7_2.x86_64 php-common-5.4.16-36.3.el7_2.x86_64 php-mysql-5.4.16-36.3.el7_2.x86_64 php-xmlrpc-5.4.16-36.3.el7_2.x86_64 php-gd-5.4.16-36.3.el7_2.x86_64 php-mcrypt-5.4.16-2.el7.x86_64 php-odbc-5.4.16-36.3.el7_2.x86_64 php-ldap-5.4.16-36.3.el7_2.x86_64 php-mbstring-5.4.16-36.3.el7_2.x86_64 php-pear-1.9.4-21.el7.noarch php-pdo-5.4.16-36.3.el7_2.x86_64 php-soap-5.4.16-36.3.el7_2.x86_64 php-pecl-memcache-3.0.8-4.el7.x86_64 php-5.4.16-36.3.el7_2.x86_64 php-process-5.4.16-36.3.el7_2.x86_64
PHP7にアップグレード後です。
[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-xdebug-2.4.1-1.el7.remi.7.0.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-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
自宅サーバー4号機
PHP7にアップグレー後です。
[root@host4 ~]# rpm -qa | grep php php-cli-7.0.10-1.el7.remi.x86_64 php-7.0.10-1.el7.remi.x86_64 php-xml-7.0.10-1.el7.remi.x86_64 php-gmp-7.0.10-1.el7.remi.x86_64 php-json-7.0.10-1.el7.remi.x86_64 php-pdo-7.0.10-1.el7.remi.x86_64 php-devel-7.0.10-1.el7.remi.x86_64 php-mbstring-7.0.10-1.el7.remi.x86_64 php-fpm-7.0.10-1.el7.remi.x86_64 php-gd-7.0.10-1.el7.remi.x86_64 php-pecl-xdebug-2.4.1-1.el7.remi.7.0.x86_64 php-process-7.0.10-1.el7.remi.x86_64 php-common-7.0.10-1.el7.remi.x86_64 php-mysqlnd-7.0.10-1.el7.remi.x86_64 php-mcrypt-7.0.10-1.el7.remi.x86_64 php-opcache-7.0.10-1.el7.remi.x86_64 php-pear-1.10.1-6.el7.remi.noarch
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 Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/apc.so' - /usr/lib64/php/modules/apc.so: undefined symbol: zval_used_for_init in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/imagick.so' - /usr/lib64/php/modules/imagick.so: undefined symbol: zend_object_store_get_object in Unknown on line 0 PHP 7.0.10 (cli) (built: Aug 31 2016 18:07:34) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.10, Copyright (c) 1999-2016, by Zend Technologies with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
エラーが出ています。
phpエラー解決
APC Imagick を削除します。
[root@host4 ~]# yum --enablerepo=remi-php70 install php-pear [root@host4 ~]# rm -f /etc/php.d/apc.ini [root@host4 ~]# rm -f /etc/php.d/imagick.ini [root@host4 ~]# pecl uninatall apc [root@host4 ~]# pecl uninstall imagick [root@host4 ~]# systemctl restart httpd
phpエラー確認
[root@host4 ~]# php -v PHP 7.0.10 (cli) (built: Aug 31 2016 18:07:34) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.10, Copyright (c) 1999-2016, by Zend Technologies with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
Imagickをphpで使う
[root@host4 ~]# pecl install imagick [root@host4 ~]# find / -name imagick.so /usr/lib64/php/modules/imagick.so [root@host3 ~]# vi /etc/php.d/imagick.ini ; Enable imagick extension module extension=imagick.so [root@host4 ~]# systemctl restart httpd
PHPINFO
今日はここまでです。