概要
独自実装は全くしてませんが、とりあえずデプロイしてみます。
CMSなので、これだけで使えます。
OctoberCMSのドキュメントでは、まっさらなOctoberCMSをサーバなどに直接インストールする方法を説明しています。独自開発を行わずにCMSとしてだけ使用するならば、これでいいですが、OctoberCMSを選択する人ならば、手を加えてデプロイすると思うので、今回はそのメモ。
前提
- デプロイ先はUbuntu 14
- デプロイ先のサーバにsshログインできる
- githubなどにソースコードが上がっている
- プライベートレポジトリにアップした場合は、アクセス権がありデプロイ先にsshキーを適宜インストール済み
- webサーバが動いていてPHPが使える
- デプロイ先にcomposerがインストールされている
また、管理画面はアクセス制限を掛ける必要があるので、SSL(TSL)で通信を暗号化した方がいいですね。こちらに詳細書きました→無料でHTTPS対応!Let’s EncryptでSSL/TSLに対応する
あるいはAWSならばAWS Certificate Managerも使えるかもしれません。
手順概要
-
git cloneでソースコードをダウンロード
-
ソースコードの配置とパーミッションの設定
-
composer installで依存パッケージのインストール
-
本番用の.envを配置する
-
データベースのマイグレーションを実施する
-
ソースコードをダウンロードする
普通にgit cloneします。
$ git clone git@github.com:hogehoge/example-project.git
プライベートレポジトリの場合は、鍵の設定が必要になるので、少しだけ触れておきます。
まず、GitHubにsshの公開鍵をアップしておきます。
で、対応する秘密鍵をデプロイ先の~/.ssh/
に配置します。ここではファイル名をid_rsa_hoge
とします。
Host github.com:hogehoge
IdentityFile ~/.ssh/id_rsa_hoge
User git
Port 22
これだけだと、まだgit clone
すると"Permission denied"と言われるかもしれません。
そしたら、下記のようにします。
$ eval `ssh-agent`
$ ssh-add ~/.ssh/id_rsa_hoge
これで、上記のgit clone
コマンドでソースコードがダウンロードできると思います。
- ソースコードの配置とパーミッションの設定
Webサーバにはこのアプリしか配置しないことを前提に説明します(Apacheのvhostなどを設定しないということ)。
プロジェクトディレクトリを/var/www/html
ディレクトリとして配置します。
$ sudo mv /var/www/html /var/www/html_backup
$ sudo mv example-project /var/www/html
Webサーバがソースコードを読み込めてログなどを書き込めるようにパーミッションを変更します。
$ cd /var/www/html
$ sudo chmod a+r *
$ sudo chmod -R a+w storage themes
- 依存パッケージのインストール
サーバにcomposerが入ってなければ入れます(参考)
cloneしたディレクトリで書きを実行します。
$ composer install
これで、composer.lockに記録されたパッケージ類がインストールされます。つまり、ローカルでインストールされているパッケージと同じものが入ります。
ここでも、composerでOctoberCMSを入れた恩恵に預かれますね。
- 本番用の.envを配置
「OctoberCMS 環境別の設定」で作成した本番用の.env
を配置します。別名でソースツリーにコミットしていおいたファイルを、コピーして.env
にファイル名を変更するだけです。
- データベースのマイグレーションを実施
自分のコードをデプロする場合、OctoberCMSのインストーラを使用しません。インストーラはCMSで最低限必要なDBテーブルを作成してくれますが、今回は自分で実行します。簡単なコマンドで一発です。
$ php artisan october:up
以上で、デプロイは完了です。管理画面にアクセスして見てください。
管理画面のパスは/backend
なので、こんな↓感じです。
http://your-domain.com/backend/
デフォルトの管理者ID/パスワードは、admin/adminだったと思います。