この記事は最終更新日から1年以上が経過しています。
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 (正確には各ソフトウェアの最新版)が動いていれば無事にインストール成功です
この記事を書いた人
- まだまだ気持ちは新人です。
最近書いた記事
- 2018.03.23Windows のコンソールを使いやすくしよう
- 2018.02.23GitHubでPullRequestが出ると、Jenkinsでテストした後でEC2に自動デプロイする設定を行った
- 2018.02.21Jenkins にパラメータを渡して、Packer で引数付きビルドを行う
- 2018.01.10それ、キーボードマクロで出来ますよ(Emacs)