IISでcakePHP

このQ&Aのポイント
  • IISでcakePHPを利用してPHPのwebアプリを作成中ですが、URL指定すると404エラーが発生します。
  • cakePHPはinetpub/wwwroot/test/直下に配置していてhttp://localhost/test/index.phpの画面は見れます。
  • IISでrewriteをせずにcakePHPの画面を表示する方法を知りたいです。
回答を見る
  • ベストアンサー

IISでcakePHP

現在IIS上でcakePHPを利用してPHPのwebアプリを作成しています。 事情によりrewriteは行わずに作成しているのですが、 URLを指定すると404エラーが返ってきます。 URLは以下です。 http://localhost/test/index.php/posts/index cakePHPはinetpub/wwwroot/test/直下に配置しています。 http://localhost/test/index.php の画面は見れています。 IISでrewriteをせずcakePHPの画面が見れる方法をご存知の方がいましたらご教授願います。 ●環境 windows XP Professional sp3 IIS 5.1 PHP 5.3.5 CakePHP 2.2.2

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

IISの設定の問題でしょうか?検索したら、IISがdefault設定ではpath_infoを理解しないらしい話題がいくつか。以下のページはちょっと古いけど、IIS5なら同じ状況かと思われます。 http://moodle.org/mod/forum/discuss.php?d=13910 「IISの.phpのアプリケーションマッピングに「ファイルの存在を確認する」というチェックボックスがあるのですが、これをオフにしないと、file.php/pic.jpg の設定にした場合、ファイルが存在しないというページ(つまり404)が返される。」 あと、cakePHP2.2 なら $_SERVER['REQUEST_URI']から、ページ割りだししてるから、$_SERVER['PATH_INFO']は空でも大丈夫のようです。$_SERVER['REQUEST_URI']のほうにpath_info付きでuriデータが入ってるかの方もご確認下さい。 それから、mode_rewrite が無効の時の、app/Config/core.php の変更はお済みですか? コメントアウトの // を削除し、以下の文を有効にします。 Configure::write('App.baseUrl', env('SCRIPT_NAME'));

mrnori
質問者

お礼

IISの.phpで「ファイルの存在を確認する」のチェックをはずと画面を表示できました。 非常に助かりました。 ありがとうございます。

