- ベストアンサー
phpのエラーの意味がわかりません、(403)
- 「Access forbidden!要求されたオブジェクトのアクセス権がりません。読み込みが許可されていないか、サーバーが読み込みに失敗したかでしょう。サーバーの障害と思われる場合はウェブ管理者までご連絡ください。」
- Error 403 127.0.0.1 Apache2.4.3(Win32)OpenSSL /1.0.1C PHP/5.4.7
- phpのエラーが発生し、エラーコードが403です。要求されたオブジェクトのアクセス権がなく、読み込みが許可されていないかサーバーが読み込みに失敗している可能性があります。サーバーの障害が原因である可能性もあります。ウェブ管理者に連絡して状況を確認してください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
すみません、 xampp/apache/error/XAMPP_FORBIDDEN.html.var これは、ディレクトリ名です。 Windowsであれば C:\xampp\apache\error\XAMPP_FORBIDDEN.html.var というファイルを、適当なエディタで開いて、後は前の説明通りに修正していただければ治ると思います。
その他の回答 (4)
- hogehoge78
- ベストアンサー率80% (433/539)
回答遅くなりましたが、 BOMがついてしまっているのであればエディタで開き直して、ファイル名を指定して保存等で、BOMなしのUTF-8に保存し直す等していただければと思います。 ちなみにエラー画面ですが、 http://localhost/xampp/ にアクセスした時の禁止と、 http://localhost/ にアクセスした時の禁止でエラー画面が違いますが、どのようになっていますか?
- hogehoge78
- ベストアンサー率80% (433/539)
回答が遅くなってしまったため、既に解決済みかとは思いますが・・・ xampp/apache/error/XAMPP_FORBIDDEN.html.var を見ていただくと、他のエラーファイルは全てCotent-TypeをUTF-8で送出するように記述されているのに、 このファイルだけ、ISO-8859-1を送出するようになっています。 付きまして、 Content-language: ja あたりで検索していただき、その下の行にある、 Content-type: text/html; charset=ISO-8859-1 を、 Content-type: text/html; charset=UTF-8 に変更して下さい。 これで日本語の部分に関してのみではありますが文字化けしなくなります。 ちなみにですが、もし質問者さんが、ルータをお使いであれば、外部からの侵入者にWebサーバを公開したくないということであれば、ポートの開放をしない、ファイアウォールソフトウェア等で外部からのアクセスを弾く、ということを行ったほうがより効果的かと思います。
お礼
hogehoge78さん、回答有難うございました。 実は未だ解決していません。 「Content-type: text/html; charset=ISO-8859-1」のファイルはどこにあるのでしょうか。 apache>confを見たのですが、それらしき箇所が見つかりません出でした。 宜しくお願いします。
- hogehoge78
- ベストアンサー率80% (433/539)
Apache2.4では、 アクセスを許可する記述方法そのものが以前と変更になりました。 ■以前の書き方 Order allow,deny Allow from all で、全許可。127.0.0.1(自分自身)のみ許可したければ Allow from 127.0.0.1 と記述する形式でした。 ■2.4での書き方 Require all granted で全て許可するとなり、 Require all denied で全て拒否するとなります。 127.0.0.1(自分自身)のみ許可したければ、 Require ip 127.0.0.1 と記述する。 ・・・というのがわかるのに時間がかかりました。 自分自身、如何にApacheの設定をまともにやっていないかが分かった次第です。 結論、 追記した分は全て消して、 Require ip 127.0.0.1 と記述して再起動してみて下さい。
お礼
hogehoge78さん、回答有難うございました。 Apacheの設定の方は何とか成功致しました。 xamppのセキュリティ画面の文字化けは何とかならないものでしょうか。 webで色々と調べては見ましたが、なかなかヒットしません。
- hogehoge78
- ベストアンサー率80% (433/539)
httpd.confの設定は変更をしていませんか? またはphp.iniの設定の変更もされていないのでしょうか? XAMPPをインストールしたディレクトリはProgram FilesではなくCドライブ直下になっていますか? http://labs.m-logic.jp/2009/01/vistaxampp170_403error.html このような情報もあるようですが、この設定を試しても変わりませんか? XAMPP内のapache/logsディレクトリにerror.logファイルがあると思いますが、そこにも何か怪しいエラーは出ていませんか? 情報が少なすぎて解決に近づく回答がしづらいです。
お礼
hogehoge78さん、回答有難う御座います。 #先ず、XAMPPをインストールしたディレクトリは「Cドライブ直下」になっていま す。 #httpd.confの設定に関してですが、参考書等とを見ながら、セキュリティの観点か ら、PC自体がWebサーバーとして公開されるのを避けるために、外部からのアクセ スを拒否する必要があると書かれていましたので以下のように変更しました。 ================================================ <Directory "C:/xampp/htdocs"> ・ ・ Require all granted </Directory> ↓ <Directory "C:/xampp/htdocs"> ・ ・ #Require all granted Require all denied Allow from local 127.0.0.1 </Directory> ================================================ <Directory "C:/xampp/cgi-bin"> ・ ・ AllowOverride None Options None Require all granted </Directory> ↓ <Directory "C:/xampp/cgi-bin"> ・ ・ AllowOverride None Options None #Require all granted Require all denied Allow from localhost 127.0.0.1 </Directory> ================================================ #そして、Basic認証にIDとPASSWARDを設定しました。 #php.iniファイルのについては、文字コードの設定変更を3か所、 タイムゾーンの設定を1か所変更しました。 その後、普通にphpとして、動作時には、ID、PASSWARD認証のダイヤログも立 ち上がり、phpも正常に動作していました。 そして、一旦PCの電源を落として、再度xamppを立ち上げると、 「Access forbidden! 要求されたオブジェクトのアクセス権がりません。読み込みが許可されていないか、サーバーが 読み込みに失敗したかでしょう。 サーバーの障害と思われる場合はウェブ管理者までご連絡ください。 Error 403 127.0.0.1 Apache2.4.3(Win32)OpenSSL /1.0.1C PHP/5.4.7」 というエラーでした。 その時の「XAMPP>apache/logs」の内容は、 ================================================================== [Wed Aug 07 16:57:39.547000 2013] [core:warn] [pid 804:tid 236] AH00098: pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run? [Wed Aug 07 16:57:40.732600 2013] [ssl:warn] [pid 804:tid 236] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache] [Wed Aug 07 16:57:40.997800 2013] [mpm_winnt:notice] [pid 804:tid 236] AH00455: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 configured -- resuming normal operations [Wed Aug 07 16:57:40.997800 2013] [mpm_winnt:notice] [pid 804:tid 236] AH00456: Server built: Aug 18 2012 12:41:37 [Wed Aug 07 16:57:40.997800 2013] [core:notice] [pid 804:tid 236] AH00094: Command line: 'c:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache' [Wed Aug 07 16:57:40.997800 2013] [mpm_winnt:notice] [pid 804:tid 236] AH00418: Parent: Created child process 1292 [Wed Aug 07 16:57:46.286200 2013] [ssl:warn] [pid 1292:tid 240] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache] [Wed Aug 07 16:57:46.504600 2013] [mpm_winnt:notice] [pid 1292:tid 240] AH00354: Child: Starting 150 worker threads. =================================================================== のようなものです。 再度、httpd.confの設定を元に戻して動作させると正常に動作しましたが、 セキュリティ上の問題(PCがwebに公開される)が心配です。 (httpd.confの設定を元に戻しても動作時には、ID、PASSWARDの認証を求められ ます。 設定を元に戻して、xamppのコントロールパネルから「セキュリティ」の画面を 見ると、画面が文字化けして、utf-8にエンコードをしても全くそのままです。 何が原因でしょうか。どのようにすれば正常になるのでしょうか、 宜しくお願いします。
お礼
hogehoge78さん、回答有難うございます。 回答頂いたとおりに試してみましたが、同じ状況です。 間違って他のコードで開いたのでDOMがついてしまったのでしょうか。 その場合にはどのようにしたらよいのでしょうか。 宜しくお願いします。