AWS EC2(Amazon Linux)で、PHP7+NginXを環境を、yumを使ってサクッと実装


概要

システム構成

AWS EC2(t2.nano)
何もまだ手動でインストールされていない状態を前提とする。

インストール

$ sudo rpm -Uvh ftp://ftp.scientificlinux.org/linux/scientific/6.4/x86_64/updates/fastbugs/scl-utils-20120927-8.el6.x86_64.rpm
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ sudo yum install -y nginx php70 php70-php-fpm

各行の説明

scl-utilsをインストール。後述のremiレポジトリでインストールする時に必要。
CentOSならyumでインストール可能だが、amazon linuxではインストールできなかったため、
これは、rpmでインストールする。
今回は、scientific linux 6用のものをインストールした。

sudo rpm -Uvh ftp://ftp.scientificlinux.org/linux/scientific/6.4/x86_64/updates/fastbugs/scl-utils-20120927-8.el6.x86_64.rpm

remiのレポジトリをインストール。phpの新しいのが使える。

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

nginx, php7, php7のphp-fpmをインストール

sudo yum install -y --enablerepo=epel,remi,remi-php70 nginx php70 php70-php-fpm

Nginxの設定

確認用に。他のバージョンのPHPと変わらない。
今回は/var/www/というディレクトリを作成。
/var/www/index.phpにphpinfo()を記述した。

ユーザnginxに対して、/var/www/へ実行権限、
/var/www/index.phpにread権限をつけておくのを忘れずに。

その後、nginxの設定ファイルを変更する。

/etc/nginx/nginx.conf
server {
        listen      80;
        server_name localhost;
        root        /var/www/; #ドキュメントルート
        index       index.php index.html;
        location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_script_name;
            include fastcgi_params;
        }
    }

サービス起動

$ sudo service php70-php-fpm start
$ sudo service nginx start

これで、アクセスすると、phpinfo()の内容が表示されるはず。


あとは、お好きに料理すれば良いかと思います。

おまけ

yumでphp関連のものを追加でインストールする時は

yum list | grep php70

とかで引っかかったものの、それらしいのをインストールしてください。
(php70-php-mysqlとか)