PHP

php7.2のインストール

 

OSとApacheのバージョン確認

CentOS7のバージョン

# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 

Apacheのバージョン

# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov  5 2018 01:47:09

phpの旧バージョンの有無を確認

php7.2をインストールする前に、phpがインストールされていないことを確認します。以下のコマンドでphpがインストールされていないことを確認します。

# yum list installed | grep php
#

何も表示されなければ、完了です。もし出力結果にphpが含まれている場合は、phpを削除します。

# yum remove php*

remiリポジトリのインストール

CentOS7のデフォルトではphp7.2系に関するパッケージを探してみても見つかりません。これはOSのベースに用意されているレポジトリにはphpの7.2系は含まれていないためです。

remiレポジトリはEPELの補完的な外部リポジトリです。有志によって管理されています。
remi公式サイトのリンクにあるRedhat enterprise linux 7用のremiを利用します。

ではremiリポジトリをインストールします。

# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

EPELレポジトリがインストールされていなくても、yumコマンドの依存関係でremiレポジトリをインストールする際にEPELレポジトリもインストールされます。

レポジトリファイルは/etc/yum.repos.d/以下にありますので、確認してみます。

# cd /etc/yum.repos.d/
-rw-r--r--. 1 root root 1664 11月 23 22:16 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 11月 23 22:16 CentOS-CR.repo
-rw-r--r--. 1 root root  649 11月 23 22:16 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  630 11月 23 22:16 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 11月 23 22:16 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 11月 23 22:16 CentOS-Vault.repo
-rw-r--r--. 1 root root  314 11月 23 22:16 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 1050 10月  3  2017 epel-testing.repo
-rw-r--r--. 1 root root  951 10月  3  2017 epel.repo
-rw-r--r--. 1 root root  446  3月  8 16:34 remi-glpi91.repo
-rw-r--r--. 1 root root  446  3月  8 16:34 remi-glpi92.repo
-rw-r--r--. 1 root root  446  3月  8 16:34 remi-glpi93.repo
-rw-r--r--. 1 root root  446  3月  8 16:34 remi-glpi94.repo
-rw-r--r--. 1 root root  855  3月  8 16:34 remi-modular.repo
-rw-r--r--. 1 root root  456  3月  8 16:34 remi-php54.repo
-rw-r--r--. 1 root root 1314  3月  8 16:34 remi-php70.repo
-rw-r--r--. 1 root root 1314  3月  8 16:34 remi-php71.repo
-rw-r--r--. 1 root root 1314  3月  8 16:34 remi-php72.repo
-rw-r--r--. 1 root root 1314  3月  8 16:34 remi-php73.repo
-rw-r--r--. 1 root root  750  3月  8 16:34 remi-safe.repo
-rw-r--r--. 1 root root 2605  3月  8 16:34 remi.repo

remiレポジトリの確認

remiレポジトリでphp7.2関連の導入に利用するレポジトリはremi-php72レポジトリになります

# yum search --enablerepo=remi,remi-php72 php72
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: www.ftp.ne.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi: ftp.riken.jp
 * remi-php72: ftp.riken.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
============================== N/S matched: php72 ==============================
php72-php-pecl-handlebars-devel.x86_64 : php72-php-pecl-handlebars developer
                                       : files (header)
・・・・
php72-php-pecl-zip.x86_64 : Une extension de gestion des ZIP
php72-php-pecl-zmq.x86_64 : ZeroMQ messaging
php72-php-pggi.x86_64 : GTK bindings
php72-php-pgsql.x86_64 : A PostgreSQL database module for PHP
php72-php-phalcon3.x86_64 : Phalcon Framework
php72-php-phpiredis.x86_64 : Client extension for Redis
php72-php-pinba.x86_64 : Client extension for Pinba statistics server
php72-php-process.x86_64 : Modules for PHP script using system process
                         : interfaces
php72-php-pspell.x86_64 : A module for PHP applications for using pspell
                        : interfaces
php72-php-recode.x86_64 : A module for PHP applications for using the recode
                        : library
php72-php-smbclient.x86_64 : PHP wrapper for libsmbclient
php72-php-snappy.x86_64 : Snappy Extension for PHP
php72-php-snmp.x86_64 : A module for PHP applications that query SNMP-managed
                      : devices
php72-php-snuffleupagus.x86_64 : Security module for php7
php72-php-soap.x86_64 : A module for PHP applications that use the SOAP protocol
php72-php-sodium.x86_64 : Wrapper for the Sodium cryptographic library
php72-php-sqlsrv.x86_64 : Microsoft Drivers for PHP for SQL Server
php72-php-tarantool.x86_64 : PHP driver for Tarantool/Box
php72-php-tidy.x86_64 : Standard PHP module provides tidy library support
php72-php-twig.noarch : The flexible, fast, and secure template engine for PHP
php72-php-wkhtmltox.x86_64 : HTML Converter
php72-php-xml.x86_64 : A module for PHP applications which use XML
php72-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC
                        : protocol
