[CakePHP] CakePHPのインストールと各種設定

CakePHP2をLinuxサーバーにインストールする方法についてです。

CakePHPインストールの概要

CentOS:7.3
CakePHP:2.6.7
Apacheで以下のようなバーチャルホストが作られていることを前提にします。
http://www.example.com/test
http://www.example.com/sample

それぞれのドキュメントルートは
/var/www/html/test
/var/www/html/sample
となっています。

CakePHP2をダウンロード→解凍してそのままドキュメントルートにアップロードして使う方法もありますが、セキュリティ上良いとは言えません。今回はCakePHPのコアファイルを別の場所において、それぞれのバーチャルドメインのルートからアクセスして使う方法を記載します。

公式ページCakeBOokの応用インストールのページの一番下「複数のアプリケーションで CakePHP を共有する」のやり方です。
CakePHP 2x Cookbook 応用インストール

下記のように3つの部分に分かれます。
A:すべてのバーチャルホストで使うCakePHPのコアファイル(共通)
B:バーチャルドメインごとのCakePHPアプリケーションファイル
C:バーチャルドメインごとのCakePHP公開ファイル

Aの作業はCakePHPをインストールするときに1回だけ行えばOKです。BとCの作業はバーチャルドメインを増やすごとに発生します。
CakePHPの基本的な動きは
ブラウザで「http://www.example.com/sample」を入力→公開ディレクトリの index.phpからCakePHPのコアファイルとアプリケーションファイルにアクセス。
となっています。公開ディレクトリにあるのは 「index.php」「cssフォルダ」 「jsフォルダ」 程度になります。

CakePHP Coreファイルの準備

CakePHPをダウンロードして解凍して開くと以下のようなディレクトリ・ファイル構成になっています。
2017-03-28_16h23_28

lib というフォルダを開くと Cake というフォルダが出てきます。
Cakeの中身がCakePHPのCoreファイルになっています。下記のような構成です。これをこれから作るCakePHPのCore用のディレクトリにアップロードします。

2017-03-28_16h24_35

作ったディレクトリ「/usr/lib/Cake/」にファイルをアップロードします。
FTPでアップロードしたファイルを見ると以下のようになっています。
2017-03-28_16h38_48
Coreファイルの準備はこれだけです。

アプリケーションファイルの準備

CakePHPのアプリケーションを置くディレクトリを「/home/me/」とします。
まず「/home/me/」のディレクトリを作成します。バーチャルドメインごとにこの中にアプリケーションディレクトリを作っていきます。

今回は「http://www.example.com/sample」で実験を行うので、/home/me/の中に「sample」というアプリケーション用のディレクトリを作成します。
※ディレクトリの名前は任意で構いません。後に公開ディレクトリの index.php でこのディレクトリの名前を設定します。

CakePHPの「app」の中身を「/home/me/sample/」にFTPでアップロードします。
「app」の中身は以下のようになっています。
2017-03-28_16h56_26
これでアプリケーションの準備が終わりました。

公開ディレクトリの準備

CakePHPの「app」フォルダの中に「webroot」というフォルダがあります。これが公開用ファイルになっています。
2017-03-28_17h01_05
これを公開ディレクトリ「/var/www/html/sample」にFTPでアップロードします。(公開ディレクトリは自分のパスに合わせてください)
これで公開ディレクトリの準備が終わりました。

まだ、設定をしていないので、ブラウザで見ても何も表示されないか、エラーになります。

設定

公開フォルダにある「.htaccess」の中身を消去し、下記のものに入れ替えます。

.htaccess

公開フォルダにある「index.php」を変更します。

変更前のindex.php

変更点は3か所になります。
[注意点]
5行目:CakePHPのindex.phpファイルではディレクトリの区切りに「/」ではなく「DS」を使うという設定です。
パスを書くときは「/home/me/sample」ではなく「DS.’home’.DS.’me’.DS.’sample’」になります。

[変更点1]
19行目:アプリケーションのルートディレクトリの設定です。
今回は「/home/me」としたので、「 define(‘ROOT’, DS . ‘home’ . DS . ‘me’);」に変更します。

[変更点2]
27行目:アプリケーションディレクトリの設定です。
今回は「home/me/sample」としたので、「define(‘APP_DIR’, ‘sample’);」に変更します。
「/home/me」は変更点1で設定してあるので、ここでは「sample」というディレクトリだけを指定します。

[変更点3]
44行目:CakePHPのコアファイルのパスを指定。
先頭の「//」を外し、以下のように変更します。
「define(‘CAKE_CORE_INCLUDE_PATH’, DS . ‘usr’. DS . ‘lib’);」
※デフォルトでは「define(‘CAKE_CORE_INCLUDE_PATH’, ROOT . DS . ‘lib’);」とROOTとい文字が入っています。これは公開ディレクトリにコアファイルを置いた時の設定になるので、ROOTを「usr」に変えるようにしましょう。

変更後のindex.php

詳細設定

キャッシュディレクトリのパーミッション設定

上記の状態でブラウザでアクセスしてみて次のようなメッセージがでたら、順調に設定が進んでいます。
このメッセージはキャッシュで使うディレクトリのパーミッションを変更してくださいというものです。

ターミナルから以下コマンドを実行します。

再度ブラウザでアクセスしてみてください。以下のような画面が表示されます。
赤と黄色の帯の部分を対処して緑色に変えていきます。(設定がうまくいくと緑色になります)
2017-03-28_18h12_27

データベースの設定

アプリケーションフォルダの中のConfigディレクトリ内に「database.php.default」というファイルがあります。パスは「/home/me/sample/Config/database.php.default」です。
↓アプリケーションのConfigフォルダ内の構成
2017-03-28_17h38_21

これをダウンロードして内容を編集します。

ファイルの下のほうに上記のような記載があります。ここの public $default 部分がデータベースの設定になります。ウェブサーバーと出たベースサーバーが同じ場合は下記の3か所の設定をすればOKです。
「login」「password」「database」
この3つを変更したらファイル名を「database.php」に変更してアプリケーションのConfigフォルダにアップロードしましょう。
ブラウザでページを見たときに先ほどまで黄色い表示だった
Your database configuration file is NOT present.
Rename APP/Config/database.php.default to APP/Config/database.php
が緑に変更されていればデータベースの設定はOKです。

2017-03-28_18h13_51
このような画面になりました。

Securityの設定

後は赤い2つのNoticeが消えるようにします。ページの一番上に2つ出ています。
Notice (1024): Please change the value of ‘Security.salt’ in APP/Config/core.php to a salt value specific to your application.
これらは、アプリケーションのConfigディレクトリ内にあるcore.phpファイルを編集します。

2か所変更点があります。
4行目:「DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi」を半角ローマ字・半角数字を含む任意の文字列に変更
9行目:「76859309657453542496749683645」を任意の半角数字に変更。
変更後アプリケーションのCOnfigディレクトリ内にアップロードします。

2017-03-28_18h05_51

デバッグツールの「DebugKit」は使わない人もいるので、使うときに設定すればよいと思います。

エラー対処

ブラウザで開いたときにエラーが出る場合、何も表示されない場合などはapachのログを見てみます。
ターミナルから下記コマンドを実行

「Ctrl + G」で最終行を見ると、最新のアクセスに対するエラーが出ています。

「.htaccess」が使えないとCakePHPが動かないので、.htaccessが有効かどうかベーシック認証などを行ってみて確認します。



Author: webmaster