開発マシン (Debian 10) でローカルの apache2 および mariaDB サーバーを実行しています。仮想ホストを使用して、複数の Web サイトを同時に利用できるようにしています。目標を達成するには、次の手順を実行します。
1) ウェブサイトの conf ファイルを作成して編集します。sudo nano /etc/apache2/sites-available/website.conf
2) ファイルに次の内容を入力します。
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName website.local
ServerAlias www.website.local
DocumentRoot /var/www/website/public_html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
3)sudo a2ensite website.conf
4)sudo systemctl reload apache2
5) hosts ファイルを編集しsudo nano /etc/hosts
、次の行を追加します。127.0.0.1 website.local
この時点では動作します。アクセスすると、http://website.local
新しく作成されたローカル Web サイトにリダイレクトされます。
他のコンピュータが私の PC の IP アドレスにアクセスすると (次のようにします)、10.0.0.100
私のファイルにアクセスします/var/www/html/index.html
。私はこれを設定したことがないので、なぜこれが機能するのかわかりません。しかし、機能します。
私の希望:10.0.0.100
ネットワーク内の PC にアクセスすると、ローカル Web サイトにリダイレクトするリストを (手動で) 配置できるページが開きます。例:
<ul>
<li><a href="http://website1.10.0.0.100/">Website1</a></li>
<li><a href="http://website2.10.0.0.100/">Website2</a></li>
<li><a href="http://website3.10.0.0.100/">Website3</a></li>
</ul>
現時点ではこれを実現する方法がわからないため、正しい方向を指示していただきたいと思います。
答え1
目的の操作は、対応する名前 (別名website.local
) をネットワーク DNS に登録することで実現できます。
のような名前は、website1.10.0.0.100
文字列 ( ) で始まるため、どのクライアントからも FQDN として認識されるため、独自に実装することは不可能ですwebsite1
。そのため、どのクライアントもトップ レベル ドメインで権限を持つ DNS サーバーを見つけようとします.100
。そして、おそらくご想像のとおり、この TLD は存在しません。
DNS を変更せずにマシン上に 3 つの異なるサイトを実装する最も簡単な方法は次のとおりです。
コンピューターに 3 つの異なる IP アドレスを設定します (
ifconfig eth0 add 10.0.0.101
、、ifconfig eth0 add 10.0.0.102
などを使用)Apache に IP ベースの仮想ホストを実装します。
次のようなフロントページを用意します。
<ul>
<li><a href="http://10.0.0.100/">Website1</a></li>
<li><a href="http://10.0.0.101/">Website2</a></li>
<li><a href="http://10.0.0.102/">Website3</a></li>
</ul>
これを実装する別の(より複雑な)方法は次のとおりです。
たとえば、TLD に対して権限を持つように、マシン上に独自の DNS サーバーを実装します
.bibicomputer
。bibicomputer
DNS ゾーンでは、website1.bibicomputer
、website2.bibicomputer
などが IP アドレスを指すようになります。同僚に自分の IP アドレスを DNS リストに追加するよう依頼してください (Linux の場合:
/etc/resolv.conf
)。
しかし、あなたの会社の IT 担当者はこの解決策を気に入らないでしょう。