CentOS4.6でWebサーバーを構築しています。


ドメインはダイナミックDNSサービス - ieServer.Netのサービスを利用しています。ApacheのServerAdmin、ServerNameの設定や、ユーザディレクトリの設定→/home/ユーザー名/public_html/index.htmlの設定も問題ないと思うのですが、

ブラウザにhttp://ieServerに登録したユーザ名+ドメイン名/~ユーザ名を表示させようとしてもできません。
例)http://centossrv.dip.jp/~centos

また、ifconfig -a で eth0 のIPアドレスをみてそのアドレスを上記のユーザ名+ドメイン名のところに記入する方法なども試しましたが失敗しています。

WebSitePulseのテストツール(http://www.websitepulse.com/help/tools.php)を利用して、設定したサーバー名で外部からアクセスできるかテストし成功しましたが、ポートチェック(http://www.cman.jp/network/support/port.html)には失敗します。DNSサーバーの方での処理はうまくいっているが、自宅サーバーとの接続はできていないということだと推測しています。

PRー200NE(ONU)の静的IPマスカレードの設定でポート80、443開放しています。(22は宛て先を指定しなければならないため開放していません)。ルーターは使用せず、サーバを直接ONUに接続しています。

原因は何だと考えられるでしょうか。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2008/07/05 21:50:21
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tezcello No.3

回答回数460ベストアンサー獲得回数69

ポイント70pt

ログからすると、ユーザーディレクトリの設定が間違っているような気がします。

よくある hoge というユーザのページを /home/hoge/public_html に置いて、http://www.fuga.com/~hoge

でアクセスしようとするには

UserDir public_html

が記述されていないとダメだと思いますが、大丈夫でしょうか?

なんとなく単純にデフォルトルートの hoge ディレクトリを探しにいっているようですが。


まさか、hoge というユーザを追加していないなんてオチは無いですよね?


ieServer.Net に登録したドメイン名で、PR-200NE の WAN側に振られているIPアドレスがチャンと引けているかをチェックしてみてください。

例えばこちらの digテストで

http://www.cman.jp/network/support/index.html

コメント欄のエラーメッセージは、xxxx.dip.jp の解決はできているっぽいので、大丈夫だとは思いますが念の為。

id:ikazuo

digテスト

  • うまくいきました。
  • 自分のサーバのhttp://xxxx.dip.jpにアクセスして表示されたのは/var/www/html/index_htmlに書いた内容です。外部から取得ドメインで、/var/www/html/index_htmlにアクセスすることができています。しかし…



http://xxxx.dip.jp/~ユーザ名 でのアクセスには失敗する。

  • Apacheの設定ファイルは以下のようにしています。
  • <IfModule mod_userdir.c> の設定
      #UserDir disable 
       UserDir public_html

  • <Directory /home/*/public_html> の設定
      <Directory /home/*/public_html>
        AllowOverride None
        Options SymLinksIfOwnerMatch
        <Limit GET POST OPTIONS>
           Order allow,deny
           Allow from all
        </Limit>
        <LimitExcept GET POST OPTIONS>
           Order deny,allow
           Deny from all
        </LimitExcept>
      </Directory>



userの追加

  • 追加したユーザのホームディレクトリにpublic_htmlを作成し、

その下にhtmlのテストページを置く作業はドメイン取得前に終えていました。

  • /home/ユーザ名/public_html/index.html
  • /home以下のパーミッションは755にしてあります。

2008/07/04 12:15:56

その他の回答2件)

id:signdigit No.1

回答回数44ベストアンサー獲得回数5

ポイント10pt

PR-200NEはルータで、ONUではないと思われるのですが、ルータに直接サーバを接続しているということで大丈夫ですよね?

PR-200NEでの特定ポート公開方法は、このあたりでしょうか?

PR-200NE ルーター静的IPマスカレードポート開放設定手順

あとは・・・

CentOS側でのインターネットへの通信は可能なのでしょうか?

$ wget http://q.hatena.ne.jp/1214993209

などで情報採取ができるかどうかなど。

iptablesなどが動いている場合には、適切に設定をするか、一旦停止して確認をするなどしたほうがよいかもしれません。

id:ikazuo

はい、ルータに直接サーバを接続しています。


>CentOS側でのインターネットへの通信は可能なのでしょうか?

