情弱エンジニアのなかのblog

一人前のエンジニアになる為のブログです

vagrantを利用したCakePHP2系の環境構築その2

もう一山あった環境構築について

vagrantで用意した環境でCakePHPを動かしていたら何かおかしい、CSSが読み込まれない、などがあったので 解決法を記載していきます。

vagrantにダウンロードしたCakePHPを入れる方法は以前書いた記事を参考にしてください。

vagrantを利用したCakePHP2系の環境構築 - 情弱エンジニアのなかのblog

ダウンロードしたものを/home/vagrantの中にフォルダを作ってビルドインサーバを立ち上げて実行する。

その時エラーが出て進まない、そもそもindexが読み込まれてなさそうだという方は参考にしてください。

1.apacheは使えるのか

2.CSSが読み込まれない

3.Security.salt, Security.cipherSeedを変更しなくては

4.データベースの諸々を記載する

5.デバッグキットを入れて完成!

1.apacheは使えるのか

まず最初にvagrantを利用するとapacheがうまく効いてないのではないかと思われます。 これはCakePHPを入れる階層を変えることで解決します。

具体的にはFTPの階層で/home/の一つ上の階層に行きそこから/var/www/html/の中にダウンロードしたCakePHPを入れます。

ブラウザで読み込むと色々とエラーは出るかもしれませんがとりあえずはapacheが繋がっていることが分かると思います。

2.CSSが読み込まれない

さてまずはCSSが読み込まれないことに関してですが、CUI

vim /etc/httpd/conf/httpd.conf

でファイルを開き

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

となっているところがあるのですが以下のように編集してください。 途中にコメントなどがあると思うのですが気になさらずに変えちゃってください。

<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride All
</Directory>

また読み込み専用となっているためふつうに:wq を押してもなんやかんや文句を言われ 書き込みが出来ないと思うので

:w !sudo tee %

:q!

で無理やりにでも書き込んでください。

3.Security.salt, Security.cipherSeedを変更しなくては

続いては

Notice (1024): Please change the value of 'Security.salt' in APP/Config/core.php to a salt value specific to your application. [CORE/Cake/Utility/Debugger.php, line 839]

Notice (1024): Please change the value of 'Security.cipherSeed' in APP/Config/core.php to a numeric (digits only) seed value specific to your application. [CORE/Cake/Utility/Debugger.php, line 843]
Your version of PHP is 5.2.8 or higher.

Security.salt , Security.cipherSeedの値を変えれば解決するので

app/Config/core.php の初期値を変更してください。

/**
 * A random string used in security hashing methods.
 */
    Configure::write('Security.salt', 'ランダムな文字列');

/**
 * A random numeric string (digits only) used to encrypt/decrypt strings.
 */
    Configure::write('Security.cipherSeed', 'ランダムな数値列');

こうすれば解決です。

4.データベースの諸々を記載する

Your database configuration file is NOT present.
Rename APP/Config/database.php.default to APP/Config/database.php

データベースの設定を色々と反映させる必要があるようですね

/app/Config/database.php.default をコピーして database.phpというファイルを作り中身を編集していきます。

69行目あたりの部分でデータベースの諸々の設定をしているところがあります。

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'ユーザー名',
    'password' => '設定したパスワード',
    'database' => 'データベース名',
    'prefix' => '',
    //'encoding' => 'utf8',
);

これで編集するのは残すところあと一つです。

5.デバッグキットを入れて完成!

最後は

DebugKit is not installed. It will help you inspect and debug different aspects of your application.
You can install it from github

デバッグキットを入れて下さと言われているので、CUIでapp/Pluginに移動してからCakePHP2のGitHubからデバッグキットをクローンする。

$ git clone https://github.com/cakephp/debug_kit -b 2.2

$ mv debug_kit DebugKit

これでデバッグキットが手に入るかと思うのですが何だかエラーでうまくデバッグキットを入れられないという場合は

GitHubのサイトからzipファイルでダウンロードしてapp/Pluginの中に解凍したフォルダを入れれば大丈夫です、ただしフォルダ名を「DebugKit」にすることをお忘れなく。

続いてapp/Config/bootstrap.phpのなかで

CakePlugin::load('DebugKit');

という一文を検索してコメントアウトを外してください。

最後にapp/Controller/AppController.php の中ので

class AppController extends Controller {
    public $components = array('DebugKit.Toolbar'); //追加
}

こう書けばオーケー!

エラーはすべて解決されるはずです。 以上になります。