ずっと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/
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.
返信削除