Auf meiner Entwicklungsmaschine (Debian 10) läuft ein lokaler Apache2- und MariaDB-Server. Ich verwende virtuelle Hosts, damit mehrere Websites gleichzeitig verfügbar sein können. Um mein Ziel zu erreichen, gehe ich die folgenden Schritte durch:
1) Erstellen und bearbeiten Sie die Conf-Datei für die Website.sudo nano /etc/apache2/sites-available/website.conf
2) Füllen Sie die Datei mit folgendem:
<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) Bearbeiten Sie die Hosts-Datei sudo nano /etc/hosts
und fügen Sie die folgende Zeile hinzu:127.0.0.1 website.local
An diesem Punkt funktioniert es. Wenn ich gehe, http://website.local
werde ich auf die neu erstellte lokale Website umgeleitet.
Wenn ein anderer Computer auf die IP-Adresse meines PCs zugreift (sagen wir, er ist …), 10.0.0.100
greift er auf meine /var/www/html/index.html
Datei zu. Ich habe keine Ahnung, warum das funktioniert, da ich es nie eingerichtet habe. Aber es funktioniert.
Mein Wunsch: Wenn ich 10.0.0.100
auf einem PC in meinem Netzwerk auf gehe, öffnet sich eine Seite, auf der ich (manuell) eine Liste platzieren kann, die zu den lokalen Websites weiterleitet, die ich habe. Zum Beispiel:
<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>
Ich möchte in die richtige Richtung gelenkt werden, da ich im Moment nicht weiß, wie ich das erreichen soll.
Antwort1
Was Sie tun möchten, könnte erreicht werden, indem Sie die entsprechenden Namen (auch bekannt als website.local
) bei Ihrem Netzwerk-DNS registrieren.
Ein Name wie dieser website1.10.0.0.100
ist einfach unmöglich selbst zu implementieren, da er mit einer Zeichenfolge ( website1
) beginnt und von jedem Client als FQDN betrachtet wird. Daher wird jeder Client versuchen, herauszufinden, welcher DNS-Server für die .100
Top-Level-Domain maßgebend ist ... und wie Sie wahrscheinlich vermutet haben, existiert diese TLD nicht.
Der einfachste Weg, drei verschiedene Sites auf Ihrem Computer zu implementieren, ohne DNS zu ändern, ist:
Verwenden Sie drei verschiedene IP-Adressen auf Ihrem Computer (mit
ifconfig eth0 add 10.0.0.101
,ifconfig eth0 add 10.0.0.102
, usw.)Implementieren Sie IP-basierte virtuelle Hosts auf Ihrem Apache.
Haben Sie eine Startseite, die so aussieht:
<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>
Eine andere (kompliziertere) Möglichkeit zur Implementierung wäre:
Implementieren Sie auf Ihrem Computer einen eigenen DNS-Server, der beispielsweise für die
.bibicomputer
TLD maßgebend ist.In Ihrer
bibicomputer
DNS-Zone verweistwebsite1.bibicomputer
,website2.bibicomputer
, usw. auf Ihre IP-Adresse.Bitten Sie Ihre Arbeitskollegen, Ihre IP-Adresse zu ihrer DNS-Liste hinzuzufügen (unter Linux:
/etc/resolv.conf
).
Aber ich wette, dass den IT-Leuten in Ihrem Unternehmen diese Lösung nicht gefallen wird.