Ich mal ein Wochenende so nebenbei mit dem Thema beschaeftigt: Wie installiere ich einen FreeBSD server, PHP, Apache und PostgreSQL von Grundauf, bis es einsatzfaehig ist. Ich benutzte also:
OS: FreeBSD 6.0 bootonly(enthaelt nicht base
/crypt
packages – miniinst gibt es nicht mehr)
Bei der Installation des Betriebssystems sollte die Ports-Collection mit installiert werden (kann aber auch nachtraeglich ueber sysinstall in System geholt werden).
Nachdem das OS (a.k.a. Betriebssystem) installiert wurde, koennen die entsprechenden Ports (a.k.a. Programme) installiert werden. Hierbei werden folgende benoetigt:
- PostgreSQL Server 7.4.x
- PHP5-pgsql-5.0.x (Abhaengige Ports: Apache 2.0.x (bei der Installation wird gefragt ob Apache2 support benutzt werden soll. Wer das will, kann das aktivieren, wer nicht, der bekommt 1.3 installiert.), PostgreSQL Client 7.4.x, PHP 5.0.x (Ist eigentlich keine richtige Abhaengigkeit, da PHP 5.0.x in diesem Fall nur mit dem PostgreSQL flag kompiliert wird.))
- phppgadmin (optional, zum komfortablen Verwalten der PostgreSQL Datenbank ueber ein Webinterface)
Hier dann mal die kurze Befehls-HowTo:
/*user login*/
> su
Password:
# cd /usr/ports/databases/postgresql74-server/
# make install clean
/* den Installationshinweisen folgen und/oder warten */
/* -- Installation beendet -- */
# cd /usr/ports/databases/php5-pgsql/
# make install clean
/* den Installationshinweisen folgen und/oder warten */
/* ACHTUNG: Wer Apache2 will wird hier gefragt und sollte ein Kreuz an der richtigen Stelle machen */
/* -- Installation beendet -- */
# cd /usr/ports/databases/phppgadmin/
# make install clean
/* den Installationshinweisen folgen und/oder warten */
/* -- Installation beendet -- */
So, damit waere alles auf dem Server, was gebraucht wird. Nun muss das nur noch zum Laufen gebracht werden:
Apache2:
# ee /usr/local/etc/apache2/httpd.conf
/* ueberpruefen ob "ServerName 127.0.0.1" schon eingetragen ist */
# ee /etc/hosts
127.0.0.1 localhost localhost.my.domain [DEIN_SERVER_NAME]
Starten des Apache2 durch:
# /usr/local/sbin/httpd -k start
Dies sollte natuerlich mit einem Browser von einem anderen Rechner aus getestet werden (http://[server_ip]). Beispiel:
Damit der Apache2 auch automatisch beim Start des Servers hochfaehrt, sollte folgendes gemacht werden:
# echo apache2_enable=\"YES\" >> /etc/rc.conf
ausfuehren.
PHP5:
In
# ee /usr/local/etc/apache2/Includes/php.conf
folgendes eintragen:
<ifmodule mod_php3.c\>
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .php3s
</ifmodule>
<ifmodule mod_php5.c\>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</ifmodule>
Die soeben erstellte Datei php.conf
wird automatisch an die httpd.conf
des Apache angehangen. Das sollte schon alles gewesen sein. Um die PHP-Funktionalitaet zu testen, folgendes tun:
# ee /usr/local/www/data/phpinfo.php
Darin eintragen:
<?php
phpinfo();
?\>
Und nun noch:
# chmod 644 /usr/local/www/data/phpinfo.php
um die richtigen Rechte sicherzustellen.
Ein Blick auf den Server (http://[server_ip]/phpinfo.php) sollte die PHP info Seite zeigen. Beispiel:
PostgreSQL:
Initialisieren des Servers mit:
# su -l pgsql -c initdb
Starten des Servers mit:
# /usr/local/etc/rc.d/010.pgsql.sh start
Einen Benutzer (kozen bitte aendern) auf dem Server anlegen mit:
# su pgsql
$ /usr/local/bin/createuser kozen
Das war eigentlich schon alles. Damit der PostgreSQL Server auch beim Reboot wieder hochfaehrt, noch folgendes eingeben:
# echo postgresql_enable=\"YES\" >> /etc/rc.conf
phppgadmin (optional):
Hier muss eigentlich nur noch gecheckt werden, ob bei dem Befehl
# cat /usr/local/etc/php/extensions.ini
die Zeile
extension=session.so
mit ausgegeben wird. Wenn ja, gut. Wenn nein, bitte eintragen:
# echo "extension=session.so" >> /usr/local/etc/php/extensions.ini
Nun kann auch der phppgadmin im Browser (http://[server_ip]/phpPgAdmin/index.php) getestet werden. Es sollte ein login kommen, bei dem man sich als Benutzer (PostgreSQL user, der vorher angelegt wurde) anmelden kann. Da noch kein Passwort fuer diesen gesetzt ist, sollte das die erste Aktion sein. Beispiel:
Viel Spass beim SQLen. Alle Angaben ohne Gewaehr.