php72-php-zephir-parser.x86_64 : Zephir parser extension
php72-php-zstd.x86_64 : Zstd Extension for PHP
php72-unit-php.x86_64 : PHP module for NGINX Unit
php72-uwsgi-plugin-php.x86_64 : uWSGI - Plugin for PHP support
php72-zephir.noarch : Zephir language for creation of extensions for PHP.
php72-zephir-parser.x86_64 : Zephir parser extension

  Name and summary matches only, use "search all" for everything.

phpパッケージのインストール

まず、パッケージの詳細を確認後、インストールします

パッケージの確認
# yum info --enablerepo=remi,remi-php72 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql

パッケージのインストール
# yum -y install --enablerepo=remi,remi-php72 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql

エラーが出ないで、”完了しました!”と表示されれば、phpは正常にインストールされています。

インストールされたphpの確認

# yum list installed | grep php
php.x86_64                           7.2.17-1.el7.remi               @remi-php72
php-cli.x86_64                       7.2.17-1.el7.remi               @remi-php72
php-common.x86_64                    7.2.17-1.el7.remi               @remi-php72
php-gd.x86_64                        7.2.17-1.el7.remi               @remi-php72
php-json.x86_64                      7.2.17-1.el7.remi               @remi-php72
php-mbstring.x86_64                  7.2.17-1.el7.remi               @remi-php72
php-mysqlnd.x86_64                   7.2.17-1.el7.remi               @remi-php72
php-pdo.x86_64                       7.2.17-1.el7.remi               @remi-php72
php-pecl-mcrypt.x86_64               1.0.2-2.el7.remi.7.2            @remi-php72
php-pecl-mysql.x86_64                1.0.0-0.17.20160812git230a828.el7.remi.7.2
                                                                     @remi-php72
php-xml.x86_64                       7.2.17-1.el7.remi               @remi-php72
php-xmlrpc.x86_64                    7.2.17-1.el7.remi               @remi-php72

phpの基本設定

# vi /etc/php.ini
376行目(バージョンを出力しない:セキュリティ対策)
expose_php = On を Off に変更

674行目(アップロードサイズの変更1)
post_max_size = 2M を 20M に変更

827行目(アップロードサイズの変更2)
upload_max_filesize = 2M  を  20M に変更

904行目(タイムゾーンの設定)
date.timezone = "Asia/Tokyo" Asia/Tokyo を追加

1529行目行頭の ; を削除(日本語対応)
mbstring.language = Japanese

1536行目で UTF-8 を追加(文字エンコード)
mbstring.internal_encoding = UTF-8

1544行目で UTF-8 を追加(http通信時の文字エンコード)
mbstring.http_input = UTF-8

1554行目で pass を追加(http通信のエンコード変換を行わない)
mbstring.http_output = pass

1562行目行頭の ; を削除し、Off を On に変更(http入力変換を有効にする)
mbstring.encoding_translation = On

1567行目行頭の ; を削除(文字コードの自動変換を自動にする)
mbstring.detect_order = auto

1572行目行頭の ; を削除(変換出来ない文字は出力しない)
mbstring.substitute_character = none

以上で設定は完了したので、上書き保存します

phpの設定を反映する

Apacheを再起動してphpの設定を反映する

# systemctl restart httpd
# 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 日 2019-04-14 10:50:45 JST; 3h 1min ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 3298 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
 Main PID: 3124 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─3124 /usr/sbin/httpd -DFOREGROUND
           ├─3302 /usr/sbin/httpd -DFOREGROUND
           ├─3303 /usr/sbin/httpd -DFOREGROUND
           ├─3305 /usr/sbin/httpd -DFOREGROUND
           ├─3306 /usr/sbin/httpd -DFOREGROUND
           └─3307 /usr/sbin/httpd -DFOREGROUND

 4月 14 10:50:42 localhost.localdomain systemd[1]: Starting The Apache HTTP ...
 4月 14 10:50:45 localhost.localdomain systemd[1]: Started The Apache HTTP S...
 4月 14 11:21:01 localhost.localdomain systemd[1]: Reloading The Apache HTTP...
 4月 14 11:21:01 localhost.localdomain systemd[1]: Reloaded The Apache HTTP ...
Hint: Some lines were ellipsized, use -l to show in full.

phpの動作確認

ドキュメントルートにファイルを置き、ブラウザで確認します

# cd /var/www/html
# touch info.php
# vi info.php
<?php phpinfo(); ?>

ブラウザに下図の表示が出れば正常にphpが動作しています

タイトルとURLをコピーしました