質問: codeigniterの使い方を教えていただけないでしょうか はじめまして。codeigniter初心者です。 「codeigniter徹底入門」の書籍を参考にして、 xampp+eclipse環境(windows vista、linux(centos)) を構築してみました。 諸設定を行い、eclipseよりphpプロジェクトを作成し、 codeigniterをインポートしています。 xamppコントロールパネルよりapacheを起動後、 vista、centosよりブラウザで下記のurlにアクセスし、 「codeigniterへようこそ!」ページが表示されるところまで 確認できました。 http://localhost/codeigniter/ その後、参考書(「コントローラで"hello world!"を作る」)に 記載されているサンプルコード(下記参照)をそのまま使用して hello.phpを codeigniter/system/application/controllers 配下に作成しました。 hello.php --------------------------------------- php class hello extends controller { function index() { echo 'hello world!'; } } ? --------------------------------------- vista、centosのeclipseより codeigniter/system/application/controllers/hello.php を右クリックして「デバッグ」→「php web ページ(1)」を選択して デバッグを開始しますと下記のエラー(vistaでのもの)が 発生してしまいます。(vista、centosともに) ------------------------------------------------------------- fatal error: class 'controller' not found in c:\xampp\htdocs\codeigniter\system\application\controllers\hello.php on line 2 ------------------------------------------------------------- また参考書には、ブラウザで http://localhost/codeigniter/hello のurlにアクセスすると「hello world!」が表示されると 記載されていましたが、下記のエラーが表示されます。 ---------------------------------------------------------------------- object not found! 要求された url は本サーバでは見つかりませんでした。 もし手入力で url を入力した場合は、綴りを確認して再度お試し下さい。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 error 404 localhost 04/17/09 20:00:04 apache/2.2.11 (win32) dav/2 mod_ssl/2.2.11 openssl/0.9.8i mod_autoindex_color php/5.2.8 ---------------------------------------------------------------------- フレームワークのcontrollerがうまく認識できていないようで、 設定上の問題のように思われますが、原因は特定できておらず、 困り果てた挙句、ご質問させていただきました。 お忙しいところ大変恐縮ですが、アドバイスいただければ幸いです。 何卒宜しくお願い申し上げます。
回答: ちょっと状況が見えないが。codeigniter本体がどう配置されているのかよくわからないので、常識的なことしか書けないが。 まず、config.phpを確認。正しく記述されているか。これは基本中の基本なので念のため。 http://localhost/codeigniter/index.php/hello/index にアクセスして正しく動いているか。もし、これで動いていて、http://localhost/codeigniter/hello で動かないのであれば、codeigniter自体は正常に動いている。単純に.htaccessなどurlのリライト設定あるいはhttpd.confのallow from all設定などが正しく記述されていないということだろうと思う。その辺を再度確認する。 >codeigniter/system/application/controllers/hello.php >を右クリックして「デバッグ」→「php web ページ(1)」を選択して これは、動かないんでないか。そもそもcodeigniter/system/application/controllers/hello.phpのアドレスで公開されていないはず。http://localhost/codeigniter/helloとかで公開されているわけで、codeigniter/system/application/controllers/hello.phpに対してデバッグしても動かないのは当たり前だろうと思う。その解説書に、その方法でデバッグできると書いてあったんだろうか。だとすると、どこかで何か勘違いしているような気がするんだが。