目次

目次

& PHP の最新版をインストールした際の記録

アバター画像
江藤 光
アバター画像
江藤 光
最終更新日2016/11/22 投稿日2016/11/22

Amazon Linux で Nginx & PHP の最新版をインストールした際の記録

環境

  • インストール日 : 2016年7月19日
  • OS : Amazon Linux 2016.03
  • httpd : Nginx1.10
  • プログラミング言語 : PHP7

Nginx

  • 何も設定を行わずに $ sudo yum install nginx とすると、レガシーな1.8系がインストールされます。
[ec2-user@hostname ~]$ sudo yum install nginx
[sudo] password for recouser:

(snip)

[ec2-user@hostname ~]$ nginx -v
nginx version: nginx/1.8.1
  • ソフトウェアによってはバージョン指定することでより新しいものがインストールできたりするんですが、Nginxについてはなさそうです
[ec2-user@hostname ~]$ yum search nginx
Loaded plugins: priorities, update-motd, upgrade-helper
================================================================================ N/S matched: nginx ================================================================================
collectd-nginx.x86_64 : Nginx plugin for collectd
munin-nginx.noarch : Network-wide graphing framework (cgi files for nginx)
nginx.x86_64 : A high performance web server and reverse proxy server

  • そこで、参照するリポジトリを変更して、最新版がインストールされるように設定を行います
  • [Nginx 公式ドキュメント](http://nginx.org/en/linux_packages.html#mainline) に、設定ファイルを書き換えて参照するレポジトリを変更する方法が書かれています。
  • 今回、この手順に従って作業を行ってみました。これはその際のログです。

Nginx1.8 を削除

  • これから 最新版を入れるので、古いバージョンのものは削除しました
[ec2-user@hostname ~]$ sudo yum remove nginx
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.8.1-3.27.amzn1 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                              Arch                                  Version                                              Repository                                    Size
====================================================================================================================================================================================
Removing:
 nginx                                x86_64                                1:1.8.1-3.27.amzn1                                   @amzn-updates                                1.3 M

Transaction Summary
====================================================================================================================================================================================
Remove  1 Package

Installed size: 1.3 M
Is this ok [y/N]: y

(snip)

Amazon Linux のバージョン指定

  • 公式ドキュメントの手順によると、以下の2ステップを行えばよい
    1. 設定ファイルにnginxのリポジトリについての記述を追加
    2. 電子署名を追加

設定ファイルにnginxのリポジトリについての記述を追加

  • RHEL もしくは CentOS のバージョンを設定ファイルに書く必要がありました。
  • Amazon Linux も元を正せば RHEL なので、互換となるバージョンがあるはずです
  • こちらの記事のやり方に従って、まずは Amazon Linux のバージョンを見てみました
[ec2-user@hostname ~]$ cat /etc/system-release
Amazon Linux AMI release 2016.03
  • よく分かりません…
  • その後いろいろと調べたのですが、信頼できるソースの情報は見つかりませんでした…
[ec2-user@hostname ~]$ sudoedit /etc/yum.repos.d/nginx.repo

以下の内容で保存
--
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
--

電子署名を追加

  • nginx のリポジトリを信頼できるものとして登録してあげないといけません
  • 公式から署名ファイルをダウンロードし、それを登録します。
[ec2-user@hostname ~]$ wget http://nginx.org/keys/nginx_signing.key
--2016-07-15 02:31:21--  http://nginx.org/keys/nginx_signing.key
Resolving nginx.org (nginx.org)... 206.251.255.63, 95.211.80.227, 2606:7100:1:69::3f, ...
Connecting to nginx.org (nginx.org)|206.251.255.63|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1561 (1.5K) [text/plain]
Saving to: ‘nginx_signing.key’

nginx_signing.key                            100%[==============================================================================================>]   1.52K  --.-KB/s    in 0s

2016-07-15 02:31:22 (253 MB/s) - ‘nginx_signing.key’ saved [1561/1561]

[ec2-user@hostname ~]$ sudo rpm --import nginx_signing.key
[sudo] password for recouser:

新しいバージョンがインストールされない問題

  • 早速インストール…と思ったのですが問題が発生しました
[ec2-user@hostname ~]$ sudo yum install nginx
Loaded plugins: priorities, update-motd, upgrade-helper
4 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.8.1-3.27.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                               Arch                                   Version                                            Repository                                    Size
====================================================================================================================================================================================
Installing:
 nginx                                 x86_64                                 1:1.8.1-3.27.amzn1                                 amzn-updates                                 558 k

Transaction Summary
====================================================================================================================================================================================
Install  1 Package

Total download size: 558 k
Installed size: 1.3 M
Is this ok [y/d/N]:

  • 作業前とバージョンが変わってません

リポジトリの優先順位設定

  • Amazon公式リポジトリの設定ファイルに次のような記述を見つけました
priority=10

yum-plugin-priorities という機能によるものらしく、「小さい方が優先順位が高い」という設定のようです

  • そこで、次の一文を nginx.repo に追加しました
priority=1
  • 少々乱暴ですね。ちょうど良い値を考えなければいけないです

インストール

  • この状態で yum を実行すると、最新版にあたる 1.10系 がインストールされました
[ec2-user@hostname yum.repos.d]$ sudo yum install nginx
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                                                                                                                             | 2.1 kB     00:00
amzn-updates/latest                                                                                                                                          | 2.3 kB     00:00
nginx/x86_64                                                                                                                                                 | 2.9 kB     00:00
2 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 0:1.10.1-1.el6.ngx will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                                 Arch                                     Version                                             Repository                               Size
====================================================================================================================================================================================
Installing:
 nginx                                   x86_64                                   1.10.1-1.el6.ngx                                    nginx                                   821 k

Transaction Summary
====================================================================================================================================================================================
Install  1 Package

Total download size: 821 k
Installed size: 2.1 M
Is this ok [y/d/N]: y
Downloading packages:
nginx-1.10.1-1.el6.ngx.x86_64.rpm                        | 821 kB     00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : nginx-1.10.1-1.el6.ngx.x86_64                                1/1
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
  Verifying  : nginx-1.10.1-1.el6.ngx.x86_64                                1/1

Installed:
  nginx.x86_64 0:1.10.1-1.el6.ngx

Complete!
[ec2-user@hostname yum.repos.d]$ nginx -v
nginx version: nginx/1.10.1

  • nginx のサービスをスタートさせる
[ec2-user@hostname sbin]$ sudo service nginx start
Starting nginx:                                            [  OK  ]

  • システム開始時に自動起動するように設定を行う
[ec2-user@hostname sbin]$ chkconfig nginx on
You do not have enough privileges to perform this operation.
[ec2-user@hostname sbin]$ sudo chkconfig nginx on
[ec2-user@hostname sbin]$ chkconfig | grep nginx
nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off
nginx-debug     0:off   1:off   2:off   3:off   4:off   5:off   6:off
  • 最後にサイトに対してアクセスを行い、index.html が表示されることを確認

PHP

  • リポジトリとしてどれを選択するか、記事によっていくつか方法がありました
  • 今回は「epel」と「remi」を用いることにしました
    • epel は Fedora (実験的で不安定だけどソフトウェアを沢山提供) のリポジトリを他の互換ディストリビューションでも使いたい!という気持ちから生まれたリポジトリらしいです。(詳しくは こちら )
    • そして、remi は PHPやその周辺パッケージを常に最新バージョンで提供したい!という気持ちから生まれたリポジトリらしいです。(詳しくは こちら)

リポジトリを有効にする

[ec2-user@hostname ~]$ sudo yum-config-manager --enable epel
[sudo] password for recouser:
Sorry, try again.
[sudo] password for recouser:
Loaded plugins: priorities, update-motd, upgrade-helper
================================== repo: epel ==================================
[epel]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/latest
baseurl =
cache = 0
cachedir = /var/cache/yum/x86_64/latest/epel
check_config_file_age = True
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = 1
enablegroups = True
exclude =
failovermethod = priority
gpgcadir = /var/lib/yum/repos/x86_64/latest/epel/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/latest/epel/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
hdrdir = /var/cache/yum/x86_64/latest/epel/headers
http_caching = all
includepkgs =
ip_resolve =
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid =
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink =
minrate = 0
mirrorlist = https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=x86_64
mirrorlist_expire = 86400
name = Extra Packages for Enterprise Linux 6 - x86_64
old_base_cache_dir =
password =
persistdir = /var/lib/yum/repos/x86_64/latest/epel
pkgdir = /var/cache/yum/x86_64/latest/epel/packages
priority = 99
proxy = False
proxy_dict =
proxy_password =
proxy_username =
repo_gpgcheck = False
report_instanceid = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
ui_id = epel/x86_64
ui_repoid_vars = releasever,
   basearch
username =
[ec2-user@hostname ~]$
  • remi
    • こちらはそもそも、設定すらされていません
    • 新たなリポジトリとして登録を行います
    • やり方は この記事を参考にしました
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

古いバージョンのものを削除

yum remove を使って php5.3 系の物を削除しました

インストール

  • PHP7 をインストールしてみます
[ec2-user@hostname ~]$ sudo yum install php70
Loaded plugins: priorities, update-motd, upgrade-helper
958 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package php70.x86_64 0:7.0.8-1.13.amzn1 will be installed
--> Processing Dependency: httpd-mmn = 20120211x86-64 for package: php70-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-common(x86-64) = 7.0.8-1.13.amzn1 for package: php70-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-cli(x86-64) = 7.0.8-1.13.amzn1 for package: php70-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-common for package: php70-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: httpd24 for package: php70-7.0.8-1.13.amzn1.x86_64
--> Running transaction check
---> Package httpd24.x86_64 0:2.4.18-1.64.amzn1 will be installed
--> Processing Dependency: httpd24-tools = 2.4.18-1.64.amzn1 for package: httpd24-2.4.18-1.64.amzn1.x86_64
---> Package php70-cli.x86_64 0:7.0.8-1.13.amzn1 will be installed
---> Package php70-common.x86_64 0:7.0.8-1.13.amzn1 will be installed
--> Processing Dependency: php70-process(x86-64) = 7.0.8-1.13.amzn1 for package: php70-common-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-xml(x86-64) = 7.0.8-1.13.amzn1 for package: php70-common-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-json(x86-64) for package: php70-common-7.0.8-1.13.amzn1.x86_64
--> Running transaction check
---> Package httpd24-tools.x86_64 0:2.4.18-1.64.amzn1 will be installed
---> Package php70-json.x86_64 0:7.0.8-1.13.amzn1 will be installed
---> Package php70-process.x86_64 0:7.0.8-1.13.amzn1 will be installed
---> Package php70-xml.x86_64 0:7.0.8-1.13.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                                     Arch                                 Version                                          Repository                                  Size
====================================================================================================================================================================================
Installing:
 php70                                       x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                               3.3 M
Installing for dependencies:
 httpd24                                     x86_64                               2.4.18-1.64.amzn1                                amzn-main                                  1.4 M
 httpd24-tools                               x86_64                               2.4.18-1.64.amzn1                                amzn-main                                   92 k
 php70-cli                                   x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                               4.7 M
 php70-common                                x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                               1.2 M
 php70-json                                  x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                                64 k
 php70-process                               x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                                78 k
 php70-xml                                   x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                               307 k

Transaction Summary
====================================================================================================================================================================================
Install  1 Package (+7 Dependent packages)

Total download size: 11 M
Installed size: 34 M
Is this ok [y/d/N]: y

(snip)

[ec2-user@hostname ~]$ php --version
PHP 7.0.8 (cli) (built: Jun 28 2016 18:10:08) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

無事に PHP7 がインストールされました

php-fpm が正しくインストールされない問題

  • 次に、php-fpm もインストールを行いました
[ec2-user@hostname ~]$ sudo yum install php70-php-fpm

(snip)

  • しかしながら、 php-fpm の実行ファイルがどこにも居ません
[ec2-user@hostname fpm]$ whereis php-fpm
php-fpm: /etc/php-fpm.d /usr/local/etc/php-fpm.d /usr/local/etc/php-fpm.conf
[ec2-user@hostname fpm]$ find / -name "fpm" 2> /dev/null
/opt/remi/php70/root/usr/share/fpm
/usr/local/php/php/fpm
/usr/share/fpm

先輩に相談

  • この問題を私個人では解決できませんでした
  • 先輩に相談したところ、ヒントのを教えて頂きました
  • どうやら、名前が重要らしく
    • php70-php-fpm という名前でインストールしているので、 インストールされるコマンドおよびサービス名も php70-php-fpm になるようです
    • そもそも、php-fpm という名前でインストールを行っても PHP7 系がインストールされるように設定を行う方法があると押して頂きました
  • それ以外にも、先輩に相談を行ったところ問題が発覚しました
    • 改めてインストール時の実行結果を見てみると、設定したはずの remi リポジトリからインストールが行われていません
[ec2-user@hostname ~]$ sudo yum install php70
Loaded plugins: priorities, update-motd, upgrade-helper
958 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package php70.x86_64 0:7.0.8-1.13.amzn1 will be installed
--> Processing Dependency: httpd-mmn = 20120211x86-64 for package: php70-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-common(x86-64) = 7.0.8-1.13.amzn1 for package: php70-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-cli(x86-64) = 7.0.8-1.13.amzn1 for package: php70-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-common for package: php70-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: httpd24 for package: php70-7.0.8-1.13.amzn1.x86_64
--> Running transaction check
---> Package httpd24.x86_64 0:2.4.18-1.64.amzn1 will be installed
--> Processing Dependency: httpd24-tools = 2.4.18-1.64.amzn1 for package: httpd24-2.4.18-1.64.amzn1.x86_64
---> Package php70-cli.x86_64 0:7.0.8-1.13.amzn1 will be installed
---> Package php70-common.x86_64 0:7.0.8-1.13.amzn1 will be installed
--> Processing Dependency: php70-process(x86-64) = 7.0.8-1.13.amzn1 for package: php70-common-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-xml(x86-64) = 7.0.8-1.13.amzn1 for package: php70-common-7.0.8-1.13.amzn1.x86_64
--> Processing Dependency: php70-json(x86-64) for package: php70-common-7.0.8-1.13.amzn1.x86_64
--> Running transaction check
---> Package httpd24-tools.x86_64 0:2.4.18-1.64.amzn1 will be installed
---> Package php70-json.x86_64 0:7.0.8-1.13.amzn1 will be installed
---> Package php70-process.x86_64 0:7.0.8-1.13.amzn1 will be installed
---> Package php70-xml.x86_64 0:7.0.8-1.13.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                                     Arch                                 Version                                          Repository                                  Size
====================================================================================================================================================================================
Installing:
 php70                                       x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                               3.3 M
Installing for dependencies:
 httpd24                                     x86_64                               2.4.18-1.64.amzn1                                amzn-main                                  1.4 M
 httpd24-tools                               x86_64                               2.4.18-1.64.amzn1                                amzn-main                                   92 k
 php70-cli                                   x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                               4.7 M
 php70-common                                x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                               1.2 M
 php70-json                                  x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                                64 k
 php70-process                               x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                                78 k
 php70-xml                                   x86_64                               7.0.8-1.13.amzn1                                 amzn-updates                               307 k

Transaction Summary
====================================================================================================================================================================================
Install  1 Package (+7 Dependent packages)

Total download size: 11 M
Installed size: 34 M
Is this ok [y/d/N]: y

これらの解決について、次の節で説明します

リポジトリの再設定

  • 先輩から頂いた指摘に関して自分なりに考えたところ、原因は以下の二つにあると考えました
    • 追加したリポジトリが有効になっていない
    • 優先順位が設定されていないため、最低優先順位のamzn-mainよりもさらに下の優先順位になっている
  • そこで、以下の内容を /etc/yum.repos.d/remi-php70.repo になるように修正します
    • 変更したのは priority と enabled の項目です
[remi-php70]
priority=1
enabled=1
name=Remi's PHP 7.0 RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/php70/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/php70/mirror
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
  • その状態で改めてインストールを行いました
  • ひとまず、これまでインストールしたものを全て削除しました
[ec2-user@hostname yum.repos.d]$ sudo yum remove php*
(snip)
  • 改めて、php および php-fpm をインストールします。
    • リポジトリが変更されていることと、バージョンが7系になっていることが確認できます
    • httpd (apache) は不要なのですが、これをインストールしない方法が分からなかったので、一緒にインストールします
    • remi が遅いので、これも今後なんとかしたい
  • (補足)php-fpm について
    • Apache の場合、PHP は Apache のモジュールの一つとして動いています
    • つまり。Apache の中で PHP も一緒に動いているようなイメージです
    • 一方、Nginx では PHP は全く別のプロセスとして動いています
    • これが PHP-FPM です
    • Apache では、PHPの設定を変えた場合でも apache の設定を変えた場合でも apache の再起動を行っていました
    • しかし、Nginx では PHP の設定を変えた場合には php-fpm を再起動しなければいけません
[ec2-user@hostname yum.repos.d]$ sudo yum install php php-fpm
[sudo] password for recouser:
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                         | 2.1 kB     00:00
amzn-updates/latest                                      | 2.3 kB     00:00
1022 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:7.0.8-1.el6.remi will be installed
--> Processing Dependency: php-common(x86-64) = 7.0.8-1.el6.remi for package: ph                                                                                                    p-7.0.8-1.el6.remi.x86_64
--> Processing Dependency: php-cli(x86-64) = 7.0.8-1.el6.remi for package: php-7                                                                                                    .0.8-1.el6.remi.x86_64
--> Processing Dependency: httpd-mmn = 20051115 for package: php-7.0.8-1.el6.rem                                                                                                    i.x86_64
--> Processing Dependency: httpd for package: php-7.0.8-1.el6.remi.x86_64
---> Package php-fpm.x86_64 0:7.0.8-1.el6.remi will be installed
--> Running transaction check
---> Package httpd.x86_64 0:2.2.31-1.7.amzn1 will be installed
--> Processing Dependency: httpd-tools = 2.2.31-1.7.amzn1 for package: httpd-2.2                                                                                                    .31-1.7.amzn1.x86_64
---> Package php-cli.x86_64 0:7.0.8-1.el6.remi will be installed
---> Package php-common.x86_64 0:7.0.8-1.el6.remi will be installed
--> Processing Dependency: php-json(x86-64) = 7.0.8-1.el6.remi for package: php-                                                                                                    common-7.0.8-1.el6.remi.x86_64
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.2.31-1.7.amzn1 will be installed
---> Package php-json.x86_64 0:7.0.8-1.el6.remi will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package           Arch         Version                  Repository        Size
================================================================================
Installing:
 php               x86_64       7.0.8-1.el6.remi         remi-php70       2.7 M
 php-fpm           x86_64       7.0.8-1.el6.remi         remi-php70       1.4 M
Installing for dependencies:
 httpd             x86_64       2.2.31-1.7.amzn1         amzn-main        1.2 M
 httpd-tools       x86_64       2.2.31-1.7.amzn1         amzn-main         79 k
 php-cli           x86_64       7.0.8-1.el6.remi         remi-php70       4.0 M
 php-common        x86_64       7.0.8-1.el6.remi         remi-php70       979 k
 php-json          x86_64       7.0.8-1.el6.remi         remi-php70        51 k

Transaction Summary
================================================================================
Install  2 Packages (+5 Dependent packages)

Total download size: 10 M
Installed size: 35 M
Is this ok [y/d/N]:y
Downloading packages:
(1/7): httpd-2.2.31-1.7.amzn1.x86_64.rpm                                                                                                                     | 1.2 MB     00:00
(2/7): httpd-tools-2.2.31-1.7.amzn1.x86_64.rpm                                                                                                               |  79 kB     00:00
(3/7): php-7.0.8-1.el6.remi.x86_64.rpm                                                                                                                       | 2.7 MB     01:33
(4/7): php-cli-7.0.8-1.el6.remi.x86_64.rpm                                                                                                                   | 4.0 MB     01:49
(5/7): php-common-7.0.8-1.el6.remi.x86_64.rpm                                                                                                                | 979 kB     00:29
(6/7): php-fpm-7.0.8-1.el6.remi.x86_64.rpm                                                                                                                   | 1.4 MB     00:44
(7/7): php-json-7.0.8-1.el6.remi.x86_64.rpm                                                                                                                  |  51 kB     00:01
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                38 kB/s |  10 MB  00:04:40
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction

WARNING : These php-* RPMs are not official Fedora / Red Hat build and
overrides the official ones. Don't file bugs on Fedora Project nor Red Hat.

Use dedicated forum at http://forum.remirepo.net/

  Installing : php-common-7.0.8-1.el6.remi.x86_64                                                                                                                               1/7
  Installing : php-json-7.0.8-1.el6.remi.x86_64                                                                                                                                 2/7
  Installing : php-cli-7.0.8-1.el6.remi.x86_64                                                                                                                                  3/7
  Installing : httpd-tools-2.2.31-1.7.amzn1.x86_64                                                                                                                              4/7
  Installing : httpd-2.2.31-1.7.amzn1.x86_64                                                                                                                                    5/7
  Installing : php-7.0.8-1.el6.remi.x86_64                                                                                                                                      6/7
  Installing : php-fpm-7.0.8-1.el6.remi.x86_64                                                                                                                                  7/7
warning: /etc/php-fpm.d/www.conf created as /etc/php-fpm.d/www.conf.rpmnew
  Verifying  : php-json-7.0.8-1.el6.remi.x86_64                                                                                                                                 1/7
  Verifying  : httpd-tools-2.2.31-1.7.amzn1.x86_64                                                                                                                              2/7
  Verifying  : php-fpm-7.0.8-1.el6.remi.x86_64                                                                                                                                  3/7
  Verifying  : php-cli-7.0.8-1.el6.remi.x86_64                                                                                                                                  4/7
  Verifying  : php-common-7.0.8-1.el6.remi.x86_64                                                                                                                               5/7
  Verifying  : php-7.0.8-1.el6.remi.x86_64                                                                                                                                      6/7
  Verifying  : httpd-2.2.31-1.7.amzn1.x86_64                                                                                                                                    7/7

Installed:
  php.x86_64 0:7.0.8-1.el6.remi                                                          php-fpm.x86_64 0:7.0.8-1.el6.remi

Dependency Installed:
  httpd.x86_64 0:2.2.31-1.7.amzn1 httpd-tools.x86_64 0:2.2.31-1.7.amzn1 php-cli.x86_64 0:7.0.8-1.el6.remi php-common.x86_64 0:7.0.8-1.el6.remi php-json.x86_64 0:7.0.8-1.el6.remi

Complete!
  • php のバージョンを確認します
[ec2-user@hostname yum.repos.d]$ php --version
PHP 7.0.8 (cli) (built: Jun 22 2016 12:06:38) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
  • php-fpm のバージョンも確認します
[ec2-user@hostname yum.repos.d]$ php-fpm --version
PHP 7.0.8 (fpm-fcgi) (built: Jun 22 2016 12:06:58)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

いずれも問題がなさそうです

  • php-fpm も自動起動するように設定しておきましょう
[ec2-user@hostname ~]$ sudo chkconfig php-fpm on
[sudo] password for recouser:
[ec2-user@hostname ~]$ chkconfig | grep php-fpm
php-fpm         0:off   1:off   2:on    3:on    4:on    5:on    6:off

PHP7 が Nginx 上で動くように設定する

  • まず、サンプルプログラムを DocumentRoot 以下に置きます
[ec2-user@hostname ~]$ cd /usr/share/nginx/html/
[ec2-user@hostname html]$ sudo echo "" > info.php
  • 次に、Nginx の設定ファイルを編集します
[ec2-user@hostname ~]$ sudoedit /etc/nginx/conf.d/default.conf
(PHP に関する記述の部分を次のように編集)
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
  • 最後に、Nginx と php-fpm を再起動し、設定を反映させます
[ec2-user@hostname ~]$ sudo service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[ec2-user@hostname ~]$ sudo service php-fpm restart
Stopping php-fpm:                                          [  OK  ]
Starting php-fpm:                                          [  OK  ]
  • この状態で、http://[自分のアドレス]/info.php にアクセスすることで、phpinfo() の実行結果が表示されるはずです
    • 中身を確認して、PHP7 + Nginx1.10 (正確には各ソフトウェアの最新版)が動いていれば無事にインストール成功です
アバター画像

江藤 光

まだまだ気持ちは新人です。

目次