あ~、こんなに大変だったっけ?
■Zendライブラリの置き場編
【現象】
Zendライブラリが見れない
【対策】
phpフォルダの下にpearフォルダをつくり、そこにダウンロードしてきたlibraryの下のZendを置く
phpフォルダをc:\phpとすると、
C:\php\pear\Zendの下に、いろんなファイルがあることになる。
■.htaccessが利いていない編
【現象1】どう考えても.htaccessが利いていないように見える。
今、
PHPのZend FrameworkをEclipseで使う その2:Eclipseからzend
http://blog.goo.ne.jp/xmldtp/e/c047d20f5bdeb80f81e5c7f76c866cb6
に書いたように、HelloZend直下に、.htaccessというファイルを、そこに書いてある
内容どおりに作っても、コントローラーのところが、呼び出せない
たとえば、
http://localhost/HelloZend/Index/hello
とやっても、IndexController.phpに書かれた、helloActionは呼び出されず、
404エラーになる。
【対策1】
・httpd.confの設定らしい
1.Apacheのフォルダの下のconf\http.confを開いて、
Directory "c:/Apache24/htdocs タグ内の
AllowOverride All
(数行先)
Require all granted
Files ".ht*"タグ内の
Require all granted
にする
【参考文献】
[1]Zendでコントローラが呼ばれずに、404が返ってくる
http://shinya-blog.blogspot.jp/2011/07/zend404.html
[2]Apache trunk(2.3) での認証制御の変更
http://d.hatena.ne.jp/tagomoris/20070709/1183969232
【現象2】
上記「対策1」を行って、再起動、実行すると、今度は、500内部サーバーエラーになる。
ログを見ろろいうことなので、ログ(apacheのフォルダ\log\error.log)を見ると
C:/Apache24/htdocs/HelloZend/.htaccess: Invalid command 'RewriteBase', perhaps misspelled or defined by a module not included in the server configuration
となっている。
【対策2】
mod_rewriteモジュールが動いていない。
2.Apacheのフォルダの下のconf\http.confを開いて、
#LoadModule rewrite_module modules/mod_rewrite.so
の行のコメントをはずして
LoadModule rewrite_module modules/mod_rewrite.so
にする。
【結果】
動きました。
【参考文献】
[3].htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
http://stackoverflow.com/questions/10144634/htaccess-invalid-command-rewriteengine-perhaps-misspelled-or-defined-by-a-m
■Zendライブラリの置き場編
【現象】
Zendライブラリが見れない
【対策】
phpフォルダの下にpearフォルダをつくり、そこにダウンロードしてきたlibraryの下のZendを置く
phpフォルダをc:\phpとすると、
C:\php\pear\Zendの下に、いろんなファイルがあることになる。
■.htaccessが利いていない編
【現象1】どう考えても.htaccessが利いていないように見える。
今、
PHPのZend FrameworkをEclipseで使う その2:Eclipseからzend
http://blog.goo.ne.jp/xmldtp/e/c047d20f5bdeb80f81e5c7f76c866cb6
に書いたように、HelloZend直下に、.htaccessというファイルを、そこに書いてある
内容どおりに作っても、コントローラーのところが、呼び出せない
たとえば、
http://localhost/HelloZend/Index/hello
とやっても、IndexController.phpに書かれた、helloActionは呼び出されず、
404エラーになる。
【対策1】
・httpd.confの設定らしい
1.Apacheのフォルダの下のconf\http.confを開いて、
Directory "c:/Apache24/htdocs タグ内の
AllowOverride All
(数行先)
Require all granted
Files ".ht*"タグ内の
Require all granted
にする
【参考文献】
[1]Zendでコントローラが呼ばれずに、404が返ってくる
http://shinya-blog.blogspot.jp/2011/07/zend404.html
[2]Apache trunk(2.3) での認証制御の変更
http://d.hatena.ne.jp/tagomoris/20070709/1183969232
【現象2】
上記「対策1」を行って、再起動、実行すると、今度は、500内部サーバーエラーになる。
ログを見ろろいうことなので、ログ(apacheのフォルダ\log\error.log)を見ると
C:/Apache24/htdocs/HelloZend/.htaccess: Invalid command 'RewriteBase', perhaps misspelled or defined by a module not included in the server configuration
となっている。
【対策2】
mod_rewriteモジュールが動いていない。
2.Apacheのフォルダの下のconf\http.confを開いて、
#LoadModule rewrite_module modules/mod_rewrite.so
の行のコメントをはずして
LoadModule rewrite_module modules/mod_rewrite.so
にする。
【結果】
動きました。
【参考文献】
[3].htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
http://stackoverflow.com/questions/10144634/htaccess-invalid-command-rewriteengine-perhaps-misspelled-or-defined-by-a-m