自宅でQNAP製NASを利用してファイルサーバ兼、Webサーバ兼、Linuxベースのお遊び用、等々で利用しているのですが、いつの間にやら一部webページの表示が「403 forbidden」エラー画面に・・・・
おかげで、cgiとIndex of表示がされていません。
ベーシック認証をかけて外からhttp経由で動画をストリーミングできるようにしている自分からしたら致命的なエラー。
webサーバの設定をしていると必ずと言っていいほど出現するこいつ。出現頻度高い上にまともにエラー原因を吐いてくれない腹立つ奴です。ちなみに画像は拾い物です。
こいつが出てくる時の原因は大体ディレクトリのpermissionか、httpd.confの設定ミスです。
本当はlogファイルとかしっかり参照して原因を探ることが大切だと思います(小並感)
自分と同じようにQNAP NASを利用している場合はhttpd.confに当たるものがapache.confになっていると思います。
CentOS等々は
/etc/httpd/conf/httpd.conf
QNAPは
/usr/local/apache/conf/apache.conf
に設定ファイルがあります。
今回はこいつが初期化されていたことが原因で、「Indexes」と「ExecCGI」のオプションが外れていたようです。
そりゃcgiもindex of表示もできなくなりますわ・・・・
にしても、「Indexes」はセキュリティ上外されるのは仕方ないにしても、「ExecCGI」オプションは標準でついててもいいと思いません?
まぁ、初期状態で「AllowOverride All」に設定されているのを見る限り、設定ファイルを直接いじらずに「.htacces」で対応させろって意味なんでしょうけど・・・・
「.htaccess」はhtmlファイルと同じ場所に設置し、webディレクトリ毎に認証やアクセス制御を行うファイルのことです。細かいことはググってください(ソッチのほうがわかりやすいから・・・)
というわけで今回は、「apache.conf」の<Directory />のオプションへ2つ追記し、設定完了です。
学校のレポートと違ってこんな雑な編集で許されるんだから楽なものだよね(^ω^)
画像では<Directory "/share/Web">となっていますが、ダブルクォーテーションの中は公開webページのルートディレクトリを設定してくださいね。
ちなみにオプションに追加した項目の順番等は別にどうでもいいです。ちゃんとスペースで区切られていれば動きます。
初めていじった時は順番を間違えたら動作しないんじゃないか、そんな細かいことまで気になってましたからね・・・。もちろんスペース空け忘れたらエラー起きますよ?ってか動作しません。
※スペース忘れや、スペルミスは自分で見なおしても気が付きにくい点なので要注意
設定ファイルを書き換えたらサービスの再起動を行うことで、設定が反映されます。
CentOS等は
# service httpd restart
QNAPではservice コマンドが無いため、パス指定し再起動させます。
# /usr/local/apache/bin/apachectl restart
以上で設定が反映されているはずです。
403エラーが解消していればこれにて解決。
それでもエラーがでるならフォルダーのパーミッションやスペルミス等を疑いましょう。
それにしても、webサーバの設定ファイルが初期化されているとは思わなかった・・・
最近全くwebサーバいじってなかったのに突然403エラー吐かれて困惑しました。
自分がいじった部分を振り返っても全く思い当たる節が無く、解決にしばらく時間がかかりました(;´∀`)
最後に、カウンターを応用した押すと増えるボタンcgiを埋め込んでおきます。
適当に押してください。ボタンが増えるだけで別に何も起こりません。
ただ、ブログにiframeで埋め込んで動作するのかどうか知りたかっただけです。
おかげで、cgiとIndex of表示がされていません。
ベーシック認証をかけて外からhttp経由で動画をストリーミングできるようにしている自分からしたら致命的なエラー。
webサーバの設定をしていると必ずと言っていいほど出現するこいつ。出現頻度高い上にまともにエラー原因を吐いてくれない腹立つ奴です。ちなみに画像は拾い物です。
こいつが出てくる時の原因は大体ディレクトリのpermissionか、httpd.confの設定ミスです。
本当はlogファイルとかしっかり参照して原因を探ることが大切だと思います(小並感)
自分と同じようにQNAP NASを利用している場合はhttpd.confに当たるものがapache.confになっていると思います。
CentOS等々は
/etc/httpd/conf/httpd.conf
QNAPは
/usr/local/apache/conf/apache.conf
に設定ファイルがあります。
今回はこいつが初期化されていたことが原因で、「Indexes」と「ExecCGI」のオプションが外れていたようです。
そりゃcgiもindex of表示もできなくなりますわ・・・・
にしても、「Indexes」はセキュリティ上外されるのは仕方ないにしても、「ExecCGI」オプションは標準でついててもいいと思いません?
まぁ、初期状態で「AllowOverride All」に設定されているのを見る限り、設定ファイルを直接いじらずに「.htacces」で対応させろって意味なんでしょうけど・・・・
「.htaccess」はhtmlファイルと同じ場所に設置し、webディレクトリ毎に認証やアクセス制御を行うファイルのことです。細かいことはググってください(ソッチのほうがわかりやすいから・・・)
というわけで今回は、「apache.conf」の<Directory />のオプションへ2つ追記し、設定完了です。
学校のレポートと違ってこんな雑な編集で許されるんだから楽なものだよね(^ω^)
画像では<Directory "/share/Web">となっていますが、ダブルクォーテーションの中は公開webページのルートディレクトリを設定してくださいね。
ちなみにオプションに追加した項目の順番等は別にどうでもいいです。ちゃんとスペースで区切られていれば動きます。
初めていじった時は順番を間違えたら動作しないんじゃないか、そんな細かいことまで気になってましたからね・・・。もちろんスペース空け忘れたらエラー起きますよ?ってか動作しません。
※スペース忘れや、スペルミスは自分で見なおしても気が付きにくい点なので要注意
設定ファイルを書き換えたらサービスの再起動を行うことで、設定が反映されます。
CentOS等は
# service httpd restart
QNAPではservice コマンドが無いため、パス指定し再起動させます。
# /usr/local/apache/bin/apachectl restart
以上で設定が反映されているはずです。
403エラーが解消していればこれにて解決。
それでもエラーがでるならフォルダーのパーミッションやスペルミス等を疑いましょう。
それにしても、webサーバの設定ファイルが初期化されているとは思わなかった・・・
最近全くwebサーバいじってなかったのに突然403エラー吐かれて困惑しました。
自分がいじった部分を振り返っても全く思い当たる節が無く、解決にしばらく時間がかかりました(;´∀`)
最後に、カウンターを応用した押すと増えるボタンcgiを埋め込んでおきます。
適当に押してください。ボタンが増えるだけで別に何も起こりません。
ただ、ブログにiframeで埋め込んで動作するのかどうか知りたかっただけです。
コメント