この記事は a-blog cms Advent Calendar 2014 の 5日目の内容です。
2014年の Advent Calendar に、何気に4種類もぽちっとしてしまったうちの2つ目、今回は a-blog cms についてを書こうと思います。
何を書こうか迷ったのですが、最近はサーバー周りの設定までも自分でやることが多くなったこともあり、apache から nginx にいろいろと移行していたりします。
そんなこともあるので、 a-blog cms を nginx と PHP-FPM で動かす設定についてを書いておこうと思います。
本題に入る前に余談:北海道と a-blog cms
北海道の a-blog cms が出来る人!といったら ウェビンさん だったんですが、愛知の星になってまったらしく。
そんなこともあり、先日、アップルップルの山本さんが
「北海道で a-blog cms を広めてくれる エバンジェリスト がいない! 困ってます。」
と発言しておられました。
エバンジェリストは Rokkaku さんが超反応していたので、きっと北海道の期待の新星として活躍してくれることでしょう。
私も今後も微力ながら SaCSS などを通してでもお力になれたらと思います。
ちなみに 2014 年は SaCSS vol.56 にて山本さんが登壇してくださっております。
SaCSS vol.56 「a-blog cms & FONTPLUS」 参加者募集開始!
さて、横道にそれましたが本題へ。
Nginx と PHP-FPM で動かす
いろんなエントリーを漁っても、 Nginx で動かす的なのが見つからなかったのですが、自分でいろいろとやってみようと諦めかけた時に、これまた北海道から東京へと行ってしまった井内さんのエントリーを発見。
Oneライセンスと合わせて完全無料! a-blog cmsをdotCloudで動かしてみた - エンジニアブログ
なるほど、こんくらいで行けるのか!
さくらのVPS を利用しているのですが、そこにいれている Nginx と PHP-FPM の設定を入れます。
尚、 Nginx と PHP-FPM の説明は省略します。・・・が、以下 PHP-FPM の入れ方参考として。
さくらVPS 1GにNginxとPHP-FPMをいれてWordPressブログを作ったメモ | ninxit.blog
設定で、 listen = 127.0.0.1:xxx
として設定。xxx はポートを指定。仮に 8080 としておきます。
Nginx の設定
Nginx では、phpファイルを PHP-FPM で動かす指定と、.htaccessの設定をNginx用に書き換えたものを指定します。
自分の環境では以下の指定で動きました。
a-blog-nginx.conf の設定
a-blog-nginx.conf というファイルを作成、それを読み込まれるようにしておきます
server {
listen :80;
server_name domain.com;
root /var/www/xxx/a-blog-cms;
index index.html index.php;
charset utf-8;
access_log /var/log/a-blog_access.log;
error_log /var/log/a-blog_error.log;
location / {
if (-e $request_filename) { break; }
rewrite (.*(^|/)[^\./]+)$ $1/ permanent;
rewrite ((\.(html|htm|php|xml|txt|js|json|css|yaml|csv))|/)$ /index.php last;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass 127.0.0.1:8080;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PAHT_INFO $fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
}
}
location / { 〜 }
のは井内さんのを参考にそのまま利用させていただきました。
fastcgi_pass
は PHP-FPM での指定を。
ここまで設定ができたらあとは ionCubeローダーの設定で終わりです。
php.ini の設定
php.ini で、ionCubeローダーの設定と、タイムゾーンの設定をいれておきます。
PHP暗号化ソフトウェア : ionCube PHP Encoder : ローダーのダウンロード | アシアル株式会社
php.ini の設定
date.timezone = "Asia/Tokyo"
zend_extension = /www/xxx/ioncube/ioncube_loader_lin_5.4.so
上記の '/www/xxx/ioncube/ioncube_loader_lin_5.4.so' の箇所は実際にファイルを置いた場所を指定してください。
.htaccess ファイルは必要?
インストールの最初だけ、インストールを進めるために .htaccess のファイルが必要らしく、ない状態だとエラーの表示が!!!
.htaccess
を入れたところ無事通過
順調にインストールが進みます
インストール完了後のログイン
ここまでは location / { 〜 }
のあたりの指定がはいっていなくも、PHPとionCubeローダーの設定がうまくいっていたら進んでくれるという。しかし、ログインをしようとすると、location / { 〜 }
で入れた指定が入っていないとエラーになっていしまいます。
指定が無事に動いていたらログイン画面が表示されてくれます。
ということで、 Nginx + PHP-FPM の環境でも a-blog cms を動作させることができました。
余談:よく見ると
・・・(´ ºムº `)が!!!!
ガ~ン。