1.AWSにmicroインスタンス作成
・Amazon Linux AMI 2014.03 64bitで構築。
・構築後に最新版に更新
ec2-userでログイン後 # sudo -s # yum update
2.nginxのインストール
・http://d.hatena.ne.jp/january/20130819/1376866225、こちらを参考にインストール。
# yum install nginx
インストール後起動。
# nginx
psで実行結果を確認
# ps -ef : root 5569 1 0 18:04 ? 00:00:00 nginx: master process nginx nginx 5570 5569 0 18:04 ? 00:00:00 nginx: worker process :
サービス登録
# chkconfig --level 35 nginx on
3.mysqlのインストール
yumでインストール
# yum install mysql-server
起動
# service mysqld start
http://nomnel.net/blog/install-mysql/、こちら参考にrootパスワード等設定。
# mysql_secure_installation
サービス登録
# chkconfig --level 35 mysqld on
4.php+php-fpmのインストール
・PHPは全く入っていない為、諸々インストール。
# yum install php # yum install php-xml # yum install php-gd # yum install php-fpm # yum install php-mysql # yum install php-mbstring
php-fpmの設定を変更
# cd /etc/php-fpm.d オリジナルのバックアップ # cp www.conf www.conf.org viで開き、listenを/var/run/php-fpm/php-fpm.sockに。user/groupをapacheからnginxに変更。 # diff www.conf www.conf.org 12c12 < listen = /var/run/php-fpm/php-fpm.sock --- > listen = 127.0.0.1:9000 39c39 < user = nginx --- > user = apache 41c41 < group = nginx --- > group = apache
起動
# service php-fpm start
サービス登録
# chkconfig --level 35 php-fpm on
5.コンテンツ更新用ユーザ設定
ユーザ作成
# useradd -g nginx webmaster
sshのauthorized_keysの設定
rootから # su - webmaster # mkdir .ssh # chmod 700 .ssh # cd .ssh # touch authorized_keys # chmod 600 authorized_keys authorized_keys には自分のPCに作ってあるid_rsa.pubの中身をコピー。
6.ドキュメントルートの作成
複数サイトを配置することを想定して、ドキュメントルートを集めておく場所を決める($document_roots)。
# cd $document_roots # mkdir hogehoge # chown webmaster:nginx hogehoge # chmod 775 hogehoge # cd hogehoge # su webmaster (ドキュメントルート用) # mkdir htdocs (ログ用) # mkdir logs
7.nginxでバーチャルホストの設定
PHPのセッションを書き込む/var/lib/php/session/のパーミッションが、root.apacheになっているので、変更。
# chown -R root.nginx /var/lib/php/session/
バーチャルホストの設定ファイル、/etc/nginx/conf.d/hogehoge.confを作成。
中身はhttp://blog.uozajidai.net/archives/1053、こちらを参考にさせていただきました。
※ client_max_body_size 20M; は、数MBあるテーマファイルをアップロードする際に必要っぽく、、スケルトンから組上げる方は必要ないかも。
※ $document_rootsは実パスに書き換えてください。 server { listen 80; server_name hogehoge; charset utf-8; root $document_roots/hogehoge/htdocs/app/webroot/; index index.php index.html index.htm; access_log $document_roots/hogehoge/logs/access.log; error_log $document_roots/hogehoge/logs/error.log; location = /favicon.ico { access_log off; log_not_found off; } location / { client_max_body_size 20M; if (-f $request_filename) { break; } if (-d $request_filename) { break; } rewrite ^(.+)$ /index.php?q=$1 last; } # redirect server error pages to the static page /50x.html # location ~ .*\.php$ { client_max_body_size 20M; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_roots/hogehoge/htdocs/app/webroot$fastcgi_script_name; fastcgi_intercept_errors on; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } }
8.BaserCMSのインストール
$document_roots/hogehoge/htdocsにBaserCMSのzipを解凍。
ディレクトリのアクセス権限を変更 cd $document_roots/hogehoge/htdocs/app chmod 775 tmp
このままアクセスすると….大量のエラーを排出しつつ正常な画面が表示されません。。。
app/tmp/logs/error.logを見るとindex.phpが2重で書かれるという不思議な現象がおこっています。
: Request URL: /index.php/index.php/?q=%2Findex.php%2F :
調べると対策を記述してくださっている方が!大感謝。
“baserCMS+nginxのその後”、こちらを参考にapp/Config/core.phpにある、App.baseUrlの設定を変更。
Configure::write('App.baseUrl', '');
これで正常にBaserCMSのインストール画面が表示。
DataBaseの作成
# mysql -u root -p (設定したパスワードでログイン) mysql> create database hogedb default charset utf8; mysql> grant all on hogedb.* to hogedb_user@localhost IDENTIFIED BY 'hogehoge';
作成したDataBaseを利用して、インストール。
なんとか。。。完了。まだ、何もいじってないので実際の速度等+チューニングは継続してやってみよう。。。
とはいえ、通常のapache/phpよりも体感早いきがするのは、、欲目。。。かなぁ。