concrete5をコア一つで複数サイト動かすよ。Nginxでね。

週刊concrete5内で宿題をいただいていたのでNginxで試してみましたよ。
宿題はタイトルの通り、concrete5をコアファイル1つ共有してマルチサイトを動かしてみましょうというもの。

 

Apacheだとできることは確認済みとのことですー。↓ブログ参照(英語だよ)
How to run multiple concrete5 installs on a single core (Apache vhost config)

 

前提条件

Nginxでconcrete5のサイトが1つ動いていることを前提としていますよー。
まずそれをという方はこちらの記事を参考にしてみるといいんじゃないかな (・∀・)

 

設定方法

1.ファイルのアップロード

まずは、普通にインストールするのと同様、最新版のファイルをサーバにアップしましょー。
concrete5日本語版ダウンロード

今回はドキュメントルートを次のようにします。

/var/www/html/hogehoge2

ここにconcrete5のファイルが入っている状態にしてね(・∀・)

 

2.シンボリックリンクの設定

アップしたら、コアファイルのディレクトリを削除。
必要なものまで消してしまわないように。

cd /var/www/html/hogehoge2
rm -fR concrete
rm -fR updates

消したら動いているconcrete5のコアファイルにシンボリックリンクを作成。(作業ディレクトリはさっきのままなー)
今回は動いている方のconcrete5のコアファイルが/var/www/html/hogehogeにあることにしています。

ln -s /var/www/html/hogehoge/concrete/ concrete
ln -s /var/www/html/hogehoge/updates/ updates

※パーミッションとかファイルのユーザ・グループはNginxが実行できるようにしておいてね。

 

Nginxの設定ファイルに追加

Nginx側の設定としては、通常通りサイトを追加すればよし。

server {
    server_name hogehoge2.com;
    root        /var/www/html/hogehoge2;
    index       index.php index.html;
 
    location / {
 
        if (-f $request_filename) {
            expires 14d;
            break;
        }
        if (!-e $request_filename) {
            rewrite ^(.+)$ /index.php/$1 last;
        }
    }
 
    location ~ ^(.+.php)(.*)$ {
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        }
}

追加したらNginxを再起動しておきましょう。

 

あとはインストール

これで hogehoge2.com にアクセスすればインストールができると思います。
データベース用意してインストールしてみましょ。

 

まとめ

とりあえず、自分の環境では動いているしブロックの追加とかもできてる。アプデとかはコア元のサイトで行えばすべてに適応されるんだろうなー。
一つのサーバで複数動かしたいと思ってる人は参考にしてみてねー。

管理もこの方が楽だ。。。
あと、ここが動かないとかうまく行かないみたいなのがあったら教えてくださいなー。

では、 ヾ(・д・。)マタネー♪

 

※いろいろ試したけど、割と簡単に出来たので本当にこれでいいのか不安だったりもする (-_-)