fc2ブログ

CakePHP のファイルの置き場所

ようやく、CakePHP を使ったDBへの接続ができるようになりました

今回、基礎から学ぶ facebookアプリ開発
を購入し、アプリ作成の勉強をしていたのですが
CakePHP の導入でかなり手間をとってしまいました

ちなみに、画像入りだと



CakePHP を使って今回サンプルを実行したのですが
ファイルの置き場所について載っていなかったので
ちょっとメモしておきます

ubuntu の場合になりますが
cakephp 1.3系をダウンロードして
unzip コマンドで解凍
unzip cakephp-cakephp-1.3.14-0-g5ac77c2.zip

次に、解凍したディレクトリを
mv コマンドを使って
cakephp に名前を変更します
mv cakephp-cakephp-822a1e0 cakephp

次に、ドキュメントルートへ このディレクトリを移動
sudo cp -rp cakephp /var/www/

vim cakephp/app/config/core.php
で、
Security.salt の文字列を変更
Security.ciperSeed も 文字列を変更します


cp database.php.default database.php
で設定ファイルを作成し
vim database.php
CakePHP DB接続情報の設定
のときと同じように再度設定します

chmod -R 777 /var/www/cakephp/app/tmp/
でパーミッションを変更すれば
無事に使えるようになります

続いて、cakephp のファイルの置き場についてです

/var/www/cakephp/app/controller/

shoots_controller.php
を配置

mkdir /var/www/cakephp/app/view/shoots
でディレクトリ作成して
ここへ
savescore.ctp
を配置します

これで、ゲームを開始
スコアが新記録を更新すると、DBへ反映され、facebook のウォールへ
投稿しますか?
と聞かれます
ここで投稿すると、自分のウォールに投稿されるようになります

動作確認として
自分のfacebook のウォールで投稿メッセージの確認
そして
phpMyAdmin へログインして
DBの更新時間が変更されていれば成功です

今回は不本意ながら
ver 1.3x 系で行いました
スキルを上げ、ver2.0系でも再現できるようにしてみようと思います

サーバー構築やプログラミングを勉強する場合
最初のうちは再現性を保つため、書籍や資料などと同じ環境を
構築することをおすすめします

私自信、過去にかなりこれではまりましたので....
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

cakePHP 1.x と 2.x の違いについて

facebook アプリを作成するため、
CakePHP と enchant.js の勉強をしています

今日は、CakePHP についてはまったので
その解決のためのメモです

書籍によれば、CakePHP ver 1.3 を使っていたのですが
最新版になれたほうがいいかな? と思って 2.0 を使いました

そもそも、これがはまった原因ですが...

DB接続する処理がまったく行われていないため
検索してみた結果

どうやら ver 1.x 系と ver 2.x 系では異なる点が多くあるようです

参考サイトは
cakephpの2.0と1.3系違いを比較してみた

cakephp1.x系で作られたWebサイトをcakephp2.0系へ移植する際のまとめ
です


キャメル記法を使うこと
(最初の文字を大文字にすること、アンダースコアの直後1文字を大文字にすること)

e()関数が使えなくなり
echo関数を使うことになる

ほかにもいろいろありますが
変更点が多く、対処できないため、一度 ver 1.x 系に戻そうと思います

テーマ : プログラミング
ジャンル : コンピュータ

CakePHP DB接続情報の設定

DBを phpMyAdmin で作成したので
次に、DBへの接続情報の設定を行います
(本来は、SQLコマンドで作成できれば、のちのちsqlファイルから
コマンドで作成できるので、とても役立つのですが、これは今後の課題です)

とりあえず、それは置いておいて
必要なファイルを作成します

DBへの接続情報を設定するには
database.php に記述するのですが
初期の状態ではこのファイルは存在しません

そこで、database.php.default をコピーし
このファイルを作成する必要があります

cd /var/www/cakephp/app/Config/
で移動して

cp database.php.default database.php
でファイルを作成します

次に。vim database.php でファイルを開き


class DATABASE_CONFIG {

public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
//'encoding' => 'utf8',
);

public $test = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'prefix' => '',
//'encoding' => 'utf8',


の部分を変更します

なお、パラメータについては
初心者のためのCakePHP2.0 プログラミング入門:

を参考にさせていただきました

ちなみに、変更するのは default 項目のみ


class DATABASE_CONFIG {

public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'myapps_user',
'password' => 'phpMyAdminで決めたパスワード',
'database' => 'myapps',
'prefix' => '',
'encoding' => 'utf8',
);

というように変更します

変更したら、保存しファイルを閉じます

この状態でブラウザでアクセスしても
Your tmp directory is NOT writable.
となっているので、

次に
Your tmp directory is NOT writable.
の対処を行います

このメッセージは
tmp ディレクトリに書き込み権限がないことが原因です

試しに ls コマンドでパーミッションを調べてみます

