a-blog cms を Nginx と PHP-FPM で動かしてみる

このエントリーをはてなブックマークに追加

この記事は 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 を動作させることができました。

余談:よく見ると

・・・(´ ºムº `)が!!!!

ガ~ン。