質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.36%

  • Linux

    4214questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Apache

    1990questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

マルチドメインの設定方法が知りたい

受付中

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,216

akkkkin

score 71

---掲題の件、下記のように設定したのですが、あってますでしょうか?
example.comにアクセスしてみましたが表示されなくて試行錯誤しております。

目標:”IP/hoge”をexample.comのドメインに向けたい。

【やったこと】

下記の記述を
vi /etc/httpd/conf.d/vhost.confとコマンドを打ち、
新たに作成した、vhost.confファイル内に記述。
CentOS7,Apacheです。

NameVirtualHost IPアドレス欄:80
<VirtualHost IPアドレス欄:80>
DocumentRoot /var/www/html/hoge
ServerName www.example.com
CustomLog logs/ディレクトリ名-access.log common
ErrorLog  logs/example.com-error.log
<Directory "/var/www/html/hoge/">
Options indexes +ExecCGI
Options +FollowSymLinks
AddHandler cgi-script cgi pl
order deny,allow
deny from all
Allow from all
AllowOverride all
</Directory>
</VirtualHost>

以上、設定方法としてあっているかご教示いただけたらありがたいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • yambejp

    2016/11/14 20:46

    apacheですか?バージョンによって記述が違うのでapacheのバージョンとできればosの情報も提示したほうがよいでしょう

    キャンセル

  • ynakano

    2016/11/14 20:57

    PHPのタグは不適切ではないでしょうか。Apacheタグにつけ直してもらえませんか。

    キャンセル

  • akkkkin

    2016/11/14 21:06

    コメントありがとうございます。Apacheです。OSはcentos7になります。タグも修正しました。

    キャンセル

回答 4

+1

基本的なところかもしれませんが・・・

質問文を見るとwww.example.com を設定してhttp://example.com にアクセスできないと言われているように読み取れます。

設定したいのは http://example.com ですか?
それとも http://www.example.com ですか?

ServerName と URLのFQDN は一致していますか?

※hoge.comは実在のドメインですので、例示用ドメインに変えています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

イメージとしてですが、AサーバのApacheへhttp://xxxx/ip/YYYでアクセスがあったら

User ---> http://hogehoge.com/IP/hoge/ ----> http://hoge.com/


という風にしたいのでしょうか?

hogehoge.comとhoge.comは同じマシンでIPを2個もっている。(前者)
もしくはhogehoge.comとhoge.comは別マシン(後者)

前者であれば、IPベースのIP ベースのバーチャルホスト設定になります。
後者であれば mod_proxy

IPベースバーチャルホスト

<VirtualHost xxx.xxx.xxx.xxx>
ServerAdmin webmaster@mail.smallco.com
DocumentRoot /groups/smallco/www
ServerName www.smallco.com
ErrorLog /groups/smallco/logs/error_log
TransferLog /groups/smallco/logs/access_log
</VirtualHost>

<VirtualHost yyy.yyy.yyy.yyy>
ServerAdmin webmaster@mail.baygroup.org
DocumentRoot /groups/baygroup/www
ServerName www.baygroup.org
ErrorLog /groups/baygroup/logs/error_log
TransferLog /groups/baygroup/logs/access_log
</VirtualHost>

ネームベースバーチャルホスト(IPが1つの場合)
(ただし、DNSで1つのIPに複数ドメインでアクセスがくる場合)

NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
ServerName www.otherdomain.tld
ServerAlias otherdomain.tld *.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/14 22:35

    回答ありがとうございます。

    >User ---> XXXX ----> IP:(http://YYY/)

    申し訳ありません。ちょっと理解が追いつかなくて。。。
    したいことは、IP番号/hogeのドメインを
    example.comに設定したいです。example.comは上記IPに向いている状態です。

    キャンセル

0

質問に対する直接の回答ではないのでご了解ください。

特定のドメインに向けたいとのことですが、ご自身でまずは確かめてみてはどうでしょうか?
Webサーバに接続できるPC等、何かしらあると思います。
そのPC等のhostsファイルにwww.hoge.comのエントリを追加してWebサーバにアクセスしてみてはどうでしょうか。
動作が想定通りでなければ、その時の動作やエラーログ等を提示して質問されたほうがよいと思います。
質問文を読むと、まるっと添削依頼をしているようにも読み取れます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/14 21:18

    コメントありがとうございます。言葉足らずでしたね。アクセスした結果表示されておりません。
    どこかに原因があるかとおもうのですが・・・試行錯誤中でして。。。。

    キャンセル

  • 2016/11/14 21:29

    ファイル名ですが、vhosts.confではないですか?

    キャンセル

  • 2016/11/14 21:49

    ごめんなさい。includeできていればファイル名は別に何でもいいですね。
    ちなみに、apachectl configtestを実行するとどうなりますか?

    キャンセル

  • 2016/11/14 22:28

    Apacheのバージョンですが、2.4でしょうか。
    手元で2.4.6をインストールして試してみました。
    vhost.confの記述ですが、

    deny from all
    Allow from all
    AllowOverride all

    この3行を「Require all granted」に書き換えてみてください。

    私が確認したところ、修正前はバーチャルホスト設定が有効にならずhttpd.confのDocumentRootを見に行ってたのが、修正後はvhost.confのバーチャルホストのDocumentRootを参照するようになりました。

    キャンセル

  • 2016/11/14 23:51

    ちなみに今更ですが、「表示されない」というのはどういう状況でしょうか。
    ブラウザで"http://www.example.com/"と入力しても何も表示されないのでしょうか?
    この件でハマりどころがあるとすれば、意図しないコンテンツが表示されてしまう(vhosts.confに記載のDocumentRootではなくhttpd.confのDocumentRootが見える、とか)という現象だと思っていたので、その前提で色々と書いていました。
    ブラウザに全く何も表示されないのならApache設定ではなく名前解決の問題かもしれません。

    キャンセル

  • 2016/11/14 23:55

    後はApacheのバージョンですね。
    2.4だとディレクティブの記載がだいぶ変わっているようです。(私もあんまり分かってなかった・・・)
    先ほどのReuire all grantedもそうですし、NameVirtualHostも不要みたい(apachectl configtestをするとその旨メッセージが出ます)です。

    キャンセル

  • 2016/11/15 13:11

    回答ありがとうございます。
    >後はApacheのバージョンですね。
    >2.4だとディレクティブの記載
    2.4.6でした。

    上記作業できたら改めて報告いたします。

    キャンセル

  • 2016/11/15 22:17

    >表示されない」というのはどういう状況
    このサイトにアクセスできませんと表示されます。

    原因はどうやらApacheが起動していないっぽいです。

    sudo systemctl start httpd.serviceとコマンドを叩いたのですが、
    ーーーーー
    Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
    ーーーーー
    と表示されました。これはやはりvhost.confの記述が間違っているのでしょうか?

    キャンセル

  • 2016/11/15 22:24

    一応プロセスを見てみましょう。
    "ps -ef | grep http"で引っかからなければApacheは起動していません。

    また、"systemctl status httpd.service"を実行して何と出力されますか?
    ついでに言うと、コンフィグファイルの構文チェックは"apachectl configtest"です。
    includeが正しければvhost.confの内容もチェックしてくれます。
    構文チェックに問題がなければ"Syntax OK"とだけ出ます。

    色々書きましたが、順次確認いただければと思います。

    キャンセル

  • 2016/11/16 01:10

    わかりやすいコメントありがとうございます。
    >"ps -ef | grep http"
    ユーザー名 13670 13651 0 01:05 pts/0 00:00:00 grep --color=auto http
    と表示されました。

    >"systemctl status httpd.service"を実行
    httpd.service - The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since 火 2016-11-15 14:10:31 JST; 10h ago
    Docs: man:httpd(8)
    man:apachectl(8)
    Process: 13261 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
    Process: 13259 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
    Main PID: 13259 (code=exited, status=1/FAILURE)

    ● service.service
    Loaded: not-found (Reason: No such file or directory)
    Active: inactive (dead)

    と表示されました。


    >"apachectl configtest"
    AH00526: Syntax error on line 7 of /etc/httpd/conf.d/vhosts.conf:
    Either all Options must start with + or -, or no Option may.
    と表示されました。

    キャンセル

  • 2016/11/16 08:35

    今手元に環境がないのですが、configtestの結果は明らかにNGですね。
    「Optionsディレクティブは"+"または"-"で始めること、もしくはOptionを使わない(でいいのかなぁ…)」とありますね。
    configtestをした時のvhost.confと質問文掲載のものが同じかどうか分かりませんが、質問文掲載の方を見るなら「Options indexes +ExecCGI」が怪しいですね。
    ちなみにですが、ディレクトリをインデックス【させる】のは意図してやっているのでしょうか?
    対象のディレクトリでCGIを実行させるのであればインデックスさせない方がよいと思います。
    だとすると「Options -Indexes +ExecCGI」という書き方になるかと思います。

    キャンセル

  • 2016/11/16 21:24

    Optionsディレクティブについて試してみました。
    1行で複数のオプションを指定する場合、全てのオプションを+または-で始めるか、もしくは全てのオプションに+も-もつけないかのいずれかでないとconfigtestに引っかかるようです。
    Options行が複数ある場合は+/-で始まるものと何もつかないものが同一行に記述されない限り、混在していてもconfigtestはOKを出してくれます。

    キャンセル

  • 2016/11/19 09:50

    >Options行が複数ある場合は+/-で始まるものと何もつかないものが同一行に記述されない限り、>混在していてもconfigtestはOKを出してくれます。

    <Directory "/var/www/html/hoge/">
    Options indexes +ExecCGI
    Options +FollowSymLinks
    AddHandler cgi-script cgi pl
    order deny,allow
    deny from all
    Allow from all
    AllowOverride all
    </Directory>

    回答ありがとうございます。現在すでにそうなっているかと思うのですが・・・
    これは間違っているのでしょうか?

    キャンセル

  • 2016/11/19 12:32

    いや、これがダメです。

    Options indexes +ExecCGI

    キャンセル

  • 2016/11/19 12:39

    返信ありとうございます。
    以下ですと大丈夫ということでしょうか?
    <Directory "/var/www/html/hoge/">
    Options indexes ExecCGI
    Options FollowSymLinks
    AddHandler cgi-script cgi pl
    order deny,allow
    deny from all
    Allow from all
    AllowOverride all
    </Directory>

    キャンセル

  • 2016/11/19 13:06

    そうですね。
    これでapachectl cofigtestをしてみてください。

    キャンセル

  • 2016/11/21 10:43

    >apachectl cofigtestをしてみてください。
    +をとり上記を実行してみたところ、下記が表示されました。
    ーーーー
    Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file]
    [-C "directive"] [-c "directive"]
    [-k start|restart|graceful|graceful-stop|stop]
    [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X]
    Options:
    -D name : define a name for use in <IfDefine name> directives
    -d directory : specify an alternate initial ServerRoot
    -f file : specify an alternate ServerConfigFile
    -C "directive" : process directive before reading config files
    -c "directive" : process directive after reading config files
    -e level : show startup errors of level (see LogLevel)
    -E file : log startup errors to file
    -v : show version number
    -V : show compile settings
    -h : list available command line options (this page)
    -l : list compiled in modules
    -L : list available configuration directives
    -t -D DUMP_VHOSTS : show parsed vhost settings
    -t -D DUMP_RUN_CFG : show parsed run settings
    -S : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG
    -t -D DUMP_MODULES : show all loaded modules
    -M : a synonym for -t -D DUMP_MODULES
    -t : run syntax check for config files
    -T : start without DocumentRoot(s) check
    -X : debug mode (only one worker, do not detach)

    キャンセル

  • 2016/11/21 11:10

    済みませんね。

    ×apachectl cofigtest
    ○apachectl configtest

    キャンセル

  • 2016/11/21 15:02

    コメントありがとうございます。
    Syntax OKになりました。
    しかしまだ表示されません・・・。

    このサイトにアクセスできません
    と表示されます。。

    キャンセル

  • 2016/11/21 17:47

    では基本に立ち返りましょう。

    ・httpdは起動していますか?
    ・設定した待ち受けポートはlistenしていますか?
    ・同一ネットワークからIPアドレスベースでWebサーバにアクセスできますか?

    キャンセル

  • 2016/11/21 19:05

    回答ありがとうございます。

    >httpdは起動していますか?
    確認コマンドは
    /etc/init.d/httpd status かと思うのですが、
    init.dフォルダの中にhttpdフォルダがありませんでした。
    現在あるのは、
    functions netconsole network README
    です。

    >・設定した待ち受けポートはlistenしていますか?
    listenしているかどうかということはどういうことでしょうか?
    SSHでポート番号とログイン情報をいれたら起動するので、
    ポートは機能している状態です。

    >・同一ネットワークからIPアドレスベースでWebサーバにアクセスできますか?
    できないです。このサイトにアクセスできませんと表示になります。

    キャンセル

  • 2016/11/21 19:24

    httpの起動確認なら”ps -ef | grep httpd"で十分です。
    ちなみに”/etc/init.d/..."は、CentOS 7では"systemctl status httpd.service"です。

    ポート番号ですが、httpd.confに設定したApacheの待ち受けポートの話です。
    SSHは関係ないです。
    「listenしている」というのは接続可能状態にある、という事です。
    要は「Apache(httpd)プログラムが、httpd.confに記述したポート番号(通常は80/tcp)で外部からの接続を受け付ける状態になっているか否か」と言うことです。

    まずここまで片付けましょう。残りはその後で。

    ここに記載した確認方法はApacheに限らず応用が利きます。と同時に、非常に基本的な話です。
    この辺がきちんと理解できていないとサーバを立てて運用するのは困難です。

    キャンセル

  • 2016/11/21 19:34

    回答ありがとうございます。

    >httpの起動確認なら”ps -ef | grep httpd"で十分です
    ユーザー名 18660 18638 0 19:33 pts/0 00:00:00 grep --color=auto httpd

    となりまりした。

    キャンセル

  • 2016/11/21 19:59

    httpdが起動していませんね。
    systemctl status httpd.serviceの結果はどうですか?

    キャンセル

  • 2016/11/22 15:48 編集

    回答ありがとうございます。
    >systemctl status httpd.serviceの結果はどうですか?
    コマンド叩いたところ


    httpd.service - The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Tue 2016-11-15 14:10:31 JST; 1 weeks 0 days ago
    Docs: man:httpd(8)
    man:apachectl(8)
    Process: 13261 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
    Process: 13259 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
    Main PID: 13259 (code=exited, status=1/FAILURE)
    ```
    となりました。

    キャンセル

0

回答ありがとうございます。
>systemctl status httpd.serviceの結果はどうですか?
コマンド叩いたところ下記になりました。

httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2016-11-15 14:10:31 JST; 1 weeks 0 days ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 13261 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 13259 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 13259 (code=exited, status=1/FAILURE)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/22 16:04

    念のため再度Apacheの起動を試みてください。(systemctl start httpd.service)

    これがダメだった場合、【すぐに】"systemctl status httpd.service”と"journalctl -xn"をしてみてください。

    キャンセル

  • 2016/11/22 18:25

    回答有り難うございます。
    なぜか”IP/hoge”だとNOT FOUNDとなり、IPだけだとアクセスできました。
    しかし、レイアウトがくずれており、サイト内をクリックするとNOT FOUNDになります。

    キャンセル

  • 2016/11/22 19:08

    済みません。端折りすぎててわかりづらいです。

    > ”IP/hoge”だとNOT FOUNDとなり、IPだけだとアクセスできました。

    これはブラウザで"http://<ipaddr>/hoge"としたらNOT FOUNDになり、"http://<ipaddr>/"としたらOKだったということですか?
    だとしたら、単に"hoge"というコンテンツがないだけです。
    アクセスログ、エラーログを確認してみてください。404でエラーが記録されていると思います。

    レイアウト崩れは何とも言えません。どのようなコンテンツなのか分からないので答えようがないです。HTMLファイルではCSSを参照することになっているのに、そのCSSファイルが存在しないとかでしょうか。(全くの推測です)

    > サイト内をクリックするとNOT FOUND

    これもクリック先のコンテンツが存在していないだけでは?

    Apacheの動作がおかしいかもという問題と、コンテンツをきちんと準備していないという作り手側の問題をごちゃごちゃにしないようにしましょう。

    キャンセル

  • 2016/11/22 19:09

    というか、Apacheは起動したのですね。
    その点は前進して何よりです。

    キャンセル

  • 2016/11/22 19:45 編集

    回答ありがとうございます。

    >折りすぎててわかりづらいです。
    申し訳ありませんでした。

    >これはブラウザで"http://<ipaddr>/hoge"としたらNOT FOUNDになり、"http://<ipaddr>/"としたらOKだったということですか?
    →そうです。

    >だとしたら、単に"hoge"というコンテンツがないだけです。
    いや、var/html/hoge とあるのでコンテンツ事態はあります。

    もしかしたら、vhost.confのドキュメントrootの設定を
    <Directory "/var/www/html/hoge/">
    としたので、"http://<ipaddr>/hoge"でアクセスできなくなり、
    "http://<ipaddr>/になったのでしょうか?

    僕としては"http://hobe.com/で"http://<ipaddr>/hoge/"を表示させたかったのですが、
    現在では"http://<ipaddr>/"でも"http://<ipaddr>/hoge/"が表示されるようになっているのでしょうか?


    >というか、Apacheは起動したのですね。
    ありがとうございます。ynakanoさんのおかげです。

    キャンセル

  • 2016/11/22 20:24

    私の認識で流れを整理します。

    ・最初、バーチャルホスト設定のためのvhost.confの書き方について話をしていました。
    ・それが片付いたのでApacheを起動させようとしたら、起動しませんでした。
    ・なのでまずはApacheを起動させ、バーチャルホストの話は一旦脇に置いて、IPアドレスベースでのアクセスでApacheの動作確認をしようとしていました。
    ※IPアドレスベースでのアクセスができないのにバーチャルホストもマルチドメインもないですから。

    なので、やっとバーチャルホスト設定の確認をするスタートラインに立ったと思っています。

    さて、Apacheに特定の名前でアクセス、ないしはIPアドレスでアクセスした際にどのコンテンツが表示されるかという点については、vhost.confの中身を全部見てみないと何とも言えません。

    また、ブラウザで閲覧する側のPC(ですかね)はhostsファイル等で名前解決できるようになっていることを(再度)確認してください。
    ※Apache側の名前解決ではないです。

    キャンセル

  • 2016/11/24 23:54

    回答ありがとうございます。遅くなり申し訳ありません。
    マルチドメインの設定前は"http://<ipaddr>/hoge"で表示されていました。
    しかし、vhosts.confに記述したhogehoge.comで何も表示されない。
    そしたらApache自体が動いていない状態だとご教示いただき、起動。
    その後、"http://<ipaddr>/hoge"での表示を試したところ、レイアウトが崩れている状態になっていました。また、hogehoge.comもまだ表示されていません。

    >ブラウザで閲覧する側のPC(ですかね)はhostsファイル等で名前解決できるようになっていることを(再度)確認
    すみません。この意味が理解しかねるのですが、vhosts.confに取得したドメインの記述ができているかを確認するということでしょうか?


    キャンセル

  • 2016/11/25 08:52

    またも基本的な話ですが、vhost.confにドメインを設定したからと言ってクライアントが勝手にそのドメイン名を認識してくれる訳ではありません。
    クライアントがWebサーバをhogehoge.comと呼ぶのか、example.comと呼ぶのかというのはクライアント側の「名前解決」の問題です。
    Webサーバ側は全く関知しません。
    「名前解決」が何をするかというと、hogehoge.comとかexpample.comという名前を指定したときに、それをIPアドレスに変換します。
    ドメイン名(FQDN)とIPアドレスの紐づけ情報です。
    ※全てのTCP/IP通信は一度IPアドレスに変換されてやり取りされます。ただし、アクセスされた側のWebサーバでは自分が「何という名前でアクセスされたか」は認識しています。

    vhost.confの設定の話は、Webサーバがアクセスされた「後」の話であり、その手前でクライアントがWebサーバのドメイン名とIPアドレスの紐づけ情報を持っていないと話になりません。

    その「名前解決」の方法には2つあります。
    ・クライアント側のhostsファイルにIPアドレスとFQDNを直接記述する。
    ・DNSにFQDNとIPアドレスの紐づけ情報を登録し、クライアントからDNSサーバを参照する。

    後者については、自分でDNSサーバを構築することもできますが(おそらく今は)それは度外視した方がよいでしょう。
    となると、所定の手続きを踏んでドメイン名を取得しDNSサーバに設定する必要があります。

    ※ak0909さんのコメントに「取得したドメイン」という表現があるのですが、これはきちんとドメイン名を取得したという意味でしょうか。

    一方、前者(hostsファイル)はあくまでクライアントに「勝手に」記載すればよいものなので、簡単にできます。

    名前解決がきちんとできているか否かは、クライアントからWebサーバに対してドメイン名を指定してpingを実行し、応答が得られるか否かで確認できます。
    ※ただしIPアドレスを指定してpingを実行したときに応答が得られている、という前提。
    ドメイン名指定のpingで応答が得られないのなら、vhost.confの設定がどうこうの問題ではなく、その手前の「名前解決」ができていないことになります。
    その場合はそちらを先に解決しなくてはなりません。

    また、レイアウト崩れの問題はコンテンツの中身が分からないので何とも言えません。
    ただし切り分けとしてvhost.confを読み込まない状態でアクセスをしてみて、読み込んだ時の表示との比較という方法はあるいと思います。

    キャンセル

  • 2016/12/01 04:01 編集

    返信おそくなってしまいもうしわけありません。
    >名前解決がきちんとできているか否かは、クライアントからWebサーバに対してドメイン名を指定してpingを実行し、応答が得られるか否かで確認できます。
    →応答はしております。

    >vhost.confを読み込まない状態でアクセスをしてみて、読み込んだ時の表示との比較という方法
    →vhost.confを削除してApacheを再起動すると、「hoge.com/wpのディレクトリ名」だとレイアウトもくずれることなく表示されます。
    ただ、hoge.comだと、ワードプレスを置いている(wpのディレクトリ名)同階層のindex.htmlを参照してしまっているようです。したいこととしては、hoge.comでhoge.com/wpのディレクトリ名のサイトを表示できるようにしたいです。これはマルチドメインの設定方法が間違っていたということでしょうか?

    キャンセル

  • 2016/12/01 08:31

    またも長くなったので整理します。

    ・Webサーバに"hoge.com"と"example.com"という名前をつけたい。(マルチドメイン)
    ・名前解決ができているので、"ping hoge.com"、"ping example.com"は応答が得られている。
    ※www.hoge.comやwww.example.comではない。

    という前提で話をします。

    コメント後段ですが、vhost.confの設定を無効にしている話なので、もはやマルチドメインとは無関係な話になっています。
    そのうえで一応コメントします。
    アクセス元のブラウザで"http://hoge.com/wp"と指定したら"http://hoge.com/wp"配下のコンテンツが正しく表示され、"http:/hoge.com/"と指定したら"http://hoge.com/index.html"が表示された、という事なのでしょうか。
    だとしたら至って正常な動作です。

    "http:/hoge.com/"と指定した時に"http://hoge.com/wp"配下のコンテンツを表示させたければ、"http://hoge.com/index.html"もしくはhtaccessファイルで”wp”ディレクトリにリダイレクトさせてください。

    ※そのやり方をどうするの?という話については別にトピックを立ててください。この流れですると訳が分からなくなりますので。
    ※繰り返しますが上記の話はマルチドメインとは何ら関係のない話です。

    キャンセル

  • 2016/12/01 11:00

    回答ありがとうございます。
    >マルチドメインとは何ら関係のない話です。
    例えばさくらのマネージドでしたら、コントロールパネルでパスの設定が可能なのですが、
    この設定はhtaccessをつかってリダイレクトしているということでしょうか?

    キャンセル

  • 2016/12/01 11:13

    申し訳ないのですが、さくらのコンパネでak0909さんが希望する設定ができるのか、またその実装がどうなっているのかは全く私には分かりません。
    さくら固有の問題ですので。

    キャンセル

  • 2016/12/02 10:13

    このような質問をしてしまい、申し訳ありません。
    てっきりマルチドメインの設定は
    パスにドメインを割り当てることだと勘違いしていたようです。
    例えば、www/html/wp1/のパスにはhoge.comのドメインを設定するというように。

    ynakanoさんには色々わかりやすい対応をして頂き感謝しておりまる。

    キャンセル

  • 2016/12/02 10:45

    以下の部分については完全な間違いではないです。

    > てっきりマルチドメインの設定は
    > パスにドメインを割り当てることだと勘違いしていたようです。
    > 例えば、www/html/wp1/のパスにはhoge.comのドメインを設定するというように。

    ただ、設定の考え方としては「ドメインに対して、サーバ上のどのディレクトリをDocumentRootにするのか」となるので、「パスにドメインを割り当てる」とは逆向きですが。

    キャンセル

  • 2016/12/02 10:51

    なるほどです。ありがとうございます。
    ではも一度上記の設定の考えかたについての質問を投稿し直します。
    親切に回答頂き感謝です。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.36%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Linux

    4214questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Apache

    1990questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。