ll ../../app/
合計 64
drwxrwxr-x 14 snowpool snowpool 4096 2012-02-05 16:03 ./
drwxrwxr-x 6 snowpool snowpool 4096 2012-02-05 16:03 ../
-rw-rw-r-- 1 snowpool snowpool 141 2012-02-05 16:03 .htaccess
drwxrwxr-x 3 snowpool snowpool 4096 2012-02-24 22:58 Config/
drwxrwxr-x 4 snowpool snowpool 4096 2012-02-05 16:03 Console/
drwxrwxr-x 3 snowpool snowpool 4096 2012-02-05 16:03 Controller/
drwxrwxr-x 2 snowpool snowpool 4096 2012-02-05 16:03 Lib/
drwxrwxr-x 3 snowpool snowpool 4096 2012-02-05 16:03 Locale/
drwxrwxr-x 4 snowpool snowpool 4096 2012-02-05 16:03 Model/
drwxrwxr-x 2 snowpool snowpool 4096 2012-02-05 16:03 Plugin/
drwxrwxr-x 4 snowpool snowpool 4096 2012-02-05 16:03 Test/
drwxrwxr-x 2 snowpool snowpool 4096 2012-02-05 16:03 Vendor/
drwxrwxr-x 9 snowpool snowpool 4096 2012-02-05 16:03 View/
-rw-rw-r-- 1 snowpool snowpool 642 2012-02-05 16:03 index.php
drwxrwxr-x 6 snowpool snowpool 4096 2012-02-05 16:03 tmp/
drwxrwxr-x 6 snowpool snowpool 4096 2012-02-05 16:03 webroot/

みてのとおり、wの権限がないため、書き込みできません

このため、この権限を変更します


chmod -R 777 /var/www/cakephp/app/tmp/

これで、権限が変更され、再度
http://localhost/cakephp
へアクセスすると、すべてオールグリーンとなり
使用可能となります

テーマ : プログラミング
ジャンル : コンピュータ

CakePHP DB設定

引き続き、CakePHP の設定となります


CakePHP のDB設定を行います

書籍を見ると、phpMyAdmin を使っているので
ここは同じように行います

ちなみに、参考書籍は基礎から学ぶ facebookアプリ開発




書籍ではWindows での XAMPP ですが
私の環境は ubuntu なので

Ubuntu(11.04)でLAMPP(Linux Apache MySQL PHP PHPMyAdmin)を構築!インストールと設定


を参考に設定します

いくつか必要なものもあるので

apt-get install php5-gd phpmyadmin
でインストールしました

インストールしている途中で MySQL の rootパスワードを聞かれるので
入力します
失敗しても、再度設定するか聞かれるので
とくに問題にはならないと思います

続いて
phpMyAdmin へアクセスします

http://localhost/phpmyadmin
でアクセスし

初期状態なら
ユーザ名 root
パスワード 設定したパスワード

としログインします

ログインしたら、データベースタグをクリックし
新規データーベース作成のところで
myapps と入力し作成をクリックします

次に、特権タブをクリックし。新しいユーザを追加する をクリック

ユーザ名 myapps_user
パスワード 任意のパスワード
で設定

上に sql コマンドがでるけど
たぶんこれは
実行結果だと思う


CREATE USER 'myapps_user'@'%' IDENTIFIED BY '***';

GRANT USAGE ON * . * TO 'myapps_user'@'%' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

GRANT ALL PRIVILEGES ON `myapps` . * TO 'myapps_user'@'%';

次は作成したDBを設定ファイルへ書き込みを行います

テーマ : プログラミング
ジャンル : コンピュータ

CakePHP 初期設定

CakePHP を使うため、初期設定を行います


download 完了後、
unzip コマンドで解凍
unzip cakephp-cakephp-2.0.6-0-g5886b25.zip

次にディレクトリの名前が非常に長いため
mv cakephp-cakephp-4ed3d35 cakephp
で名前変更

このままでは使えないため、初期設定を行います
参考サイトは
cakePHPの初期設定【オールグリーンにする方法】
http://www.nandani.sakura.ne.jp/web_all/php/1555/

そして
CakePHP インストール
http://www.kaasan.info/archives/134

設定ファイルを変更し。セキュリティを固めないとダメみたいなので
vim cakephp/app/Config/core.php

/.salt で検索し
187行めの

Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0 FgaC9mi');
の部分で 英数字の部分
DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi
を変更します
どれか1文字変更でもOK

また
Configure::write('Security.cipherSeed', '76859309657453542496749683645');

76859309657453542496749683645
の数字を変更し保存します

ここまで完了したら
この cakephp ディレクトリを
web サーバーのルート直下にアップロードします
とはいっても、ファイルコピーするだけですが

cp -rp cakephp /var/www/

この状態でアクセスすると
URL rewriting is not properly configured on your server.

と真っ赤に表示されている

対策は
Ubuntu11.04のapache2、PHP5、cakePHPのインストールについて(備忘録)
http://tyukudiary.at.webry.info/201109/article_6.html
を参考に

sudo a2enmod rewrite
で rewrite を有効化

次に

sudo vim /etc/apache2/sites-available/default
で開いて

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



<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

へ変更

最後に
sudo /etc/init.d/apache2 restart
で設定反映

次にDB設定が必要
これは、また明日

テーマ : プログラミング
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック