2014年1月20日月曜日

CakePHPをUbuntuにインストールする


UbuntuにCakePHPの実行環境を構築してみる。
作業環境は、Ubuntu 12.04.3 LTSで実施する。

まずインストールするもの

CakePHPをインストールする前に下記のものをインストールする必要がある。
  • php5
  • apache2
  • mysql-server
インストールなど色々設定は必要だが、ここでは省略。
下記のサイトがWebサーバの構築に役立つので参考にしてほしい。
Ubuntu 12.04 LTS - WEBサーバー - Apache2 インストール/設定 : Server World

CakePHPをダウンロード

CakePHPを公式サイトからダウンロードする。
CakePHP: the rapid development php framework. Pages
サイト上部の「Downloads」→「Releases」からGitHubへ移動し、バージョン2.4.4のファイル「cakephp-2.4.4.tar.gz」をダウンロードする。

cakePHPをインストール

ダウンロードしたファイルをホームディレクトリに格納する。
(以降、ホームディレクトリ「http://localhost/」で表示されるファイルが格納される場所が「/var/www/」である前提)
解凍した状態だとディレクトリが「cakephp-2.4.4」なので、作成したいWebアプリの名称に変更する。
(以降、Webアプリ名称は「SampleApl」である前提)
 /var/www/SampleApl/

CakePHP格納後、
 http://localhost/SampleApl/
にアクセスすると、下記の図のように表示される。
20130119_01
これでCakePHPへのアクセスは成功。
色々WarningやらErrorやらが出ていたりグラフィカルでないのは、これから設定を変更して解消していく。

設定変更

mod-rewriteを有効化

mod-rewriteとは、アクセスするURLを正規表現で書き換えたりすることができるApacheのモジュール。リダイレクト処理を行ったり、動的ページを静的ページに見せたりできる。
CakePHPでは、mod-rewriteが有効出ないとCSSが機能せず、サイトデザインが崩れてしまう。
これを有効にするためには、まず、下記のコマンドを実行する。
 % a2enmod rewrite
さらに、「.htaccess」が有効になっていなければ、有効にするため、下記のファイルを編集する。
 /etc/apache2/sites-enabled/000-default
ファイル内のホームディレクトリを指すパスの設定を書き換える。
<Directory /var/www/>
        Options FollowSymLinks ExecCGI
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>
そして、apacheを再起動する。
 % /etc/init.d/apache2 restart

tmpディレクトリのパーミッション変更

CakePHPでは、セッションのキャッシュなどを保存するために、tmpディレクトリに書き込み、実行権限を与える。
 /var/www/SampleApl/app/tmp
上記のディレクトリに対し、書き込み、実行権限を与えるコマンドを実行する。
 % chmod -R 777 /var/www/SampleApl/app/tmp

この時点で
 http://localhost/SampleApl/
にアクセスすると、下記の図のように表示される。
20130119_02
まだエラーが存在している。(上記画像の赤い部分)

セキュリティ設定

Security.saltとSecurity.cipherSeedのエラーは、ハッシュ化や暗号化の際に使用する文字列や数値がデフォルト値のままであるために発生している。
エラー内容に記されているファイルを変更する。
 /var/www/SampleApl/app/Config/core.php
225行目と230行目をそれぞれ適当な文字列、数値に置き換える。
/**
* A random string used in security hashing methods.
*/
        Configure::write('Security.salt', 40文字程度の文字列を設定する);
/**
* A random numeric string (digits only) used to encrypt/decrypt strings.
*/
        Configure::write('Security.cipherSeed', 30文字程度の数値を設定する);

変更後、下記の図ようになる。
20130119_03

これで、CakePHPのインストールが完了した。

0 件のコメント:

コメントを投稿