WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Enkel hantering av flertal domäner i apache (https://www.wn.se/forum/showthread.php?t=11837)

skorge 2006-01-16 17:07

Hostar idag en linux-server som hanterar 7 separata domäner. Börjar få en stor config-fil med vhosts och planerar optimera detta lite. Planerna är:

Skapa en separat config för varje domän. Apache läser ju av samtliga filer i en folder med hjälp av Include, så detta borde bli smidigt.

Vad jag vill åstakomma är igentligen en script-fil för varje ny domän som skapar en ny apache-config med vhost-datan, skapar en mysql-databas med användare och slutligen lägger in en ny ftp-user i en mysql-table som jag sedan tidigare kopplat mot proftpd.

Min fråga är därför:

Har någon erfarenheter av detta sedan tidigare och kan komma med tips? (Ett webbhotell måste ju ha något smidigt sätt för nya kunder?)

Finns det någon som har lust att dela med sig av ett färdigt script för beskådan?

Har någon bra länktips för en användarguide för detta?

Alla tips är tacksamma. Är hyfsat bekant med Linux (främst Debian).

Michael Skorge

skorge 2006-01-17 14:39

Okay, verkar vara lite för invecklat för att jag ska få svar. Omformulerar min fråga:

Hur gör du/ni för att på ett enkelt sätt hantera vhosts i apache?

Jonas 2006-01-17 18:12

http://pookey.co.uk/shapvh-apache.xml

JonathanS 2006-01-17 18:26

Kolla in mod_rewrite (http://httpd.apache.org/docs/1.3/misc/rewriteguide.html).

Om än att det är väldigt komplext (black magic/voodoo programming) så finns det ingenting som slår detta när det gäller hantering av väldigt många vhosts i Apache.

skorge 2006-01-18 11:34

Tack för era tips! Mycket intressant läsning må jag säga. Eventuellt kommer jag kika mer på det framöver då det börjar fylla på med fler domäner. Löste mina problem med ett enkelt script dock:

Kod:

#!/bin/bash
echo "Enter the domain-name:"
read DOMAIN

echo "Enter aliases - *.domain.com:"
read ALIAS

cat /root/scripts/vhosts/vhost.model.conf | \
sed -e "s/\\\$DOMAIN/$DOMAIN/g" | \
sed -e "s/\\\$USERNAME/$WUSERNAME/g" | \
sed -e "s/\\\$ALIASES/$ALIASES/g" > \
"/etc/apache/domains/$DOMAIN.conf"

mkdir /var/www/$DOMAIN

Kanske kan vara till hjälp för någon.

Jonas 2006-01-18 11:46

Skorge> Hur ser din vhost.model.conf ut då?

Var får du $USERNAME eller $WUSERNAME ifrån?

skorge 2006-01-18 14:57

Sorry... råkade posta en lite för tidig version av mitt script. Plockade idéer från ett annat script och fick med lite för mycket =)

Nedan följer det riktiga scriptet och vhost-modellen:

Kod:

#!/bin/bash
echo "Enter the domain-name:"
read DOMAIN

echo "Enter aliases - *.domain.com:"
read ALIAS

# Create the virtual host config
cat /root/scripts/vhosts/vhost.model.conf | \
sed -e "s/\\\$DOMAIN/$DOMAIN/g" | \
sed -e "s/\\\$ALIAS/$ALIAS/g" > \
"/etc/apache/domains/$DOMAIN.conf"

echo "Configuration created for $DOMAIN"

mkdir /var/www/$DOMAIN
echo "Restarting Apache..."
apachectl restart
echo "Apache restarted!"

Kod:

<VirtualHost *>
DocumentRoot  /var/www/$DOMAIN
ServerName  $DOMAIN
ServerAlias  $ALIAS
CustomLog    /var/log/apache/$DOMAIN.log combined
</VirtualHost>

v-host filen hämtas in genom include på ett folder i httpd.conf


Alla tider är GMT +2. Klockan är nu 15:42.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson