OctoberCMSの初期設定

OctoberCMSと言ったら、人気のPHPフレームワーク「Laravel」で動くCMSです。
正直ワードプレス派だった私は、わざわざ別のCMS使わなくてもいいじゃん?
って思っていたのですが、Laravelを勉強する意味で今回、導入してみました。


開発環境

CentOS Linux release 7.4.1708 (Core)
PHP 7.1.11
Apache/2.4.6
mysql Ver 14.14 Distrib 5.6.38
OctoberCMS v1.0.1

基本的に私はCUIでの開発はほぼ初心者で、正直黒い画面がまだ見慣れないが。
ある意味黒い画面の方がいろいろと融通が利くので、
大変便利なcomposerを使ってOctoberCMSのインストールを実施した。

この記事ではOctoberCMSの初期設定について記載していきます。
基本的には公式ドキュメントからの引用になります。


Apacheの設定

WebサーバーがApacheを実行している場合、いくつかの追加のシステム要件があります。

1)mod_rewriteをインストールする
httpd.confにLoadModule rewrite_module modules/mod_rewrite.so
という1行を追加する。
最初から書いてあればそのままで、コメントアウトされているならそれを外して有効にする。
(対外は/etc/httpd/conf/配下にhttpd.confが存在する)

2)AllowOverrideオプションをオンにする
こちらもhttpd.confのドキュメントルートの部分を確認。

<Directory "/var/www/october">
    AllowOverride All
    # Allow open access:
    Require all granted
</Directory>

私はこんな感じです。
場合によっては、 .htaccessファイルで次の行のコメントを解除する必要があります。

 ## ## You may need to uncomment the following line for some hosting environments, ## if you have installed to a subdirectory, enter the name here also. ## # RewriteBase / 

サブディレクトリにインストールした場合は、サブディレクトリの名前も追加する必要があります。

RewriteBase /var/www/october/mysubdirectory/

※一例です。
Apache以外のWebサーバー(Nginx、Lighttpd、IIS)ももちろん対応可能です。
公式ドキュメントに載っているので、見てみてください。


デバッグモード

デバッグ設定は、 config/app.php設定ファイルのdebugパラメータにあり、デフォルトで有効になっています。

この設定を有効にすると、他のデバッグ機能と一緒に発生したときの詳細なエラーメッセージが表示されます。 開発中には便利ですが、実稼働環境で使用する場合は常にデバッグモードを無効にする必要があります。 これにより、機密情報が潜在的にエンドユーザに表示されることを防ぎます。

デバッグモードでは、有効にすると次の機能が使用されます。

1)詳細なエラーページが表示されます。
2)失敗したユーザー認証は、特定の理由を示します。
3)結合されたアセットはデフォルトでは縮小されません。
4)セーフモードはデフォルトでは無効になっています。


セーフモード

セーフモードの設定は、 config/cms.php設定ファイルのenableSafeModeパラメータで有効にできます。 デフォルト値は無効(null)です。

セーフモードを有効にすると、セキュリティ上の理由からCMSテンプレートでPHPコードセクションが無効になります。nullに設定すると、デバッグモードが無効のときにセーフモードがオンになります。


CSRF保護

クロスサイトリクエスト偽造からアプリケーションを簡単に保護できます。
まずランダムなトークンがユーザーのセッションに配置されます。
次に開始フォームタグが使用されると、トークンはページに追加され各要求とともに返されます。

CSRF保護はデフォルトで無効になっていますが、config/cms.php設定ファイルのenableCsrfProtectionパラメータで有効にすることができます。


環境設定

OctoberCMSが実行されている環境と、異なる設定を反映することができるのがAPP_ENVです。これは、デフォルトでAPP_ENV設定されているAPP_ENV環境変数を設定することで可能になります。この値を変更する方法は2つあります。

1)WebサーバーでAPP_ENV値を直接設定
まずひとつ目の方法です。
Apacheでは.htaccessまたはhttpd.configファイルに以下を追記します。

SetEnv APP_ENV "dev"

2)ルートディレクトリに.envファイルを作成
ふたつめの方法は、OctoberCMSがインストールされているルートディレクトリに、.envファイルを作成します。

vim .env

vimコマンドでファイルを作成し以下の一行を追加します。

APP_ENV=dev

上記2つの例では、環境は新しい値「dev」に設定されます。
構成ファイルは、config/devパスに作成でき、アプリケーションの基本構成を上書きします。

例えば、dev環境のみに異なるSQLiteデータベースを使用するには、config/dev/database.phpというファイルを作成します。

<?php return [ 'connections' => [ 'sqlite' => [ 'host' => 'localhost', 'port' => '', 'database' => 'database', 'username' => 'root', 'password' => '' ] ] ];

いちいちWebサーバーの設定を変更する必要が無いので便利ですね!


高度な設定

パブリックフォルダの使用
プロダクション環境でのセキュリティ強化のために、パブリックファイルのみにアクセスできるようにpublic/folderを使用するようにWebサーバーを構成することができます。 最初に、 october:mirrorコマンドを使用してパブリックフォルダを生成する必要があります。

php artisan october:mirror public/

これにより、プロジェクトのベースディレクトリにpublic/という新しいディレクトリが作成されます。ここから、この新しいパスをホームディレクトリ(wwwroot)として使用するようにWebサーバーの設定を変更する必要があります。

※上記のコマンドは、システム管理者またはsudoの権限で実行する必要があります。
また、システムのアップデートが完了するたびに、または新しいプラグインがインストールされたときに実行する必要があります。


拡張環境設定

最後になりますが、ぶっちゃけこの設定だけやっておけば必要な.envファイルを勝手に作ってくれます。
環境に共通の値を置く方法です。 DotEnv構文を使用してconfigにアクセスします。
october:envコマンドを実行して、共通の設定値を環境に移動します。

php artisan october:env

これにより、プロジェクトのルートディレクトリに.envファイルが作成され、envヘルパー機能を使用するように構成ファイルが変更されます。
最初の引数は環境内で見つかったキー名を含み、2番目の引数はオプションのデフォルト値を含みます。

'debug' => env('APP_DEBUG', true),

.envファイルは、アプリケーションを使用する開発者またはサーバーごとに異なる環境設定が必要な場合があるため、アプリケーションのソース管理にコミットしないようにしましょう。

これでOctoberCMSを使うスタートラインに立てました!

Leave a Reply

Your email address will not be published. Required fields are marked *

three × 2 =