# wget http://q.hatena.ne.jp/1214993209
--00:49:58--  http://q.hatena.ne.jp/1214993209
           => `1214993209'
q.hatena.ne.jp をDNSに問いあわせています... 59.106.108.99
q.hatena.ne.jp|59.106.108.99|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
(以下省略)

インターネットへの接続はできました。

PRー200NEのポート開放も済んでいますので、ファイアウォールソフト等の設定の問題でしょうか。

2008/07/04 12:13:41
id:falcon2 No.2

回答回数331ベストアンサー獲得回数2

apacheが公開の設定になっていないのでは。

id:ikazuo

ご指摘いただいているのは、公開ディレクトリの設定のことでしょうか。

たとえば、下記のようにDocumentRootに取得ドメインを含める必要があるのでしょうか。


DocumentRoot “/virtual/honana.com/public_html”公開するドキュメントディレクトリ
<Directory “/virtual/honana.com/public_html”>ドキュメントディレクトリに関する設定
  Options None
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

http://honana.com/apache/22/documentroot.html

よろしくお願い致します。

2008/07/04 12:15:07
id:tezcello No.3

回答回数460ベストアンサー獲得回数69ここでベストアンサー

ポイント70pt

ログからすると、ユーザーディレクトリの設定が間違っているような気がします。

よくある hoge というユーザのページを /home/hoge/public_html に置いて、http://www.fuga.com/~hoge

でアクセスしようとするには

UserDir public_html

が記述されていないとダメだと思いますが、大丈夫でしょうか?

なんとなく単純にデフォルトルートの hoge ディレクトリを探しにいっているようですが。


まさか、hoge というユーザを追加していないなんてオチは無いですよね?


ieServer.Net に登録したドメイン名で、PR-200NE の WAN側に振られているIPアドレスがチャンと引けているかをチェックしてみてください。

例えばこちらの digテストで

http://www.cman.jp/network/support/index.html

コメント欄のエラーメッセージは、xxxx.dip.jp の解決はできているっぽいので、大丈夫だとは思いますが念の為。

id:ikazuo

digテスト

  • うまくいきました。
  • 自分のサーバのhttp://xxxx.dip.jpにアクセスして表示されたのは/var/www/html/index_htmlに書いた内容です。外部から取得ドメインで、/var/www/html/index_htmlにアクセスすることができています。しかし…



http://xxxx.dip.jp/~ユーザ名 でのアクセスには失敗する。

  • Apacheの設定ファイルは以下のようにしています。
  • <IfModule mod_userdir.c> の設定
      #UserDir disable 
       UserDir public_html

  • <Directory /home/*/public_html> の設定
      <Directory /home/*/public_html>
        AllowOverride None
        Options SymLinksIfOwnerMatch
        <Limit GET POST OPTIONS>
           Order allow,deny
           Allow from all
        </Limit>
        <LimitExcept GET POST OPTIONS>
           Order deny,allow
           Deny from all
        </LimitExcept>
      </Directory>



userの追加

  • 追加したユーザのホームディレクトリにpublic_htmlを作成し、

その下にhtmlのテストページを置く作業はドメイン取得前に終えていました。

  • /home/ユーザ名/public_html/index.html
  • /home以下のパーミッションは755にしてあります。

2008/07/04 12:15:56
  • id:tezcello
    先ずは、外部と繋がっているのか?
      多分開設時にチェック済みとは思いますが、今本当に繋がっているのかどうか。
      PR-200NE に繋がっているマシンから、外部のサイトなどが閲覧できるか
      どうか等で調べられるでしょう。

    サーバ機で、http://localhost/ で問題無くテストページが閲覧できるか?
      普通は Apache をインストールしただけで(もちろん起動しなければダメですが)
      サーバ機に X をインストールしていなくても Lynx でも閲覧できるでしょう。

      同様に、http://localhost/~ユーザ名 も要チェック。
      NGの場合はログを確認
      (Apache のログ access_log, error_log, システムのログ messages, secure など)

    iptables などファイアウォールが適切に設定されているか?
      普通は Apache をインストールすると解放されるのではないかと思いますが。
      質問文では、終端装置のポートを解放したとの記述しかありませんので。

    ローカルの(サーバ以外の)マシンからサーバへアクセスして閲覧できるか?

    問題の切り分けの為このような手順で調べてみてください。

    「できません」ではなく、どこにどんなエラーが表示される(または、長時間全く反応がない)など具体的に示すと回答が集まり易いでしょうね。

    httpd.conf も疑わしいので、デフォルトで無事に閲覧できる様にしてから、修正を加えた方が近道かも知れませんね。
  • id:ikazuo
    ●ブラウザでの表示チェック
    >同様に、http://localhost/~ユーザ名 も要チェック。
    >NGの場合はログを確認
    > (Apache のログ access_log, error_log, システムのログ messages, secure など)

    http://localhostでは正常表示されますが、
    http://localhost/~ユーザ名はエラーとなります。
    --------------------------------------------------------------------
    Not Found
    The requested URL /~gene was not found on this server.
    --------------------------------------------------------------------

    error_logをみると、所定の場所にhtmlファイルを置いていないことが問題であるような
    気がしています。あるいはApacheのユーザーディレクティブ部分の記述の問題ではないかと。
    こちらはすぐに試してみたいと思います。
    -----------------------------------------------------------------------------------------
    [error] [client 192.168.1.3] File does not exist: /var/www/html/ユーザ名
    [error] [client 192.168.1.3] File does not exist: /var/www/html/~ユーザ名
    -----------------------------------------------------------------------------------------

    ●ファイアウォール(iptables)
    >iptables などファイアウォールが適切に設定されているか?
    > 普通は Apache をインストールすると解放されるのではないかと思いますが。
    > 質問文では、終端装置のポートを解放したとの記述しかありませんので。

    以下を実施し、ポート開放はできました。
    -----------------------------------------------
    # /etc/rc.d/init.d/iptables stop
    # chkconfig iptables off
    -----------------------------------------------
    iptablesをストップすると外部からのポート開放確認がうまくできました。
    これでルータのポートは開放されたと思います。

    ●ローカルの(サーバ以外の)マシンからサーバへアクセス
    >ローカルの(サーバ以外の)マシンからサーバへアクセスして閲覧できるか?

    サーバー機と同じONUの別ポートに繋いでいるもう一台のLinuxマシーンから
    # wget 192.168.1.3 を実施したところ、200 OKが返ってきました。


    ●取得ドメインでのアクセス
    あとは、取得したドメインでのアクセスができればよいのですが、
    http://xxxx.dip.jp/ブラウザに入力すると下記のメッセージがでます。
    ---------------------------------------------------------------------
    正常に接続できませんでした
    xxxxサーバへの接続を確立できませんでした。
    * このサイトが一時的に利用できなくなっていたり、サーバの負荷が高すぎ
    て接続で きなくなっている可能性があります。しばらくしてから再度試
    してください。
    * 他のサイトも表示できない場合、コンピュータのネットワーク接続を確認
    してください。
    * ファイアーウォールやプロキシでネットワークが保護されている場合、
    FirefoxによるWeb アクセスが許可されているか確認してください。
    ---------------------------------------------------------------------



  • id:tezcello
    > http://xxxx.dip.jp/~ユーザ名 でのアクセスには失敗する。
    この時のログもこの上のコメントにあるように
    Not Found や File does not exist でしょうか?

    httpd.conf を変更後、apache を再起動していますよね?

    UserDir の設定が出来ているのにそうなるのなら、分かりません。ごめんなさい。
  • id:ikazuo
    >この時のログもこの上のコメントにあるように
    >Not Found や File does not exist でしょうか?

    error_logは下記のようになっています。
    ----------------------------------------------------------------------------------------------
    [Fri Jul 04 14:05:52 2008] [error] [client 127.0.0.1] (13)Permission denied: access to /~ユーザ名/index.html denied
    ----------------------------------------------------------------------------------------------


    サーバ自身のブラウザから
    ◯ http://localhost/
    × http://localhost/~ユーザ名/

    サーバ自身のブラウザから
    × http://xxxx.dip.jp
    × http://xxxx.dip.jp/~ユーザ名

    digテスト(外部から)
    ◯ http://xxxx.dip.jp
    × http://xxxx.dip.jp/~ユーザ名




    >httpd.conf を変更後、apache を再起動していますよね?

    しています。
  • id:tezcello
    Permission denied
    といっているので、どこかでパーミッションが足らないのでしょう。

    > /home以下のパーミッションは755にしてあります。
    これは、今でもそうなっていますか?
    以前、うちのマシンで useradd hoge をすると、/home/hoge は 700 で作成されてました。
    /home/hoge/public_html ばかり気にしていたので、気が付くのに時間が掛かった事があります。

    ひょっとすると、
    http://xxxx.dip.jp/~ユーザ名/index.html
    ではOKでは?(index.html ではなくても実在のファイル名)
    例示の httpd.conf では、Indexes が無いようなので。


    サーバ自身のブラウザからドメイン名でのアクセスに失敗するのは、正常ですね。
      xxxx.dip.jp が解決しても、ルータが自身へのリクエストを捨ててしまうでしょうから。
      hosts に、自身の(ローカル)IPアドレスを入れておけばうまくアクセスできます。
      ローカルのマシン全てでやる必要がありますが、全ローカルマシンはローカルのDNSに
      問い合わせるようにしておけば、手が省けます。(台数によってはDNSの方が手間ですけど)
  • id:ikazuo
    >> /home以下のパーミッションは755にしてあります。
    >これは、今でもそうなっていますか?

    再度確認しましたが755になっています。



    >http://xxxx.dip.jp/~ユーザ名/index.html
    >ではOKでは?

    ユーザのホームディレクトリ配下のpublic_htmlに置いたindex.htmlには今回もアクセス
    できませんでした。
    「取得でエラーが発生しました(403 Forbidden)」
    ------------------------------------------------------------------------------------------------
    Forbidden

    You don't have permission to access /~gene/index.html on this server.

    Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
    Apache/2.0.52 (CentOS) Server at contingent.dip.jp Port 80
    ------------------------------------------------------------------------------------------------

    とはいえ、最低限の目的には到達できました。
    tezcelloさんに感謝したいと思います。
    ありがとうございました。
    この後はよりサーバ構築のペースを上げて、自分で解決できない場合はまた質問
    せさていただきたいと思います。よろしくお願いいたします。
    本日7/5の22時頃にこの質問は終了とします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません