In diesem Artikel möchte ich dir erklären wie man einen Apache 2 Server mit PHP aufsetzt. Ich werde am Ende noch ein „Shellskript“ hinzufügen, so dass du automatisiert einen Webserver aufsetzen können.
Als erstes loggen wir uns als root ein und bringen unsere Paketquellen und das System auf den neusten Stand:
su
apt-get update
apt-get upgrade
Nun erstellen wir uns ein Verzeichnis im „Home“-Ordner, dass ist bei dem Benutzer „root“ „/root“, das geht so:
mkdir /root/software
Nach dem das abgeschlossen ist wechseln wir in das Verzeichnis mit:
cd /root/software
Jetzt installieren wir uns erstmal den Apache2 mit mysql:
apt-get install -y apache2 apache2-dev apache2-utils mysql-server-5.0 libmysqlclient-dev libxml2-dev apache2-mpm-prefork
Kurze Erklärung zu den installierten Paketen:
apache2 Dies ist der Apache/Webserver an sich. Offizielle Erläuterung apache2-dev Erläuterung hier klicken! apache2-utils Enthält einige, für jeden Webserver nützliche, Zusatzprogramme. Für eine genaue Liste: Klick mysql-server-5.0 Dies ist der Mysql-Server an sich. Offizielle Erläuterung libmysqlclient-dev Erläuterung hier klicken! libxml2-dev Erläuterung hier klicken! apache2-mpm-prefork Erläuterung hier klicken!
Nun müssen wir uns noch einige „Libs“ und „Compiler“ installieren, da sonst das kompilieren von PHP nicht funktioniert:
apt-get install make libc6-dev gcc g++
Jetzt richten wir eben noch den Mysql-Server ein:
dpkg-reconfigure mysql-server-5.0
Nachdem wir ein sicheres Passwort gesetzt haben sind wir auch schon fertig mit der Konfiguration des Mysql-Server.
So ein Teil hätten wir geschafft! Bei uns auf dem Server läuft nun ein Apache 2 mit MySql. Wir könnten theoretisch auch PHP über die Paketquellen installieren, aber wenn man es selber kompiliert ist es Ressourcen schonender!
Also legen wir los! Als erstes müssen wir uns versichern das wir noch in dem Verzeichnis „/root/software“ sind:
pwd
Wenn du „pwd“ eingegeben hast solltest du den Pfad „/root/software“ erhalten, wenn das der Fall ist fahren wir fort.
Wir müssen nun erstmal PHP runterladen! Dazu gehen wir auf http://de.php.net/get/php-5.2.6.tar.gz/from/a/mirror und suchen uns einen Mirror aus. Ich nehme den ersten Deutschen:
http://de.php.net/get/php-5.2.6.tar.gz/from/this/mirror | 12.09.08
Jetzt müssen wir das Paket runterladen:
wget http://de.php.net/get/php-5.2.6.tar.gz/from/this/mirror
<– Hier musst du bei einer anderen Version anpassen
Nur noch kurz überprüfen ob das Paket da ist:
ls
Wenn das Paket vorhanden ist müssen wir es entpacken:
tar xvfz php-5.2.6.tar.gz
<– Hier musst du bei einer anderen Version anpassen
Nach dem es entpackt ist finden wir einen neuen Ordner in unserem Ordner „Software“ in diesen wechseln wir mit:
cd php-5.2.6/
Jetzt könnten wir es eigentlich schon konfigurieren, aber da wir einige extra Libs mit installieren wollen müssen wir diese vorher installieren:
apt-get install libgd-dev libz-dev libbz2-dev libmcrypt-dev libpng-dev libjpeg-dev libttf-dev
Ich werde diese libs jetzt im einzelnen nicht erläutern, du kannst sie aber googlen und entscheiden ob du sie brauchst oder nicht, es sind aber Standard libs die man haben sollte.
Nachdem die libs installiert sind beginnen wir mit der Kompilierung von PHP, versichere dich vorher noch mal das du im PHP ordner bist („pwd“):
./configure --with-apxs2=/usr/bin/apxs2 --sysconfdir=/etc/php --with-config-file-path=/etc/php --with-zlib --enable-bcmath --with-bz2 --with-iconv --with-mysql --with-mcrypt --with-gd --enable-gd-native-ttf --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/
Wir haben mit diesem Befehl das „configure“ Skript ausgeführt, das ist im Prinzip die „Personalisierung“ von deiner PHP Installation. Eine genaue Liste aller möglichen Option kriegt ihr mit „./configure –help“. Was die Optionen machen sollten klar sein. Es weist das Skript an wo es sich zu installieren hat und welche libs mit installiert werden sollen.
Nun müssen wir „make“ ausführen:
make
Make kompiliert das Paket im Prinzip. Bevor wir es mit „make install“ installieren müssen wir noch etwas in die „apache“ Konfigurationsdatei schreiben, da PHP sonst einen Error erzeugt:
echo "bla" > /etc/apache2/httpd.conf
echo "LoadModule FOO_mod /usr/lib/foo.so" >> /etc/apache2/httpd.conf
Nun führen wir „make install“ aus:
make install
Anschließend können wir die „httpd.conf“ wieder löschen:
rm -f /etc/apache2/httpd.conf
Jetzt erstellen wir die richtige „httpd.conf“:
echo "LoadModule php5_module /usr/lib/apache2/modules/libphp5.so" > /etc/apache2/httpd.conf
Diese Zeile hat den Sinn das Apache das Modul „PHP5“ mit einbindet, also das es genutzt werden kann von Apache.
Was nun kommt ist optional halte ich aber für sinnvoll.
Das Verzeichnis wo die Daten für die Webseite reinkommen also deine Homepage wie z.b. „index.php“ etc. ist bei Apache 2 standardmäßig „/var/www“, das finde ich nicht so praktisch weil in dem Ordner „var“ noch mehr Ordner sind als nur der „www“ Ordner, deswegen ändere ich diesen Pfad immer. Ich benutze immer „/app/www“ als Ordner, dieser muss vorher noch erstellt werden mit:
mkdir -p /app/www
Nun müssen wir Apache das nur noch mitteilen dass wir dort gerne unsere Dateien ablegen würden:
replace "/var/www/" "/app/www" -- /etc/apache2/sites-enabled/000-default
replace "RedirectMatch ^/$ /apache2-default/" "# RedirectMatch ^/$ /apache2-default/" -- /etc/apache2/sites-enabled/000-default
Ich habe in diesem Schritt noch die Standardredrikation von apache entfernt, diese zeigt nur an wenn man den Server aufruft „It works“, das ist schön zu wissen, aber wir wollen natürlich eigene Homepages ablegen.
Jetzt erstellen wir noch eine Datei die in das Verzeichnis kommt:
echo "" > /app/www/index.php
Dadurch sehen wir ob Apache mit PHP richtig installiert wurde, da „phpinfo();“ eine PHP-Funktion ist die es uns ermöglicht alle Konfigurationsfakten von PHP anzuzeigen.
Wir sind mit der Installation von PHP, MYSQL und Apache fast fertig! Wir müssen den Apache nur noch neu starten damit er die Konfigurationsskripte neu laden kann, also z.b. unsere Änderungen mit dem Ordner und das einbinden des PHP-moduls
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
Das war es! Jetzt fehlt nur noch phpmyadmin.
Für phpmyadmin wechseln wir nochmal in unserer „Software“ Verzeichnis:
cd /root/software
Nun laden wir uns phpmyadmin runter, vorher installieren wir allerdings noch das Paket „dpkg-dev“. Dieses Paket entpackt das was wir gleich runterladen sofort somit können wir uns einen Schritt sparen! Wir installieren phpmyadmin übrigens nicht über die „apt“ quellen, da es dann automatisch auch PHP mit installieren will und dann würde 2x PHP auf dem Server vorhanden sein, das würde alles zerschießen!
apt-get install dpkg-dev
Das installiert das Paket „dpkg-dev“, dev steht übrigens für „develop“. Jetzt laden wir uns phpmyadmin runter:
apt-get source phpmyadmin
Jetzt haben wir alles was wir brauchen! Wir schauen mal was wir alles runter geladen haben bis jetzt:
[root@~]:/software# ls
php-5.2.6 phpmyadmin-2.9.1.1 phpmyadmin_2.9.1.1-7.diff.gz phpmyadmin_2.9.1.1.orig.tar.gz
php-5.2.6.tar.gz phpmyadmin_2.9.1.1-7.dsc
Für uns ist jetzt dieser Ordner wichtig „phpmyadmin-2.9.1.1“ (die Version kann sich unterscheiden). Wir wechseln nun in diesen Ordner mit:
cd phpmyadmin-2.9.1.1
In diesem Ordner befindet sich eine „config.sample.inc.php“ diese müssen wir zunächst zur „config.inc.php“ umbenennen das geht mit:
mv config.sample.inc.php config.inc.php
Nachdem wir die Datei umbenannt haben müssen wir einige Daten in dieser Datei eingeben. Wir öffnen die Datei mit „nano“:
nano config.inc.php
Als erstes müssen wir ein „Blowfish secret“ setzten sucht diese Zeile:
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
und tippt irgendwas hier rein:
$cfg['blowfish_secret'] = 'asdfgfvwezufvFZIFzifckhCZIc'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Am besten KEINE Sonderzeichen benutzen, da PHP sonst einen „Parse Error“ ausspuckt.
Nachdem ihr das „Secret“ gesetzt habt müssen wir noch 2 Dinge auskommentieren:
$cfg['Servers'][$i]['controluser'] = 'pmausr';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
Auskommentieren macht man mit „//“:
//$cfg['Servers'][$i]['controluser'] = 'pmausr';
//$cfg['Servers'][$i]['controlpass'] = 'pmapass';
ACHTUNG: Die Zeilen können variieren, diese Zeile sollte aber immer gleich sein „$cfg[‚Servers‘][$i][‚controlpass‘]“
So damit sind wir fast fertig! Wir müssen noch kurz in das Verzeichnis über diesen Ordner wechseln mit:
cd ../
Jetzt müssen wir den Ordner phpmyadmin-2.9.1.1 noch in phpmyadmin umbenennen:
mv phpmyadmin-2.9.1.1 phpmyadmin
Anschließend müssen wir den Ordner verschieben in das Verzeichnis „/usr/share“:
mv phpmyadmin /usr/share/phpmyadmin
Nun müssen wir nur noch einen „symbolischen Link“ von „/usr/share/phpmyadmin“ zu unserem „Webordner“ legen. Erinnerst du dich? „/app/www“:
ln -s /usr/share/phpmyadmin /app/www/phpmyadmin
Wenn wir jetzt unseren Server aufrufen mit:
http://[server IP/Domain]/phpmyadmin
sollten wir dieses Bild sehen:
Hier können wir jetzt unserer zuvor gesetzten MySql-Daten eingeben, und uns damit einloggen.
Das war es! Wir sind fertig!
Hier das versprochene Skript: Hier findest du das Webserverinstall skript
ausgeführt wird das Skript mit „./install-webserver.sh“
Achtung: PHPmyAdmin und Mysql musst du noch Manuell konfigurieren! PHPmyAdmin musst du vorher auch noch herunterladen!