Heute mal ein Beitrag in twitter-Manier (extra für isnochys):
telnet towel.blinkenlights.nl
Auf der Konsole ausführen und Spaß haben.
Heute mal ein Beitrag in twitter-Manier (extra für isnochys):
telnet towel.blinkenlights.nl
Auf der Konsole ausführen und Spaß haben.
Mit diesem Beitrag beginnt nun eine kleine Reihe, wie man verschiedene Serverdienste installiert und konfiguriert. Angefangen wird mit dem Versionskontrollsystem svn (auch unter dem Namen subversion bekannt) und zwei verschiedenen Datenbanksystemen: mysql und postgreSQL.
SVN wird über den Internet-Superserver xinetd betrieben und hört standardmäßig auf Port 3690. Die Repositories samt ihrer Konfigurationsdateien werden später unter “/var/svn” liegen und der Server wird unter dem Benutzer “svn” laufen.
Zunächst installieren wir xinetd und svn:
aptitude install xinetd subversion
Danach erstellen wir den svn-Benutzer:
adduser --system --group --no-create-home svn
Jetzt registrieren wir Port 3690 für svn:
/etc/services:
# Local services svn 3690/tcp # subversion svn 3690/udp # subversion
… erstellen den Ordner “/var/svn”:
mkdir /var/svn/ chown svn: /var/svn/ chmod 755 /var/svn/
… und konfigurieren xinetd, damit er auf Port 3690 Verbindungen für svn entgegennimmt und sie an den svnserve-Server weitergibt:
/etc/xinetd.d/svn
# default: on # description: Subversion server process service svn { disable = no socket_type = stream protocol = tcp user = svn wait = no port = 3690 server = /usr/bin/svnserve server_args = -i -r /var/svn/ }
Nun kann man mit dem telnet-Befehl von einem anderen Rechner aus testen, ob svn auf Port 3690 lauscht:
telnet SERVER_IP 3690Die Ausgabe sollte dann so aussehn:
Trying SERVER_IP... Connected to SERVER_IP. Escape character is '^]'. ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) ) Connection closed by foreign host.
Mittels des svnadmin-Tools kann man nun Repositories anlegen, verändern, löschen, …
svnadmin create --fs-type fsfs /var/svn/testRepo
Was man mit svn alles anstellen kann, wird hier sehr ausführlich beschrieben: http://svnbook.red-bean.com/. Dieses Buch ist wohl das Standardwerk, wenn es um svn geht und ein weiterer Stern am O’Reilly-Himmel und das Tollste ist: die Online-Version kostet nicht einmal was.
Man mag von mysql halten, was man will, doch es ist (leider) das Standard-Datenbanksystem für Web-Anwendungen (ein paar Gedanken zu mysql kann man hier finden). Der Vorteil von mysql ist, dass es sehr einfach in der Installation und Handhabung ist, die Nachteile…. naja, findets selbst heraus.
aptitude install mysql-server
Während der Installation wird man nach einem Passwort für den mysql-root Benutzer gefragt. Danach kann man ggf. noch die Konfiguration anpassen (liegt unter “/etc/mysql/my.cnf“). Ein gutes Beispiel für eine mysql-Konfiguration kann man hier finden: http://forum.rootforum.de/viewtopic.php?f=104&t=36343. Eine Anmerkung: wenn man die empfohlene Konfiguration auf rootforum.de benutzt und über phpMyAdmin auf die Datenbank zugreifen will, sollte man die Zeile “skip_show_database” auskommentieren, ansonsten sehen die Benutzer (root ausgenommen) ihre Datenbanken nicht.
Da wir nicht nur eine optimierte Installation, sondern auch eine sichere wollen, führen wir nun noch das “mysql_secure_installation”-Skript aus und beantworten alle Fragen, abgesehen von der über das mysql-root Passwort, mit der Standardantwort.
Quellen:
http://forum.rootforum.de/viewtopic.php?f=104&t=36343
Kommen wir zu einem richtigen Datenbanksystem: postgres. postgres ist ein freies, quelloffenes (open-source auf “Neudeutsch”) Datenbanksystem, welches komplett ANSI-SQL92 konform ist (das kann manch kommerzielles Datenbanksystem nicht einmal von sich behaupten), unterstützt unter anderem ACID-Transaktionen und Stored Procedures und weitere fortgeschrittene Datenbank-Konzepte. Es erfreut sich einer immer größer werdenden Beliebtheit und löst mysql in vielen Gebieten ab. Dennoch will ich hier nicht zu viel Werbung machen. Jeder sollte sich selbst Gedanken über das Datenbanksystem machen, das er einsetzt und warum er es einsetzt. Doch wenn man ein Projekt hochziehen will, bei dem man auf fortschrittliche Datenbank-Konzepte zurückgreift, bleiben im open-source Umfeld nicht viele Lösungen übrig.
Die Installation gestaltet sich ähnlich einfach wie bei mysql:
aptitude install postgresql-8.3
Die Konfiguration gestaltet sich etwas anders als die von mysql. Sie ist im wesentlichen mehr an Oracle angelehnt. Über die Datei “pg_hba.conf” kann man Zugriffsrechte vergeben. Wenn man einen Benutzer anlegt, wird standardmäßig auch eine Datenbank mit dem selben Namen erstellt, autoincrement-Werte werden etwas anders definiert als bei mysql, des Weiteren heißen einige Datentypen geringfügig anders, doch die postgres-Dokumentation hilft hier weiter: http://www.postgresql.org/docs/current/static/.
Beispielhaft hier noch Code, wie man einen Benutzer anlegen kann:
su - postgres createuser -P
Danach wird man nach dem Passwort und der Benutzerrolle gefragt und man kann mit folgendem Code auf die postgres-Konsole zugreifen:
psql -W <Tabellenname>
In einem weiteren Teil gehe ich dann darauf ein, wie man phpMyAdmin und phpPgAdmin einrichtet.