2016/01/23

EC2にNginxとPHP7で爆速環境を作る

ずっとApacheしか使ってなかったのですが、最近仕事でApacheが詰まりまくるので、前から気になっていたNginx(エンジンエックスって読むんだね)と、最近リリースされたPHP7が従来のPHPと比べて2倍ぐらい早いらしいので、Nginx+PHP7の環境をEC2(t2.micro)に構築してみる。

EC2のインスタンス作成とアップデート

AmazonLinuxのAIMでt2.microインスタンスを作成。
セキュリティグループでは、HTTPを追加する。

インスタンスが生成されたら、SSHでログインし、ミドルウェアパッケージの更新を行う。
$ sudo yum update -y


PHP7のインストール

yumのCentOS6用のリポジトリを追加し、PHP7をインストール。
$ sudo rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

$ sudo yum install --enablerepo=webtatic-testing php70w php70w-devel php70w-fpm php70w-mysql php70w-mb

Nginxをインストール

$ sudo yum install nginx

/etc/nginx/nginx.conf の以下の項目を修正
        #ドキュメントルートを変更
        root         /var/www/html;

        #indexの設定を追加
        location / {
                index index.html index.php;
        }

        #コメントアウトを外す,ディレクトリを修正
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
        }


サービスの設定

Nginxの場合、Apacheとは違い、Nginxを起動してもPHPが動くわけではない。
PHP-fpmのプロセスを起動する必要がある。

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

サーバが再起動した際に自動的にサービスが起動するようにする
$ sudo chkconfig nginx on
$ sudo chkconfig php-fpm on

phpinfoの内容を確認

vi /var/www/html/index.php
<?php
phpinfo();


本当に爆速なのか?

Apache Benchを使ってベンチーマークしてみる。

ベンチマーク用のプログラム(for文で1000回 echoしてみる)
<?php
for ( $i=0; $i < 1000; $i++ ) {
    echo "Hello world! \n";
}
どこか別のサーバからabコマンドで計測する
$ ab -n 10 -c 10 http://dev.digitra.net/bench.php
Requests per second:    688.47 [#/sec] (mean)
ちなみに同じt2.microのEC2でApache+PHP5.3で計測すると
Requests per second:    467.31 [#/sec] (mean)
おお、たしかに早い。もっとクライアント数を増やしてみるとおそらく更に差が顕著になるかと思われ。

参考にしたサイト

・Amazon EC2(Amazon Linux)にPHP7をyumでインストールし、Nginxで表示
http://owani.net/php/php7-nginx/285/

2 件のコメント:

  1. The injection unit is the primary part of of} the entry point for the fabric that must be melted and moulded. The barrel is positioned in the center with the hopper on one end and a mould cavity on the opposite. It is sandwich/interval CNC machining injection molding tools, which is suitable for producing two-component sandwich, interval, pattern and different merchandise.

    返信削除
  2. So it comes all the way down to} the space you will be printing in, your tolerance for noise and scent, and how many of} cats you've have}. Make positive the filament is the best diameter on your printer, and that the spool is the best dimension. In many cases, you should purchase|you ought to buy} or make a spool holder that may fit varied spool sizes. 3D printing gurus shall be intrigued by the Monoprice Mini Delta V2's use of the best snapback hats delta quite than Cartesian coordinate system, however beginners will simply enjoy its low value, ease of use, and speedy printing. Plus, the closed frame supplies security to users whereas prints are in progress.

    返信削除