プロが教える店舗&オフィスのセキュリティ対策術

Win VISTA XAMPP 1.8.0 です。
昨日まで正常に動いていたPHPが今日はエラー表示で全く動作しません。
何故でしょうか。
「Access forbidden!
要求されたオブジェクトのアクセス権がりません。読み込みが許可されていないか、サーバーが
読み込みに失敗したかでしょう。

サーバーの障害と思われる場合はウェブ管理者までご連絡ください。」

Error 403
127.0.0.1 Apache2.4.3(Win32)OpenSSL /1.0.1C PHP/5.4.7

という内容です。

===================================================================
全く原因が不明です。
宜しくお願いします。

A 回答 (5件)

すみません、



xampp/apache/error/XAMPP_FORBIDDEN.html.var
これは、ディレクトリ名です。
Windowsであれば
C:\xampp\apache\error\XAMPP_FORBIDDEN.html.var
というファイルを、適当なエディタで開いて、後は前の説明通りに修正していただければ治ると思います。
    • good
    • 0
この回答へのお礼

 hogehoge78さん、回答有難うございます。

 回答頂いたとおりに試してみましたが、同じ状況です。
 
 間違って他のコードで開いたのでDOMがついてしまったのでしょうか。
 その場合にはどのようにしたらよいのでしょうか。

宜しくお願いします。

お礼日時:2013/08/21 19:10

回答遅くなりましたが、



BOMがついてしまっているのであればエディタで開き直して、ファイル名を指定して保存等で、BOMなしのUTF-8に保存し直す等していただければと思います。

ちなみにエラー画面ですが、
http://localhost/xampp/
にアクセスした時の禁止と、
http://localhost/
にアクセスした時の禁止でエラー画面が違いますが、どのようになっていますか?
    • good
    • 0

回答が遅くなってしまったため、既に解決済みかとは思いますが・・・



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サーバを公開したくないということであれば、ポートの開放をしない、ファイアウォールソフトウェア等で外部からのアクセスを弾く、ということを行ったほうがより効果的かと思います。
    • good
    • 0
この回答へのお礼

 hogehoge78さん、回答有難うございました。
 
 実は未だ解決していません。
 「Content-type: text/html; charset=ISO-8859-1」のファイルはどこにあるのでしょうか。
 
 apache>confを見たのですが、それらしき箇所が見つかりません出でした。

 宜しくお願いします。

お礼日時:2013/08/16 20:46

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

と記述して再起動してみて下さい。
    • good
    • 0
この回答へのお礼

 hogehoge78さん、回答有難うございました。

 Apacheの設定の方は何とか成功致しました。

 xamppのセキュリティ画面の文字化けは何とかならないものでしょうか。
 webで色々と調べては見ましたが、なかなかヒットしません。

お礼日時:2013/08/12 08:17

httpd.confの設定は変更をしていませんか?



またはphp.iniの設定の変更もされていないのでしょうか?

XAMPPをインストールしたディレクトリはProgram FilesではなくCドライブ直下になっていますか?

http://labs.m-logic.jp/2009/01/vistaxampp170_403 …

このような情報もあるようですが、この設定を試しても変わりませんか?

XAMPP内のapache/logsディレクトリにerror.logファイルがあると思いますが、そこにも何か怪しいエラーは出ていませんか?

情報が少なすぎて解決に近づく回答がしづらいです。
    • good
    • 0
この回答へのお礼

 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にエンコードをしても全くそのままです。

 何が原因でしょうか。どのようにすれば正常になるのでしょうか、
宜しくお願いします。

お礼日時:2013/08/08 11:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!