ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Zendを久々にやって、はまりまくったことのメモ(.htaccessが利いていない編ほか)

2014-03-21 10:00:36 | PHP
あ~、こんなに大変だったっけ?




■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



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする