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

このQ&Aのポイント
  • Windows10のクライアント・マシンとUbuntu20.04のサーバ・マシンを使用して、2つ目のウェブサイトを公開する方法について教えてください。
  • サーバ・マシンの/etc/apache2/sites-available/000-default.confファイルの設定を変更し、2つ目のウェブサイトのドキュメントルートを指定してください。
  • 参考にした複数のURLを確認しても、正しい方法がわからず困っています。簡単な方法で2つ目のウェブサイトを表示させるにはどうすればいいでしょうか?
回答を見る
  • ベストアンサー

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つ目のウェブサイトを表示させるにはどうすればいいでしょうか? いつも大変お世話になり、誠にありがとうございます。 判らないで困っています。 ご多忙中恐れ入ります。 ご回答のほど、宜しくお願い申し上げます。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.7

まだ試行錯誤から抜けられませんか? /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のようなファイル名で複数のファイルを使う方法がありますので管理し易い方法で定義してください。

hop7799
質問者

お礼

<VirtualHost www.abcdef7799.com:80>で始まり</VirtualHost>で締め括ります。 すみません。 この間には、例えばどんな文を書きますか? おかしな質問かも知れません。 どうか、ご回答を宜しくお願い申し上げます。

hop7799
質問者

補足

【000-default.confファイルに複数のホストを 定義する方法】 ドメイン名(ホスト名?)はどうやって決めるのですか? 質問が悪いかも知れません。 あるサイトで、 サブドメインとサブディレクトリーがあると読みました。 https://www.seohacks.net/basic/knowledge/subdomain-subdirectly/ 勝手に使っては表示されないですよね。 どうやって使えるようにするのですか? ご回答のほど、宜しくお願い申し上げます。

その他の回答 (8)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.9

>この間には、例えばどんな文を書きますか? 既に試されている内容で再試行してみれば良いでしょう。 動作を確認されるときブラウザのキャッシュをクリアしないと更新内容が反映されないかも知れません。 >ドメイン名(ホスト名?)はどうやって決めるのですか? DNSへ登録されたものを使用しないとアクセスできないことを既に知らせています。(回答を読み返してください) >どうやって使えるようにするのですか? ドメイン、サブドメインについての学習が必要なことも別の質問で既に回答していますよ。(応用力の不足で分からないだけ) この場では初歩から応用まで一貫した説明ができませんので専門の教育機関で有料の講習を受けてください。

hop7799
質問者

お礼

ありがとうございます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.8

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

hop7799
質問者

お礼

ありがとうございます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.6

>sudo systemctl restart apache2 >はconfファイルが乱れているからfailedになります。 confファイルの締め括りが構文の誤りになっています。 </VirtualHost *:80>     ↡ 修正 </VirtualHost> 尚、「ServerAdmin」は連絡先のメールアドレスなので「***.gmail.com」は不適切です。(構文エラーではない) また、構文エラーが無い場合で定義の文字列に誤りがあってもデーモンは再起動すると思います。(目的通りの表示にならないだけ)

hop7799
質問者

お礼

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

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

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

hop7799
質問者

お礼

ありがとうございます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>ボクは根本的に判っていないと思います。 Apacheの高度な使い方を学習しないと無理かも知れません。 httpd.confファイルの書き方だけではVirtual Hostで複数ドメインを運用することにつながりません。 運用するドメインを「Whois検索」で同じIPアドレスであることを確認してください。 >confファイルが乱れているからfailedになります。 「ファイルが乱れている」という表現は一般的ではありません。 コンフィグファイルはサービスの仕様書なので書式に誤りがあれば動作しないことになってます。(プログラムの構文エラーと同様です) >どう書き直せば2つのサイトが表示されますか? コンフィグファイルが正しい記述になってもApacheの再起動でエラーが出ないだけで2つのサイトが正常に表示されるとは限りません。 稼働中の公開サーバーで試行錯誤するのは好ましくありませんのでローカルの閉鎖LANにモデルを組み込んで学習を積んでから実機へ応用すると良いでしょう。

hop7799
質問者

お礼

ありがとうございます。

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.3

>ボクは根本的に判っていないと思います。 それがわかってるのなら、わかるように努力してください。 あなたは何かでたらめにやってみる、もしくは教えてもらった通りにやってみる、それでできたら「できたー」と喜んでそれで終わり。 なぜそれでできるようになったのかとか考えないじゃないですか。 そんな事で根本的にわかるようになるわけがありません。 で、私は#2で何て書いてますか? それやりましたか? >sudo systemctl restart apache2 >はconfファイルが乱れているからfailedになります。 何からfailedになった原因を「confファイルが乱れているから」と判断したんですか?

hop7799
質問者

お礼

出来た時は根本的に解ってますよ。 へりくだって、マグレで・・・。 と言っているのです。 検索して、解るなら、質問しません。

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.2

>1番簡単な方法で2つ目のウェブサイトを表示させるにはどうすればいいでしょうか? あなたの場合、基礎知識が圧倒的に不足してるので、 その「1番簡単な方法」で頭がごちゃごちゃしている状態だと思うのですけど(そもそもVirtualHostの設定自体は難しいものじゃない)。 まずは https://httpd.apache.org/docs/2.4/ja/vhosts/name-based.html に書かれている内容を読んで理解することをおすすめします。

hop7799
質問者

お礼

ご回答誠にありがとうございます。 <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つのサイトが表示されますか? ご多忙中恐れ入ります。 ご回答のほど、宜しくお願い申し上げます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

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

hop7799
質問者

お礼

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

hop7799
質問者

補足

ご回答誠にありがとうございます。 <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つのサイトが表示されますか? ご多忙中恐れ入ります。 ご回答のほど、宜しくお願い申し上げます。

関連するQ&A

  • Apache VirtualHost でワイルドカード(?)設定

    Apache2.2.3を利用しています。 virtualhost.confに50程度のサブドメインを、 下記のように設定をしています。 *************************************************** <VirtualHost *:80>   ServerName suzuki.example.com   DocumentRoot /var/www/html/suzuki/ </VirtualHost> <VirtualHost *:80>   ServerName sato.example.com   DocumentRoot /var/www/html/sato/ </VirtualHost> <VirtualHost *:80>   ServerName yamada.example.com   DocumentRoot /var/www/html/yamada/ </VirtualHost> ・ ・ ・ *************************************************** つまり *************************************************** <VirtualHost *:80>   ServerName ▲▲▲.example.com   DocumentRoot /var/www/html/▲▲▲/ </VirtualHost> *************************************************** のようなルールになっているのですが、 これをワイルドカード使ってできないでしょうか? 宜しくお願いします!

  • アパッチのマルチドメインとcgi-binに関して

    にわかにアパッチを触っている者です。 よく分かっていないのですが教えて下さい、 アパッチでマルチドメインをする場合のサンプルとして、下記のようなものをよく見かけます。 <VirtualHost *:80> ServerName www.server1.com ServerAlias server1.com DocumentRoot /var/www/html1 </VirtualHost> <VirtualHost *:80> ServerName www.server2.com ServerAlias server2.com DocumentRoot /var/www/html2 </VirtualHost> これを踏まえて質問です。 ドキュメントルートのデフォルトが /var/www/html だとすると、cgi-binは、 /var/www/cgi-bin になっていますが、 ここにVirtualHostを追加したとしたら、 / ┗var/  ┗www/   ┣cgi-bin   ┣html ← 元のヤツ   ┣html1 ← VirtualHost1   ┗html2 ← VirtualHost2 こんな感じになりますよね? cgi-binって全サイト共通で作るべきものなのですか? / ┗var/  ┣www/  ┃┣cgi-bin  ┃┗html ← 元のヤツ  ┣www1/  ┃┣cgi-bin  ┃┗html ← VirtualHost1  ┗www2/   ┣cgi-bin   ┗html ← VirtualHost2 こんな風に作れと紹介されているのを見た事がありませんが。

  • CentOSでのマルチドメイン設定

    初めてのサーバー構築でCentOS5を導入し、teraTermから設定を行っています。 メインドメイン設定、FTP設定、httpd設定などを行い、メインドメインの表示まで完了しました。 ここで、マルチドメインを設定すべく、httpd.confの設定を行っているのですが、 うまくいかないので質問させて頂きました。 vi /etc/httpd/conf/httpd.confでファイルを修正。 メインドメインが一つあり、さらに二つのドメインを追加したいと考えています。 下記のようにバーチャルホストの設定したところ、 Server2は問題なく正常に表示されるのですが、Server3のドメインを ブラウザで入力すると、指定したパスのルートフォルダの場所ではなく、 メインドメインのルートフォルダが参照されてサイトが表示されます。 ※ドメイン表記は仮のものです。 #メイン <VirtualHost *:80> ServerAdmin main@main.com DocumentRoot /var/www/html/ ServerName main.com ServerAlias main.com ErrorLog logs/S1-error_log CustomLog logs/S1-access_log common </VirtualHost> #ドメイン2 <VirtualHost *:80> ServerAdmin s2@sample.com DocumentRoot /var/www/html/domain2.com/ ServerName domain2.com ServerAlias domain2.com ErrorLog logs/S2-error_log CustomLog logs/S2-access_log common </VirtualHost> #ドメイン3 <VirtualHost *:80> ServerAdmin s3@sample.com DocumentRoot /var/www/html/domain3.com/ ServerName domain3.com ServerAlias domain3.com ErrorLog logs/S3-error_log CustomLog logs/S3-access_log common </VirtualHost> まとめますと、メインドメイン、ドメイン2は正常に表示されるが、 ドメイン3がメインドメインのルートフォルダを参照してしまい、表示されない。 追加情報が必要な場合追記しますが、 二つ以上のマルチドメインをせっていする場合は、どのように設定したらよいでしょうか?

  • ApacheでVirtualHostを使うとDirectoryIndexが上手くいかない

    CentOS4.4で、Apache2.0を使っています。 バーチャルホストを使っていて、ドメインによって表示を分けるのはうまくいっています。 以下の抜粋のように設定しています。 http://foofoo.com/cgi-bin/hoge/hage/wiki.cgi http://foofoo.com/hoge/hage/wiki.cgi は問題なく実行できています。 <VirtualHost *:80> ServerAdmin xxxx@yyy.com DocumentRoot /var/www/html ServerName foofoo.com ScriptAlias /hoge/hage/ "/var/www/cgi-bin/hoge/hage/" </VirtualHost> 以下のように設定を変えても、 http://foofoo.com/cgi-bin/hoge/hage/ http://foofoo.com/hoge/hage/ へアクセスしても You don't have permission to access /tech/wiki/ on this server. となってしまいます。 <VirtualHost *:80> ServerAdmin xxxx@yyy.com DocumentRoot /var/www/html ServerName foofoo.com ScriptAlias /hoge/hage/ "/var/www/cgi-bin/hoge/hage/" <Location /hoge/hage/> DirectoryIndex wiki.cgi </Location> </VirtualHost> バーチャルホストを使う場合のDirectoryIndexの設定方法を教えてください。 よろしくお願いいたします。

  • バーチャルホストで、同じページをSSLとNon-SSLでアクセスできるようにしたい

    VPSでレンタルサーバをかりています。 (仮想のroot権限を持っています) で、バーチャルホストを以下のようにしています。 ====================================== NameVirtualHost xxx.xxx.xx.xx <VirtualHost xxx.xxx.xx.xx> <Directory /var/www/example.com/htdocs> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> ServerAdmin webmaster@example.com DocumentRoot /var/www/example.com/htdocs ServerName example.com ErrorLog /var/log/example.com-error_log CustomLog /var/log/example.com-access_log common </VirtualHost> <VirtualHost xxx.xxx.xx.xx> <Directory /var/www/www.example.com/htdocs> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> ServerAdmin webmaster@example.com DocumentRoot /var/www/www.example.com/htdocs ServerName www.example.com ErrorLog /var/log/www.example.com-error_log CustomLog /var/log/www.example.com-access_log common </VirtualHost> <VirtualHost xxx.xxx.xx.xx> <Directory /var/www/admin.example.com/htdocs> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> ServerAdmin webmaster@example.com DocumentRoot /var/www/admin.example.com/htdocs ServerName admin.example.com ErrorLog /var/log/admin.example.com-error_log CustomLog /var/log/admin.example.com-access_log common </VirtualHost> ====================================== で、 http://example.com/fdsfdshhfdsh http://www.example.com/fdsfdshhfdsh http://admin,example.com/fdsfdshhfdsh にアクセスできるわけですが、 https://example.com/fdkjsjf のようにSSLでアクセスできるようにしたいと思っています。 で、 「DocumentRoot /var/www/example.com/htdocs」はSSLなしの場合と同様にしたいと思います。 (SSL,NON-SSLは、ファイルを共有) こうするには、どうすればいいのでしょうか? どなたか教えていただければ幸いです。

  • 1つのIPアドレスでサブドメインをSSLにするには

    1つのIPアドレスでサブドメインをSSL通信にしたいと思います。 https://www.hoge.com https://geho.hoge.com しかしIPはひとつです。 その場合ジオトラストでワイルドカード証明書(サブドメインなら 無制限に増やせる)を取得して設定をしてみましたが設定がうまく行き ません。 流れとしてcentos5でhttpd.confにVirtualHostを設定しました。 こんな感じです。 <VirtualHost *:80> ServerAdmin admin@hoge.com DocumentRoot /var/www/www.hoge.com ServerName www.hoge.com ErrorLog /var/log/www.hoge.com.err CustomLog /var/log/www.hoge.com.log combined </VirtualHost> CSRを作成して認証してもらいssl.confの設定しました。 # General setup for the virtual host <VirtualHost *:443> DocumentRoot "/var/www/www.hoge.com" ServerName www.hoge.com:443 鍵も下記のように変更しました。 SSLCertificateFile /usr/local/certs/server.crt SSLCertificateKeyFile /usr/local/certs/server.key それでもなぜかドメインは一つかしか使えず、さらにhttpsで アクセスするとIEでは 「このページにはセキュリティで保護されている項目と保護されて いない項目が含まれます」 とエラーがでます。 サイトはPHPで構築したものですが小規模なサイトです。 非常に困っておりSSL通信をVirtualHost毎に行いたいと思います。 どうすれば良いかまったくわからない状態です。 アドバイスのほどよろしくお願いします。

  • VirtualHostの設定

    名前ベースのVirtualHostの設定を試してるのですが、 Permission denied: file permissions deny server accessとなり アクセスできません。wwwはアクセスできます。 サイトでいろいろ調べているのですが、解決できませんでした。 パーミッションも777に設定しています。httpd.confの設定を載せます。pperというユーザーを追加しました。 *ホストとドメインは仮名 NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html ServerName www.pani.mydns.jp ErrorLog logs/www.pani.mydns.jp-error_log CustomLog logs/www.pani.mydns.jp-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /home/pper/html ServerName test.pani.mydns.jp ErrorLog logs/test.pani.mydns.jp-error_log CustomLog logs/test.pani.mydns.jp-access_log common </VirtualHost>

  • 000-default.conf の説明。

    000-default.conf について。 下記の様にして教えてくれませんか?    記 # However, you must set it for any further virtual host explicitly. ServerName www.xxxxxxxxxx.com ServerAdmin hop7799@xxx.xxxx.xx <VirtualHost *:80> DocumentRoot /var/www/html DocumentRoot /var/www/html/mysite1 DocumentRoot /var/www/html/mysite2 ErroLog ${APACHE_LOG_DIR}/error.log CustomLog ${SPACE_LOG_DIR}/access.log combined </VirtualHost > # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg 宜しくお願い申し上げます。

  • BASIC認証エラー

    こんにちは、 下記の設定でapacheのbasic認証を設定しているのですが、 ユーザー名など入力しても、 認証がされません。 .htpasswdファイルは /var/www/html/kmtec/hp/pukiwiki/.htpasswd に存在しました。 #BASIC認証------------------------------------------------- <Directory /var/www/html/abc/hp/pukiwiki> AllowOverride Limit AuthConfig AuthType Basic AuthUserFile /var/www/html/abc/hp/pukiwiki AuthName "Member Certification" <Limit GET POST> require valid-user </Limit> </Directory> #----------------------------------------------------------- #バーチャルホスト------------------------------------------- NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin info@abc.com DocumentRoot /var/www/html/abc/test ServerName test.abc.com ServerAlias test.abc.com ErrorLog /var/log/httpd/error_abc_test_log CustomLog /var/log/httpd/access_abc_test_log common </VirtualHost> <VirtualHost *:80> ServerAdmin info@abc.com DocumentRoot /var/www/html/abc/hp ServerName www.abc.com ServerAlias abc.com *.abc.com ErrorLog /var/log/httpd/error_abc_log CustomLog /var/log/httpd/access_abc_log common </VirtualHost> #-----------------------------------------------------------

  • VirtualHostでIPとドメインアクセスで設定を分ける場合ドメインは1つでOKでしょうか?

    ドメイン指定の場合とIPでアクセスがあった場合で ドキュメントルートを分けたいのですが、 下記のようにサブドメイン1つでもVirtualHost可能でしょうか? <VirtualHost 210.100.100.100> DocumentRoot /var/www/html/htdocs ServerName www.a.jp </VirtualHost> <VirtualHost 210.100.100.100> DocumentRoot /var/www/html2/htdocs </VirtualHost>