Hallo Leute,
ich möchte die Server-Konfigurationsdatei (die bei mir im Apache2-Verzeichnis '/etc/apache2/sites-available/[SERVERNAME]' steht und mit 'a2ensite [SERVERNAME]' aktiviert wird) automatisch bearbeiten.
Dazu habe ich eine Scriptdatei "webbuild.sh" erstellt.
An dieser Datei werden beim Aufruf Parameter angehängt - so die Parameter für "projektname", "mainfolder", "subfolder" und "serveradminmail", welchen den jeweiligen Variablen "v_projektname", "v_mainfolder", "v_subfolder" und "v_serveradminmail" übergeben werden.
Da ich für eine Domain manchmal mehrere Webprojekte (z.B. eine Onlineversion und eine Testversion) anlegen muss, darf eine bestehende Webseite nicht beeinträchtigt werden wenn ich eine Testseite löschen oder erstellen will.
Bestandteile meines Scriptes sind: das erstellen der benötigten Verzeichnisse:
wenn ein Verzeichnis schon besteht, wird er hoffendlich nichts überschreiben, sondern sagen, dass das Verzeichnis schon existiert.
Jetzt der größere Codebereich: das Schreiben der Datei für Apache:
Dieser letzte Code ist meiner Meinung nach Mist:
lieber wäre mir:
1. prüfe ob die Konfigurationsdatei schon vorhanden ist
- NEIN: erstelle Sie und trage die zu erstellende Webseite ein
- JA: prüfe ob es schon einen Eintrag für den "v_subfolder" gibt,
- - NEIN: erstelle den Eintrag unterhalb der schon bestehenden Einträge
- - JA: prüfe ob der bestehende Eintrag mit dem übereinstimmt, was eingetragen werden soll
- - - NEIN: lösche die falschen einträge und füge die richtigen ein
- - - JA: alles ist ok
genauso mit dem Löschen:
1. prüfe ob die Datei vorhanden ist
- NEIN: alles ist ok
- JA: prüfe, ob der zu löschende Eintrag allein in der Datei steht
- - JA: lösche die ganze Datei
- - NEIN: lösche nur den relevanten Eintrag
Könnt Ihr mir bitte dabei helfen?
Oder ist es am Ende einfacher für Jede Subdomain einer Domain eine eigene Konfigurationsdatei zu erstellen? Also
Erste Datei mit der Hauptdomain:
Zweite Datei mit der Testdomain:
Kann man die getrennt voneinander erstellen, aktivieren und deaktivieren?
Danke im Voraus für eure Hilfe.
ich möchte die Server-Konfigurationsdatei (die bei mir im Apache2-Verzeichnis '/etc/apache2/sites-available/[SERVERNAME]' steht und mit 'a2ensite [SERVERNAME]' aktiviert wird) automatisch bearbeiten.
Dazu habe ich eine Scriptdatei "webbuild.sh" erstellt.
An dieser Datei werden beim Aufruf Parameter angehängt - so die Parameter für "projektname", "mainfolder", "subfolder" und "serveradminmail", welchen den jeweiligen Variablen "v_projektname", "v_mainfolder", "v_subfolder" und "v_serveradminmail" übergeben werden.
Da ich für eine Domain manchmal mehrere Webprojekte (z.B. eine Onlineversion und eine Testversion) anlegen muss, darf eine bestehende Webseite nicht beeinträchtigt werden wenn ich eine Testseite löschen oder erstellen will.
Bestandteile meines Scriptes sind: das erstellen der benötigten Verzeichnisse:
Code:
mkdir $v_mainfolder
mkdir $v_mainfolder/live
mkdir $v_mainfolder/test
mkdir $v_mainfolder/admin
mkdir $v_mainfolder/$v_subfolder
Jetzt der größere Codebereich: das Schreiben der Datei für Apache:
Code:
if [ $v_subfolder = "live" ]
then
while read -r line; do
echo "$line"
done <<EOF >/etc/apache2/sites-available/$v_projektnameklein
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername $v_domain
ServerAlias omain _domain v_domain
DocumentRoot $v_mainfolder/live
<Directory $v_mainfolder/live>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername test$v_domain
DocumentRoot $v_mainfolder/test
<Directory $v_mainfolder/test>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername admin$v_domain
DocumentRoot $v_mainfolder/admin
<Directory $v_mainfolder/admin>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
EOF
elif [ $v_subfolder = "test" ]
then
while read -r line; do
echo "$line"
done <<EOF >/etc/apache2/sites-available/$v_projektnameklein
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername $v_domain
ServerAlias omain _domain v_domain
DocumentRoot $v_mainfolder/live
<Directory $v_mainfolder/live>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername test$v_domain
DocumentRoot $v_mainfolder/test
<Directory $v_mainfolder/test>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername admin$v_domain
DocumentRoot $v_mainfolder/admin
<Directory $v_mainfolder/admin>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
EOF
else
while read -r line; do
echo "$line"
done <<EOF >/etc/apache2/sites-available/$v_projektnameklein
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername $v_domain
ServerAlias omain _domain v_domain
DocumentRoot $v_mainfolder/live
<Directory $v_mainfolder/live>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername test$v_domain
DocumentRoot $v_mainfolder/test
<Directory $v_mainfolder/test>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername admin$v_domain
DocumentRoot $v_mainfolder/admin
<Directory $v_mainfolder/admin>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername $v_subfolder$v_domain
DocumentRoot $v_mainfolder/$v_subfolder
<Directory $v_mainfolder/$v_subfolder>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
EOF
fi
lieber wäre mir:
1. prüfe ob die Konfigurationsdatei schon vorhanden ist
- NEIN: erstelle Sie und trage die zu erstellende Webseite ein
- JA: prüfe ob es schon einen Eintrag für den "v_subfolder" gibt,
- - NEIN: erstelle den Eintrag unterhalb der schon bestehenden Einträge
- - JA: prüfe ob der bestehende Eintrag mit dem übereinstimmt, was eingetragen werden soll
- - - NEIN: lösche die falschen einträge und füge die richtigen ein
- - - JA: alles ist ok
genauso mit dem Löschen:
1. prüfe ob die Datei vorhanden ist
- NEIN: alles ist ok
- JA: prüfe, ob der zu löschende Eintrag allein in der Datei steht
- - JA: lösche die ganze Datei
- - NEIN: lösche nur den relevanten Eintrag
Könnt Ihr mir bitte dabei helfen?
Oder ist es am Ende einfacher für Jede Subdomain einer Domain eine eigene Konfigurationsdatei zu erstellen? Also
Erste Datei mit der Hauptdomain:
Code:
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername $v_domain
ServerAlias omain _domain v_domain
DocumentRoot $v_mainfolder/live
<Directory $v_mainfolder/live>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
Code:
<VirtualHost *:80>
ServerAdmin $v_servadminmail
Servername test$v_domain
DocumentRoot $v_mainfolder/test
<Directory $v_mainfolder/test>
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
</VirtualHost>
Danke im Voraus für eure Hilfe.