こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

2つ目のウェブサイトを公開するには?

Virtual Hostの設定方法について。
クライアント・マシン
Windows10
ホームペービルダー22インストール済み

サーバ・マシン
Ubuntu20.04 desktop
File Zillaでホームページビルダー22のコンテンツを転送してもらい
ドキュメントルート/var/www/htmlでホームページを公開しました。

2つ目のウェブサイトを公開しようとしています。
サーバ・マシンの/etc/apache2/sites-available/000-default.confの設定。
<VirtualHost *:80>
ServerName www.abcdef7799.com
ServerAdmin ***.gmail.com
DocumentRoot /var/www/html
</VirtualHost *:80>

<VirtualHost *:80>
ServerName www.abcdef2288.com
ServerAdmin ***.gmail.com
DocumentRoot /var/www/ghijklmn1
</VirtualHost *:80>

https://www.google.com/search?client=firefox-b-d&q=%EF%BC%B6irtual+...
上記、複数のURLを参照しましたが、頭がゴチャゴチャしてきました。

完全に間違った方向に進んでいるのかも知れません。
あまり、いじると訳分らなくなりそうで、傷が大きくならないうちに
質問致しました。

1番簡単な方法で2つ目のウェブサイトを表示させるにはどうすればいいでしょうか?

いつも大変お世話になり、誠にありがとうございます。

判らないで困っています。

ご多忙中恐れ入ります。

ご回答のほど、宜しくお願い申し上げます。

投稿日時 - 2020-08-02 07:44:57

QNo.9780313

暇なときに回答ください

質問者が選んだベストアンサー

まだ試行錯誤から抜けられませんか?
/etc/apache2/sites-available/000-default.confの書き方が理解できないのでしょうね。
先頭行の<VirtualHost *:80>はホスト名を具体的に定義しなければならないようです。
ワイルドカードの「*」でホスト名を省略するとホスト名でアクセス先を区分けできずに先頭のDocumentRootを参照してしまうようです。
1つのIPアドレスを複数のホスト名で運用するのですから定義を正しく書かないとアクセス先を振り分けてくれません。
www.abcdef7799.comの定義は<VirtualHost www.abcdef7799.com:80>で始まり</VirtualHost>で締め括ります。
尚、当方ではローカルでの動作確認なのでDNSを使わずにhostsファイルでプライベートIPアドレスに対するホスト名を定義して確認しました。
000-default.confファイルに複数のホストを定義する方法とhogehoge.confのようなファイル名で複数のファイルを使う方法がありますので管理し易い方法で定義してください。

投稿日時 - 2020-08-05 14:19:43

補足

【000-default.confファイルに複数のホストを
定義する方法】

ドメイン名(ホスト名?)はどうやって決めるのですか?

質問が悪いかも知れません。

あるサイトで、
サブドメインとサブディレクトリーがあると読みました。
https://www.seohacks.net/basic/knowledge/subdomain-subdirectly/

勝手に使っては表示されないですよね。
どうやって使えるようにするのですか?
ご回答のほど、宜しくお願い申し上げます。

投稿日時 - 2020-08-05 21:47:02

お礼

<VirtualHost www.abcdef7799.com:80>で始まり</VirtualHost>で締め括ります。

すみません。

この間には、例えばどんな文を書きますか?
おかしな質問かも知れません。
どうか、ご回答を宜しくお願い申し上げます。

投稿日時 - 2020-08-05 21:22:53

ANo.7

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.9

>この間には、例えばどんな文を書きますか?
既に試されている内容で再試行してみれば良いでしょう。
動作を確認されるときブラウザのキャッシュをクリアしないと更新内容が反映されないかも知れません。

>ドメイン名(ホスト名?)はどうやって決めるのですか?
DNSへ登録されたものを使用しないとアクセスできないことを既に知らせています。(回答を読み返してください)

>どうやって使えるようにするのですか?
ドメイン、サブドメインについての学習が必要なことも別の質問で既に回答していますよ。(応用力の不足で分からないだけ)
この場では初歩から応用まで一貫した説明ができませんので専門の教育機関で有料の講習を受けてください。

投稿日時 - 2020-08-06 07:58:25

お礼

ありがとうございます。

投稿日時 - 2020-08-08 23:28:43

ANo.8

>ServerName www.abcdef2288.comは任意で付けた名前です。
レジストラに依頼してDNSに登録されたWebサーバー名でなければ第三者は読めません。(Webサイトの公開にならない)
自己のドメインにサブドメインを追加することはできますがDNSサーバーの管理者にサブドメインの登録をしてもらう必要があります。
DNSとグローバルIPアドレスの関係を理解していないとVirtualHost での複数のWebサイトを扱うことができません。

>これらの書き方はどうするのでしょうか?
回答No.7を参照してください。

投稿日時 - 2020-08-05 19:08:36

お礼

ありがとうございます。

投稿日時 - 2020-08-08 23:29:22

ANo.6

>sudo systemctl restart apache2
>はconfファイルが乱れているからfailedになります。
confファイルの締め括りが構文の誤りになっています。
</VirtualHost *:80>
    ↡ 修正
</VirtualHost>

尚、「ServerAdmin」は連絡先のメールアドレスなので「***.gmail.com」は不適切です。(構文エラーではない)
また、構文エラーが無い場合で定義の文字列に誤りがあってもデーモンは再起動すると思います。(目的通りの表示にならないだけ)

投稿日時 - 2020-08-03 20:58:45

お礼

