通常sizeを指定すると、テキストBOXのサイズが変更されるらしいのだが

変更されない。


echo $this->Form->input('age',array('label' => '年齢' , 'size' => '5'))."\n";


そこで、いろいろと調べたところ、styleのwidthを変更することによって

サイズを調整出来ることが判明。

echo $this->Form->input('age',array('label' => '年齢' , 'style' => 'width:50px'))."\n";


ちなみに最後についている\nですが、HTMLに出力されたときに、改行されるので

見やすくなります。


ちゃんとページは表示されるのに、なぜかそのページからのリンク先が
おかしい


http://www.test.com/app/users/add

ここからリンクをすると
http://www.test.com/app/users/view
に行って欲しいのですが
http://www.test.com/users/view
になり、もちろんエラーになり404と表示されてしまう。

いろいろと調べてみると、htaccessファイルをいじればよいなど
いろいろと書かれていますが、そーではなく前にも同じ間違えをして
それを思い出す事が出来ました。

そもそもcakephpの仕様だと思うのですが、webrootにappという名前の
フォルダを作ってはいけなかったのです。

そしてappをmyappに変更したところ、一気に解決!
これに約1日悩んでいました。 なんか昔のプログラマーに戻った気分です。

とりあえず、解決してすっきりです。
もし同じ悩みの人、これで解決出来ますよ。

今回は今更ながらセットアップ編をお送り致します。


まず最新版のCakePHPをダウンロードしましょう。
こちら (https://github.com/cakephp/cakephp/downloads
この時点では1.3.11が最新なので、こちらをダウンロード


ZIPでもtar.gzでもどちらでもOKです。ただしSSHでサーバに接続出来ない
人はZIP版をダウンロードして、PCで解凍してから、FTPでアップすることを
お勧めします。


[ファイルを解凍] ・・・ZIPの人は飛ばして下さい。
適当な場所でtar.gzファイルを解凍します。
tar zxvf cakephp-cakephp-1.3.11-23-gff0119b.tar.gz


解凍すると
drwxr-xr-x 13 keigo hpusers 384 2011-08-29 11:19 app
drwxr-xr-x 6 keigo hpusers 304 2011-08-29 11:19 cake
-rw-r--r-- 1 keigo hpusers 1848 2011-08-29 11:19 index.php
drwxr-xr-x 2 keigo hpusers 72 2011-08-29 11:19 plugins
-rw-r--r-- 1 keigo hpusers 1055 2011-08-29 11:19 README
drwxr-xr-x 3 keigo hpusers 72 2011-08-29 11:19 vendors
とファイルやフォルダが出て来ますが、必須なのは
app フォルダとcakeフォルダとindex.phpになります。


[ファイルの配置]
解凍して出来たappとcakeフォルダを適切な場所に配置します。
これはセキュリティ上WEBからはアクセス出来ないところが好ましいです。
ホスティング会社によっては、公開済みフォルダしかアクセス権限がない場合が
ありその場合はしょうがないですね。


keigo@s137:~/cake/sensei > ls -l
total 0
drwxr-xr-x 13 keigo hpusers 384 2011-08-29 11:19 app
drwxr-xr-x 6 keigo hpusers 304 2011-08-29 11:19 cake
drwxr-xr-x 4 keigo hpusers 216 2011-08-30 18:20 cakephp-cakephp-ff0119b
とりあえずこれで配置完了

次に公開ディレクトリ作成
ここでは、下記環境に設定します。
公開URL: senseinoyotei.ebb.jp
アプリケーション: app


senseinoyotei.ebb.jp/app ・・・これでCakePHPが動作する。
人によっては、大元から動作させたい人もいると思います
その場合はappのディレクトリ作成は必要ありません。また
appも好きな名前をつけて問題ありません。


keigo@s137:~/public_html/senseinoyotei.ebb.jp > pwd
/virtual/keigo/public_html/senseinoyotei.ebb.jp
keigo@s137:~/public_html/senseinoyotei.ebb.jp > mkdir app
keigo@s137:~/public_html/senseinoyotei.ebb.jp > cd app/
keigo@s137:~/public_html/senseinoyotei.ebb.jp/app >


作成したディレクトリにindex.phpを配置します。
keigo@s137:~/public_html/senseinoyotei.ebb.jp/app > ls -l
total 4
-rw-r--r-- 1 keigo hpusers 1848 2011-08-30 18:26 index.php


[環境ファイル変更]
次に環境に会わせてindex.phpを変更します。
// define('ROOT', dirname(__FILE__));
define('ROOT', DS . 'virtual' .DS. 'keigo'. DS . 'cake'. DS . 'sensei');


今回はcakeフォルダとappフォルダが同じなので、この設定を
変えるだけで大丈夫です。
ここでのDSは/を意味しています。それぞれの環境に会わせて
設定して下さい。


この時にページにアクセスしてエラーが出ていたら
パスが間違っている可能性があります。


またアクセス権がないエラーであればOKです。


[次にアクセス権の変更]
先ほど移動したappフォルダに書き込み権限を与えます。

tmpフォルダに権限を与えます。
keigo@s137:~/cake/sensei/app > chmod 777 tmp


[データベースファイルの作成]
テンプレートがconfigフォルダにあるので、こちらをコピーする
keigo@s137:~/cake/sensei/app/config > cp database.php.default database.php


次に編集していきます。
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
//'encoding' => 'utf8',
);
この個所を編集していきます。
修正箇所は
host
login
password
database
今回はMySQLを使用します。ここではデータベースの作成は
触れませんので各自作成し、この項目を修正して下さい。


これで、画面を更新して見ましょう。 エラーが基本的に
消えましたでしょうか?
ただ、まだアプリケーションは作成していないので、
Missing Method in AppController
だけ表示されていればOKです。


これでアプリケーションを作成する準備が整いました。
とりあえず、今回はここまで