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ステップを行えばよい
- 設定ファイルにnginxのリポジトリについての記述を追加
- 電子署名を追加
設定ファイルにnginxのリポジトリについての記述を追加
- RHEL もしくは CentOS のバージョンを設定ファイルに書く必要がありました。
- Amazon Linux も元を正せば RHEL なので、互換となるバージョンがあるはずです
- こちらの記事のやり方に従って、まずは Amazon Linux のバージョンを見てみました
[ec2-user@hostname ~]$ cat /etc/system-release
Amazon Linux AMI release 2016.03
- よく分かりません…
- その後いろいろと調べたのですが、信頼できるソースの情報は見つかりませんでした…
- StackOverflow にあった How to install nginx 1.9.15 on amazon linux distoという質問に対して、 6系で指定すればいい と書かれていたのでそれに従うことにしました
[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
- こちらについては設定はされているのですが、有効にはなっておりません
- Amazon Linux 公式ドキュメントに従って、有効にします
[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 (正確には各ソフトウェアの最新版)が動いていれば無事にインストール成功です
江藤 光
まだまだ気持ちは新人です。