ヘルプ:yumでPHP7をインストールする方法(CentOS7)

提供:あわ自由帳

メインページ > ヘルプ:目次 > ヘルプ:自宅サーバー構築(CentOS7)  > 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

phpinfo-php70.png


今日はここまでです。