Posted by hattara on 2009 年 3 月 9 日 – 9:06 PM
.htaccessでmod_rewriteを使って転送してるつもりが、
404エラーになってしまう。
Apacheのエラーログ(error_log)では、「File does not exist:」が
でてる状態なわけです。
こんな現象とちょっと戯れたので、メモしとく。
.htaccessの内容は以下。
## リライトエンジンを有効に。
RewriteEngine On
## リライトの対象パスを指定
RewriteBase /
## リライトルールを宣言(条件・アクセス先)
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
まあ、これで普通はmod_rewriteによって、該当領域にきたアクセスで
RewriteRuleで指定されている画像など以外のものは、
すべてindex.phpにアクセスされるようになるはずなんですね。
ここで大きな落とし穴がありました。
.htaccessの書き方が問題なくても、
そもそも.htaccessを有効にしてない場合があるわけです。
Apacheのhttpd.confに「AllowOverride」って項目があるわけです。
これが「None」とかになってると、.htaccessが利用できないです。
これは、サーバ管理者にお願いする形になっちゃうんでしょうけど、
修正するしかないですね。
ZendFrameworkのおすすめ書籍
Posted by hattara on 2008 年 10 月 23 日 – 9:23 PM
Hello Worldみたいな単純な表示すらでなかったら、ショックをうけますね。
ということで、ZendFrameworkで以下のエラーがでたので、
一応コメントを残しておく。
エラーは、Apacheのerror_logに出力されてました。
標準出力的には、まっ白い画面でした。
PHP Fatal error: Uncaught exception ‘Zend_Controller_Dispatcher_Exception’ with message ‘Invalid controller specified (error)’ in /usr/share/pear/Zend/Controller/Dispatcher/Standard.php:249\nStack trace:\n#0 /usr/share/pear/Zend/Controller/Front.php(914): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))\n#1 /public_htmlまでのPATH/index.php(14): Zend_Controller_Front->dispatch()\n#2 {main}\n thrown in /usr/share/pear/Zend/Controller/Dispatcher/Standard.php on line 249
【原因】
該当のControllerに対応したViewが存在しない場合などに表示されるようです。
他にも要因はあるんだろうけど、今回はこれでした。
/(APP用フォルダ)/controllers/IndexController.php (indexActionだったら)
が利用されている場合には、以下のViewを呼びにいくわけです。
/(APP用フォルダ)/views/scripts/index/index.phtml
要するに、
/(APP用フォルダ)/views/scripts までは固定で
index が Controllerの名前と紐づき、
index.phtml がActionの名前と紐づくわけですね。
まあ、僕のは、scriptsフォルダがなかったわけですが・・・・
初歩の初歩。 間違いとしては、下の下ですね。
※自動でレンダリング?しないようにしている場合には、大丈夫だと思う。
ZendFrameworkのおすすめ書籍
Posted by hattara on 2008 年 10 月 22 日 – 8:36 PM
もともとSmartyは使ってたんですが、
Zend Frameworkも勉強を始めました。
ということで、面倒なくインストールする方法を書いておきます。
やっぱりphpまわりは、pearでインストールできると楽ですよね。
ということで、SmartyとZend Frameworkのpearでの設置方法です。
## Smarty
pear list
pear list-channels
pear channel-discover pearified.com
pear install pearified/Smarty
pear list-channels
pear list
## Zend Framework
pear list-channels
pear channel-discover zend.googlecode.com/svn
pear install zend/zend
pear list-channels
ただ、これをやっても、pear list で一覧に出てきません。。
どうしたらいいんでしょうね。。
この辺は、また何かわかったら、追記することにします。
ZendFrameworkのおすすめ書籍