CakePHPのアップロード

それでは、実際に使用するCakePHPをダウンロードし、Vagrant環境にアップしましょう。

CakePHPのダウンロード


CakePHPは下記のリンクよりダウンロードします。
いくつかバージョンがありますが、今回は「 2.9.5 」を使用します。
ここからダウンロード

クリックした次のページ、一番下にダウンロードリンクがあるので、そちらからダウンロードします。

ダウンロードしたzipファイルを解凍すると、「 cakephp-2.9.5 」というフォルダができると思います。
こちらをそのまま分かりやすい場所に移動させましょう。
次のタスク管理アプリを想定して、フォルダ名を cakephp-tasks とします。
それでは、このファイルをVagrant環境にFileZillaを使ってアップしましょう。
Vagrant環境の方のパスが/var/www/htmlになっていることを念のため確認しておいてください。
(CakePHPのファイルサイズが大きいため、初回は少し時間がかかると思います。)

それでは早速アクセス。。。といきたいところですが、CakePHPもあらかじめパーミッション関係を設定しておかなければなりません。
仮想環境の構築 その2でやったように、Vagrantにログインしてください。
(もちろんスーパーユーザーになった状態で。)

そして、下記のコマンドを実行します。
そのままコピペして利用してください。
(Cacheモジュールを活かすためのパーミッション設定です。詳しくは今後調べていきましょう。)

$ chown -R apache /var/www/html/cakephp-tasks/app/tmp

$ chmod -R 755 /var/www/html/cakephp-tasks/app/tmp

それでは、[ http://192.168.33.10/cakephp-tasks/ ] にアクセスしてみましょう。
ページが表示されたかと思いますが、こんな感じであれば、まだ修正する場所があります。
(ほとんどの方はこうなってしまうかと思います。)

実際はこういう画面にもっていきたいです。

mod_rewriteの設定


mod_rewriteとはURLの書き換えなどを行うApacheのモジュールの1つです。
普段はそこまで意識することもないのですが、CakePHPではこのモジュールが悪さをすることがあります。
実際、CakPHPの公式ドキュメントでもこの現象専用のページができているほど、既知の初期設定です。
URLリライティング

それではこちらの対応を行ってきましょう。

  1. /etc/httpd/conf/httpd.confというApacheの設定ファイルをviコマンドを用いて修正
  2. Webサーバーの再起動

以上の手順でいきます。

設定ファイルの書き換え


[root@localhost]# vi /etc/httpd/conf/httpd.conf

このコマンドを実行すると、非常に長いテキストが出てくるかと思います。
この中で、下記の場所を見つけてください。
似たような場所がいくつかあるので注意してください。
<Directory "/var/www/html">を探すのがポイントです。)

<Directory "/var/www/html">

#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
    Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None

#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all

</Directory>

上記の中で、AllowOverride NoneAllowOverride ALLに修正します。
この1部分だけで大丈夫なので、上書きして保存します。(:wq

Webサーバーの再起動


[root@localhost]# service httpd restart

以上を実行し、再度アクセスしてください。
すると、このようになんか良い感じの表示になったかと思います。

この画面は初期設定のステータスを表しています。

  • 緑の場所:設定OK
  • 赤の場所:設定できていないよ!
  • 黄の場所:初期設定では必須ではないけど、今後問題になるよ!

つまり、全て緑にすればOKなわけです。
そのため、これからその設定をしていきます。

セキュリティに関する設定


パスワードを入力してもらったとき、それが他の人が容易に推測できてしまったら問題ですよね?
CakePHPでは暗号化する機能が標準で備わっています。
(もちろん、その機能を使用するためには宣言が必要ですが。)

ある一部分を修正すれば、その設定ができてしまいます。
Sublime Textでcakephp-2.9.5/app/Config/core.phpの中のSecurity.saltSecurity.cipherSeedを変更します。(core.phpの220行目付近)

// 省略
/**
 * A random string used in security hashing methods.
 */
     // 「DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi」の部分を適当な40文字に変更
    Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');

/**
 * A random numeric string (digits only) used to encrypt/decrypt strings.
 */
    // 「76859309657453542496749683645」の部分を適当な数字30桁に変更
    Configure::write('Security.cipherSeed', '76859309657453542496749683645');

/**
// 省略

それではこのファイルをVagrant環境にアップしましょう。
Vagrant環境の/var/www/html/cakephp-tasks/app/Configを選択してください。
今後、ファイルを修正したらその都度Vagrant環境にアップしてもらいますが、アップする場所はcakephp-tasksから下で同じ場所にしてください。

これで再度アクセスすると、赤が消えていると思います。
つまり、正常に設定できたということですね!

データベースの作成と設定


データベースの作成


今後の研修ではデータベースを使用してコンテンツを作成していきます。
そのため、この段階でデータベースを作成して設定までしてしまいましょう。
今回の例は、次項で行う簡単にタスク管理アプリを作成してみようのデータベースを例にします。

データベースの作成はVagrant環境で行います。
rootユーザーでもvagrantユーザーでもかまいません)
仮想環境の構築 その2で設定したユーザー名とパスワードでログインします。

[vagrant@localhost ~]$ mysql -u root -p
Enter password:

ここで、下記のSQL文でデータベースを作成します。
(もちろん、この命令文の意味は以前の研修でやっているので、理解できているものとします。)

CREATE DATABASE cakephp_task;

データベースがちゃんとできているか確認しましょう。

# cakephp_taskがあればOK
SHOW DATABASES;

データベースの設定


それではソースコードに戻ります。
CakePHPではデータベースとの接続を設定ファイルに記述するだけで、勝手にPDOとして機能してくれます。
PHPカリキュラム中級でやったPDOでは、いちいちソースファイルに書いていましたね。

この設定をするために手順があります。

  1. app/Config/database.php.defaultをコピーする。
  2. 同じ場所に貼り付ける。
  3. 貼り付けたファイルをdatabase.phpにリネームする。
  4. database.phpをSublime Textで開く。

何やら英語でいろいろ記述がされていますが、下の方にコメントアウトされていない場所があるはずです。
こちらを下記のように変えてください。

class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
                // ホスト名やパスワードは人によって異なります。
        'host' => 'localhost',
        'login' => 'root',
        'password' => 'root',
        'database' => 'cakephp_task',
        'prefix' => '',
        //'encoding' => 'utf8',
    );
        // ここから下はテスト環境の設定です。
       // 研修ではテスト環境は作らないので、ここから下は修正しなくてもかまいません。
    public $test = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => 'root',
        'database' => '',
        'prefix' => '',
        //'encoding' => 'utf8',
    );
}

修正が完了したら、このファイルをVagrant環境のapp/Config以下にアップしましょう。
その後、再度Webページにアクセスすると、緑の場所が増えていると思います。
データベースへの接続もうまくいったようです。

なお、最後にひとつ黄色い場所が残っていますが(DebugKit〜)、これは任意の設定なのでとばします。

設定完了


これでCakePHPの設定は完了です。
この手順を踏んでいてうまくいかない人は内勤のバックエンドに聞いてください。

最後に次項にて、Vagrant環境の終了の仕方を説明します。

カテゴリー

アーカイブ

Close Bitnami banner
Bitnami