Wie ein neuer Web-Server auf meinem Synology DS 207+ entstanden ist

Über meine ersten Schritte und Erfahrungen mit dem kleinen NAS-Server vor Synology habe ich bereits an anderer Stelle berichtet. Hier will ich nun beschreiben, wie ich den Apache-Web-Server neu aufgesetzt habe. Ziel dabei ist es, einen völlig neuen, mit allen notwendigen Funktionen ausgestatteten Web-Server zu installieren, der ohne die Restriktionen des mitgelieferten Web-Servers laufen kann.

Voraussetzungen für die Installation sind ein ftp-Client auf dem Windows-PC (muss man unter Programme/Windows-Funktionen aktivieren, falls man nicht irgendwelche andere Software für den Kontakt zu einem Linux-System hat. Den Telnet startet man unter Vista am besten in einem Administrator: Eingabeaufforderungs-Fenster, also einem cmd.exe-Fenster, welches man mit der Option als Adminstrator ausführen startet.

Auf dem Synology-Server legt man am besten zwei Gemeinsamen Ordner namens opt und web an. Der Ordner web kann schon bereits existieren, wenn man die Web Station mal aktiviert hatte. Am besten schaltet man unter Netzwerkdienste/Webdienste/Webanwendungen Web Station und MySQL aus.

Zum Zwecke der Installation der neuen Software brauchen wir ein Package Management System namens ipkg. Die Quellen und Anweisungen für die Installation dieses Systems findet man hier. Für die Ausführung der Installation meldet man sich beim Synology-Server per ftp-Client an (user: root,  password: xxx (xxx ist das Passwort, welches man in der Administrationsoberfläche vereinbart hat). Man arbeitet dann sozusagen im Zeilenkommando-Modus.

Wichtige Kommandos sind:

ls -l listet den Inhalt eines Verzeichnisse an
cp file1 file2 kopiert file1 nach file2
pwd zeigt den Namen des Verzeichnisses an, auf dem man gerade steht
cd dir1 wechselt in des Verzeichnis dir1 (/ ist das oberste Verzeichnis)
find / -name file1 -print sucht die Datei file1 und zeigt den/die Pfad(e) an
ps -l | grep file1 zeigt an, ob und wie oft das Programm file1 läuft
vi file1 Editoraufruf für Datei file1
ipkg list zeigt die möglichen zu installierenden Pakete an
ipkg install paket1 installiert paket1

 

Nachdem ipkg installiert ist (dabei wird schon ein Menge Zeugs in das Verzeichnis /opt kopiert), kann man die Software für den Web-Server installieren:

ipkg install php-apache und
ipkg install php-mysql und eventuell noch
ipkg install php-pear

Der neu-installierte Apache-Server müßte laufen (mit ps -l | grep httpd) überprüfen. Man kann den Apache-Server mit folgender Zeile beeinflussen:

/opt/etc/init.d/S80apache start|stop|restart

Zusammenhang: Dienste werden durch die Datei /etc/rc gestartet; diese ruft auch die Datei /etc/rc.local auf. Diese wiederum ruft die Datei /opt/etc/rc.optware auf. Dort wiederum wird nachgeschaut, ob im Verzeichnis /opt/etc/init.d Dateien mit S anfangen (S wie Start). Wenn ja, werden diese ausgeführt. Mit dieser Verkettung wird also beim Systemstart irgendwann das Skript S80apache (S-8-Null-apache) aktiviert.

Der Apache-Web-Server wird durch die Datei /opt/etc/apache2/httpd.conf konfiguriert. Hier muss man IP-Adresse oder Name des Servers, Port-Nummer, usw. einrichten. Ist recht gut kommentiert, und man findet hierzu gute Anleitungen. Ist so einzurichten wie bei jedem Apache-Web-Server. Wichtig sind nun zwei Dinge, damit es gleich auf der DS 207+ läuft:

(1) den Pfad für für die Web-Pages anpassen:

DocumentRoot "/volume1/web"  

Damit hätte man wieder den Order, der auch bei den Web-Diensten angelegt und vielleicht schon verwendet wurde.

(2) den Pfad für die PHP-Modul-Zuordnung eintragen:

Include etc/apache2/conf.d/php.conf

Bitte auch überprüfen, ob diese Datei die Eintragungen:

LoadModule libexec/libphp5.so 
AddType application/x-httpd-php .php

enthält.

Apache-Web-Server restarten mit:

/opt/etc/init.d/S80apache restart 

damit die Änderungen auch wirksam werden.

Nun ist die Konfiguations-Datei für PHP an der Reihe: /opt/etc/php.ini. Auch hier bitte in der einschlägigen Dokumentation nachschauen, was man damit so alles anstellen kann. Nachprüfen, ob die extension=dom.so, xml.so und xsl.so eingetragen sind und unter der Rubrik [MySQL] überprüfen, ob der

mysql.default_port = 3306

eingetragen ist. Falls was geändert wird und sich dann nicht auswirkt, nochmal den Apache restarten.

Auch MySQL hat noch eine Konfigurations-Datei: /opt/etc/my.cnf. Hier wird unter anderem die Einstellungen für den Port aus Sicht von MySQL vorgenommen. Aber für das erstmalige Funktionieren, braucht man nichts eintragen oder ändern. Falls man etwas ändert, muss man auch den MySQL-Server wieder neu starten. Leider funktionierte der restart bei mir nicht, daher:

/opt/etc/init.d/S70mysqld stop
/opt/etc/init.d/S70mysqld start

Für die Datenbank-Administration empfiehlt sich phpMyAdmin, mit dem man seine Datenbanken anlegen und pflegen (auch sichern) kann. Die eigentlichen Datenbankinhalte stehen übrigens jetzt unter /opt/var/lib/mysql. Das ist manchmal für die physikalische Sicherung einer Datenbank von Bedeutung - wobei auch klar sein muss, dass es wenig Sinn hat, im laufenden Betrieb zu sichern.

Nachdem ich nun noch meine Web-Pages mit dem Windows-Explorer ins Verzeichnis /volume1/web kopiert habe und ein wenig meine .htaccess-Files (wegen mod_alias und mod_rewrite) angepasst habe, läuft alles wie am Schnürchen.

3 Kommentare:

Anonym schreibt:

Vielen Dank für dieses tolle Tutorial, nur leider fehlt mir ein entscheidener Schritt.
Wie bringe ich jetzt meine Diskstation dazu den neuen Apache statt den alten zu laden?
Oder hab ich etwas falsch gemacht?

Wolfgang Kowalski schreibt:

hi stephan,
wenn du den neuen Apache installiert hast, laufen insgesamt 3 Apache-Server auf der DS: einer auf Port 5000/5001, der sogenannte sys-Apache, der den Disk Station Manager anzeigt; der urspüngliche user-Apache der DS und dein neu installierter Apache. Die letzteren beiden wahrscheinlich auf Port 80. Nun kannst du via der jeweiligen httpd.conf die Ports feinjustieren: ich hab den user-Apache zum Beispiel auf Port 81 laufen.

Man kann den user-Apache auch anhalten: Dafür muss man die /usr/syno/etc&rc.d/S97apache-user.sh einfach umbennen in X97apache-user.sh und schon startet der beim nächsten System nicht mehr.

Würde ich aber nicht machen, weil damit auch Photo-Blog usw. nicht mehr gehen. Ich würde die Port-Änderungen vorziehen.
Ansonsten ist alles so wie bei allen Apache 2-Servern ... sieh dich mal nach einem guten Handbuch um - ich schlag auch immer nach, wenn ich was neues ausprobiere.

Anonym schreibt:

Nach einer Neu-Installation hats geklappt. Der Apache läuft jetzt auf Port 8000.

Vielen Dank nochmal!