Wie mache ich ein Verzeichnis im Site-Stammverzeichnis zu einer Subdomain?

7

Ich habe eine Ubuntu LAMPWebsite gehostet bei vps.net.

Ich habe ein Verzeichnis namens john, auf das über mysite.com/johnzugegriffen werden kann. Ich möchte, dass stattdessen über zugegriffen wirdjohn.mysite.com

Mein Site-Stamm ist /var/wwwund dieses Verzeichnis ist bei/var/www/john

Was muss ich tun, um dies zu erreichen?

JD Isaacks
quelle
Erläuterungen, bitte: 1) Ist es in Ordnung, wenn sowohl mysite.com/john als auch john.mysite.com funktionieren? 2) Sollte ein Unterverzeichnis automatisch in eine Unterdomäne konvertiert werden oder nur die, die Sie konfigurieren?
Bittrance
@ Bittrance, ich würde nur john.domain Arbeit bevorzugen und nicht domain / john, aber es ist keine große Sache so oder so. Auch nur für diejenigen, die ich konfiguriere, obwohl ich auch daran interessiert wäre, wie man es für jedes Verzeichnis automatisch macht.
JD Isaacks
Um neue Dirs zu Subdomains zu machen, ist ein Skript erforderlich, AFAIK. Denken Sie nicht, dass Sie dies in Apache-Konfigurationsbegriffen ausdrücken können.
Bittrance

Antworten:

13

Erstellen Sie eine neue Site-Datei unter /etc/apache2/sites-available/john.mysite.com

Richten Sie die Site folgendermaßen ein:

<VirtualHost *:80>
    ServerName john.mysite.com
    DocumentRoot /var/www/john
    <Directory /var/www/john/>
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Aktivieren Sie die Site mit a2ensite john.mysite.com

Laden Sie Apache neu, um die Site zu aktivieren: service apache2 restart

Shane Madden
quelle
Ich habe es versucht, - ich habe es durch mysite.commeine eigentliche Site ersetzt und Apache anders neu gestartet: /etc/init.d/apache2 reload.. Ich habe keine Fehler erhalten, aber es scheint nicht zu funktionieren. Kann ich etwas anderes vermissen? oder dauert es eine Weile zu arbeiten? Vielen Dank.
JD Isaacks
@ John: Wie in einer der anderen Antworten erwähnt, müssen Sie DNS einrichten, um auch auf die Site zu verweisen. DNS wird einige Zeit dauern, aber der Apache-Teil wird wirksam, sobald Sie den Dienst neu starten.
Shane Madden
Danke, ich habe gerade den DNS eingestellt, also werde ich eine Weile warten und sehen, ob es funktioniert. :)
JD Isaacks
eine letzte Sache. httpzeigt auf, /var/www/johnaber httpszeigt auf nur /var/wwwirgendwelche Ideen? Vielen Dank.
JD Isaacks
@John Sie müssen einen SSL VirtualHost für den SSL-Listener konfigurieren. Sie können ihn aus der default-sslDatei unter modellieren /etc/apache2/sites-available/. Beachten Sie, dass das Zertifikat eine Warnung ausgibt, wenn es nicht mit dem Domainnamen übereinstimmt.
Shane Madden
3

Vergessen Sie neben der Konfiguration von Apache nicht auch den DNS-Teil: Sie benötigen einen Eintrag für john.mysite.com, der auf dieselben IP-Adresspunkte mysite.comverweist (auf einen A-Eintrag) oder auf sich mysite.comselbst (wenn Sie einen CNAME-Eintrag verwenden).

Massimo
quelle
Danke, ich habe getan, was Shane Madden vorgeschlagen hat. Ich habe auch gerade die Subdomain im DNS-Manager von vps.net hinzugefügt, um auf dieselbe IP zu verweisen, wie Sie gesagt haben. Es funktioniert immer noch nicht. Würde es eine Weile dauern, bis es funktioniert?
JD Isaacks
1
Ja, öffentliches DNS hat immer eine gewisse Latenz. Wenn Sie Änderungen vornehmen, dauert es eine Weile (normalerweise 24 bis 48 Stunden), bis sie vom gesamten Internet bestätigt werden. Wenn Sie es testen möchten, können Sie einen Eintrag in die Hosts-Datei eines beliebigen Computers einfügen, um john.mysite.com der IP-Adresse des Servers zuzuordnen, und anschließend die URL in seinem Browser testen.
Massimo
2

Diese Schritte haben bei Ubuntu 12.04 LTS x86_64 für mich funktioniert:

Sie müssen eine neue Site-Datei unter erstellen /etc/apache2/sites-available/john.mysite.com.conf

Die Erweiterung .confist sehr wichtig, ohne sie wird der Rest nicht funktionieren !!

Richten Sie die Site dann folgendermaßen ein:

<VirtualHost *:80>
    ServerName john.mysite.com
    DocumentRoot /var/www/john
    <Directory /var/www/john/>
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Speichern Sie die Änderungen und aktivieren Sie die Site mit dem folgenden Befehl:

sudo a2ensite john.mysite.com

Laden Sie Apache neu, um die Site zu aktivieren mit:

sudo service apache2 reload

Starten Sie den Apache-Dienst neu:

sudo service apache2 restart

Danach müssen Sie DNS so einrichten, dass es auch auf die Site verweist (als Subdomain). DNS dauert einige Zeit, aber meiner Erfahrung nach dauert es nur einige Minuten (15).

Hoffe das hilft!! :) :)

Galoget
quelle
0

Sie müssen einen vhost für Ihren Webserver erstellen (unter der Annahme von Apache), der mindestens die folgenden Informationen enthält

<VirtualHost *:80>
ServerName john.mysite.com
DocumentRoot /var/www/john
</VirtualHost>

Dies ist keine endgültige vhost-Datei, sondern ein Ausgangspunkt. Sie sollte sich am Ende Ihrer httpd.conf-Datei oder überall dort befinden, wo Ihr System vhosts verwaltet

Anthonysomerset
quelle