「***.gmail.com」は「***@gmail.com」の
誤りです。
【技術評論社・サーバ構築の実際がわかるApache[実践]
運用/管理 鶴長鎮一[著]】を読みましたが難しかったですよ。Virtual hostの事にはあまり触れてませんでした。
もう1回は読むつもりです。
ServerName www.abcdef7799.comはお名前ドットコムで購入したドメインでServerName www.abcdef2288.comは
任意で付けた名前です。これらの書き方はどうするのでしょうか?

色々と教えてくださり、誠にありがとうございます。
今後とも宜しくお願い致します。

投稿日時 - 2020-08-05 16:47:55

ANo.5

回答No.4の追加情報です。
confファイルを書き換えて保存した後に下記コマンドを実行してみると良いでしょう。(実証していません)
構文に問題があるときはエラーの内容を表示するはずです。

sudo apache2ctl configtest

投稿日時 - 2020-08-03 13:58:49

お礼

ありがとうございます。

投稿日時 - 2020-08-08 23:29:49

ANo.4

>ボクは根本的に判っていないと思います。
Apacheの高度な使い方を学習しないと無理かも知れません。
httpd.confファイルの書き方だけではVirtual Hostで複数ドメインを運用することにつながりません。
運用するドメインを「Whois検索」で同じIPアドレスであることを確認してください。

>confファイルが乱れているからfailedになります。
「ファイルが乱れている」という表現は一般的ではありません。
コンフィグファイルはサービスの仕様書なので書式に誤りがあれば動作しないことになってます。(プログラムの構文エラーと同様です)

>どう書き直せば2つのサイトが表示されますか?
コンフィグファイルが正しい記述になってもApacheの再起動でエラーが出ないだけで2つのサイトが正常に表示されるとは限りません。
稼働中の公開サーバーで試行錯誤するのは好ましくありませんのでローカルの閉鎖LANにモデルを組み込んで学習を積んでから実機へ応用すると良いでしょう。

投稿日時 - 2020-08-03 06:56:32

お礼

ありがとうございます。

投稿日時 - 2020-08-08 23:30:07

ANo.3

>ボクは根本的に判っていないと思います。

それがわかってるのなら、わかるように努力してください。
あなたは何かでたらめにやってみる、もしくは教えてもらった通りにやってみる、それでできたら「できたー」と喜んでそれで終わり。
なぜそれでできるようになったのかとか考えないじゃないですか。
そんな事で根本的にわかるようになるわけがありません。

で、私は#2で何て書いてますか?
それやりましたか?

>sudo systemctl restart apache2
>はconfファイルが乱れているからfailedになります。

何からfailedになった原因を「confファイルが乱れているから」と判断したんですか?

投稿日時 - 2020-08-03 00:06:50

お礼

出来た時は根本的に解ってますよ。

へりくだって、マグレで・・・。

と言っているのです。

検索して、解るなら、質問しません。

投稿日時 - 2020-08-03 00:29:06

ANo.2

>1番簡単な方法で2つ目のウェブサイトを表示させるにはどうすればいいでしょうか?

あなたの場合、基礎知識が圧倒的に不足してるので、
その「1番簡単な方法」で頭がごちゃごちゃしている状態だと思うのですけど(そもそもVirtualHostの設定自体は難しいものじゃない)。

まずは
https://httpd.apache.org/docs/2.4/ja/vhosts/name-based.html
に書かれている内容を読んで理解することをおすすめします。

投稿日時 - 2020-08-02 09:30:19

お礼

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

<VirtualHost *:80>
ServerName www.abcdef7799.com
ServerAdmin ***.gmail.com
DocumentRoot /var/www/html/xxxxx1
</VirtualHost *:80>

<VirtualHost *:80>
ServerName www.abcdef2288.com
ServerAdmin ***.gmail.com
DocumentRoot /var/www/html/xxxxx2
</VirtualHost *:80>

上記では表示しません。
ボクは根本的に判っていないと思います。
sudo systemctl restart apache2

はconfファイルが乱れているからfailedになります。

どう書き直せば2つのサイトが表示されますか?

ご多忙中恐れ入ります。

ご回答のほど、宜しくお願い申し上げます。

投稿日時 - 2020-08-02 23:23:41

ANo.1

>2つ目のウェブサイトを公開しようとしています。
1台のLinuxマシンに多数のWebサイトを設置してレンタルサーバーの運用を考えているのでしたらApacheの学習をしないと無理でしょう。
また、ユーザーがドメインを取得していることも必要になります。
更に、FTPサーバーのセキュリティについても専門知識が必要になります。
このサイトで質問しても解決は困難と思います。

投稿日時 - 2020-08-02 08:25:31

補足

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

<VirtualHost *:80>
ServerName www.abcdef7799.com
ServerAdmin ***.gmail.com
DocumentRoot /var/www/html/xxxxx1
</VirtualHost *:80>

<VirtualHost *:80>
ServerName www.abcdef2288.com
ServerAdmin ***.gmail.com
DocumentRoot /var/www/html/xxxxx2
</VirtualHost *:80>

上記では表示しません。
ボクは根本的に判っていないと思います。
sudo systemctl restart apache2

はconfファイルが乱れているからfailedになります。

どう書き直せば2つのサイトが表示されますか?

ご多忙中恐れ入ります。

ご回答のほど、宜しくお願い申し上げます。

投稿日時 - 2020-08-02 23:26:16

お礼

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

投稿日時 - 2020-08-02 23:25:18

あなたにオススメの質問