関連するQ&A

  • CakePHPのコントローラの作成

    PHP初心者です。 CakePHPをインストールし試しにTestControlerを作成したのですが、ページが開きません。 PageNotFoundになります。 考えられる原因が分かれば教えて下さい。 【やったこと】 ・ [CakePHP root]\app\Controller に TestController.php を作成。 <?php App::uses('AppController', 'Controller'); class TestController extends AppController { } ・ URLにアクセス http://[CakePHP root]/Test ⇒ Not Found http://[CakePHP root]/test ⇒ Not Found http://[CakePHP root]/app/webroot/index.php?url=test ⇒ CakePHPのindex.phpが表示される。 http://[CakePHP root]/app/webroot/index.php?url=Test ⇒CakePHPのindex.phpが表示される。 以下のサイトを参考にしました。mod_rewriteが動いていない可能性がある ということなので、URL直接指定もしてみましたがダメでした。 http://codezine.jp/article/detail/768?p=2 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP5、IISで2つのサイトでPHPを有効にしたい

    php-5.2.6-Win32をWIN2003上で動かしています。WEBサーバはIIS6です。 c:\inetpub\wwwroot1 と c:\inetpub\wwwroot2 のサイトがあり両方でPHPを動作させたいのですが、 php.iniのdoc_rootをどのように設定すればいいのでしょうか? 是非宜しくお願いします。

    • ベストアンサー
    • PHP
  • IIS5について

    初心者です。 1.IIS5をインストールし、インターネットインフォメーションサービスの「既定のWEBサイト」のプロパティで、WEBサイトの識別にサーバのIPを設定。 2."C:\Inetpub\wwwroot"に簡単なHTMLファイル(index.html)を作る。 3.ブラウザで、"http://xxx.xxx.xxx.xxx/index.html" をたたくと、TimeError。 4."http://127.0.0.1"をたたくと、ページがみつかりません。 5."http://localhost/iisHelp/"をたたくと、The requested URL could not be retrievedとなります。 ヘルプすら開かないのですが、最低限必要な設定がもれているんでしょうか?

  • CakePHP1.2でCSSが適用されない

    レンタルサーバーはXREAで、 PHP Version 4.4.8 + CakePHP 1.2.0.7692 RC3 + Apache 10337100 を使っています(phpinfo()にて取得)。 http://d.hatena.ne.jp/Yukkuri/20080519/1211221064 こちらのサイトを参考に接地し、CakePHPのスタート画面は出たのですが、 スタイルシートや画像が適用されてくれません。 mod_rewrite関係だと思うのですが、phpinfo()を見る限りでは mod_rewriteは読み込まれているようです。 .htaccessは以下のようになっています。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /cgi/anketo/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule> 他に設定すべき項目などありましたら教えていただけないでしょうか。

    • 締切済み
    • PHP
  • HTTPDでOKでIISでエラーとなります

    テストでチャット風に動くCGIを作成したのですが。 端末側でHTTPDでテストするとOKですが NTサーバー(IIS)でLAN上に公開しようとすると 下記のエラーがでてしまいます。 'E:\Inetpub\wwwroot\・・・\TEST.cgi' script produced no output 何か変更するべき設定はあるのでしょうか?

  • IISで何も表示されません。

    WindowsXPのHomeからProffessionalにアップグレードし、 IISをインストールしました。 CドライブにはInetpubの下にwwwrootフォルダが作成されて いるのですが、コントロールパネルから 「インターネット インフォメーション サービス」を 開くと左上に「インターネット インフォメーション サービス」と 表示されているだけで、コンピュータ名など一切表示されません。 その為、http://localhostと入力しても「ページを表示できません。」 と表示されます。localhostの代わりに127.0.0.1で入力しても 同じでした。 hostsを確認しましたが、「127.0.0.1 localhost」に なっています。 セキュリティーソフトを手動起動にし、再起動してウィルスソフトが 起動していない状態で再度IISを確認したのですが、やはり 何も表示されません。 これは一体なぜなんでしょうか? お時間ある方教えてください。。

  • VistaでのIISのインストールについて

    お世話になります。 WindowsVista Buisiness でIIS7をインストール行いました。 → http://pasofaq.jp/development/web/vistaiisinstall.htm のサイトを参考に行ったのですが、http://localhostをアドレスに入力すると404エラーになってしまいます。 IIS開始のページが開かず困っています。単純にインストールに失敗しているのでしょうか? IISマネージャは起動します。 C:\inetpub\wwwroot\下にはiisstart.htmのIIS開始ページは存在しています。 どういう状態になっているのか全然わかりません。 どなたかご教授下さいますようお願いします。

  • iisがうまく動作しない

    環境はWinXP-proでiis5.1をインストールしました。 iisの「Webサイト」上で 「ホームディレクトリ」の”読み取り”にチェックを入れ、該当するフォルダに「ドキュメント」の"既設のドキュメント"にチェックを入れ内容も該当するファイルがあるのを確認しました。 「既設のwebサイト」欄は ホームディレクトリにc:\inetpub\wwwrootを指定し「このコンピュータにあるディレクトリ」を指定し、”読み取り”にチェックを入れています。c:\inetpub\wwwroot内に「index.htm」があるので「ドキュメント」の中にあるのも確認しました。 そこで「既設のwebサイト」上で右クリックし、「参照」を実行すると「http404」エラーがでます。 また、直接ブラウザに「http://localhost/」を指定しても結果は同じです。 「http://127.0.0.1/」でも「http://PC名/」でも同じでした。 ちなみに常時接続のためルータを入れいます。ローカルの参照なのでルータは関係ないと思うのですが。 まったく動作しないため困っています。原因と対処法がわかりましたら教えてください。

  • cakephpで特定ファイル表示(htaccess

    CakePHPではURLを一度index.phpにリダイレクトするような作りになっていますが、Googleの検索エンジン用のsitemap.xmlファイルを公開ディレクトリに置いた場合、そのファイルだけはmod_rewriteのルールから外して、普通にブラウザで見れる状態にしたいです。 .htaccessをどのように設定すれば良いか、教えてください。 なお、CakePHPのindex.phpファイルと.htaccess、sitemap.xmlは同じディレクトリに置いてあります。 [環境]CakePHP 1.3 PHP5.3 現在は.htaccessは以下のように設定されています。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule> 上記の RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] の前の行に RewriteCond %{REQUEST_FILENAME} ^sitemap.xml を入れるとこのファイル自体はブラウザから見れるようになりますが、サイトのトップページ以外を見ようとすると、「Not Found」が返ってきてしまいます。

    • ベストアンサー
    • PHP
  • cakephp HTTP403エラー

    初心者ですが、レンタルサーバーを変更し、cakephpを利用している既存のデータ等をそのまま新しいサーバーに移動したのですが、URL:hhtp://www.○○○.jpでHTTP403のエラーが出てしまいます。 但し、URL:hhtp://www.○○○.jp/cakephp/ ではエラーは出ず、レイアウトがズレて表示されます。(CSSのパスの原因で)。またデータベースのデータも表示されます。 CAKEPHPはドメイン直下に配置し、webrootもフォルダ内にあります。 レンタルサーバのため、apacheの編集もできません。(ディレクトリの変更などもできません) いろいろ調べて、cakephp内の3つの「.htaccess」のmod_rewrite、app/temp/のパーミッション等の変更も試しましたが、うまくいきません。 HTTP403のエラーの回避方法を教えてください。よろしくお願いいたします。 ・APACHE :2.x ・PHP    :5.3 ・MYSQL  :5.1

専門家に質問してみよう