Installation eines "LAMP-Systems"
LAMP steht für Linux, Apache, MySQL, PHP und beschreibt das am häufigsten eingesetzte Webserver-System.
Dieses Tutorial befasst sich mit der Installation einer Webserver-Plattform und richtet sich an alle diejenigen, welche sich für die Programmierung von Webseiten interessieren und sich dazu eine eigene Entwicklungsumgebung einrichten möchten.
Alle im folgenden vorgestellten Schritte zur Installation und Einrichtung habe ich auf zwei verschiedenen Linux-Systemen getestet. Zum einen war das SUSE Linux 9.3 und zum anderen war das Debian 3.1.
Als Hardware habe ich einen alten Rechner mit 233 MHz, 128 MB RAM, 2 Festplatten a 2 GB, Netzwerkkarte und DVD-ROM reaktiviert. Für die Installation und den Betrieb als Webserver sollte das aber die untere Grenze sein.
Softwareübersicht:
Die aufgeführten Softwarepakete sind im Internet frei zu beziehen (mit Ausnahme SUSE 9.3).
» Sie könne dieses Tutorial als PDF-Datei laden «
» nach oben «
Installation von Linux
Auf die Installation von Linux möchte ich hier nicht weiter eingehen. Nutzen Sie einfach die Installationsassistenten der jeweiligen Version. Wählen Sie zur Systeminstallation nur eine einfache Installation mit graphischer Oberfläche (KDE macht sich da ganz gut).
Nach der Linuxinstallation sollten Sie jedoch in den Paketmanager (YAST bei SUSE oder Synaptic bei Debian) prüfen ob folgende Pakete installiert sind. Wenn nicht, dann holen Sie dieses bitte jetzt nach.
- libxml2
- libxml2-dev
- flex
- make
- gcc (einen C-Compiler)
- libperl-dev
Damit ist Ihr Linux-System soweit vorbereitet, dass wir mit der Installation der einzelnen Komponenten fortsetzen können.
» nach oben «
Installation von MySQL
An dieser Stelle möchte ich die Installation von MySQL 5 zeigen. Das Verzeichnis in dem ich diese Installation vorgenommen habe, benenne ich /usr/share/mysql5/.
WICHTIG: Alle Schritte als root durchführen!!!
Benötigte Software:
mysql-standard-5.0.13-rc-linux-i686.tar.gz Diese sollte in unseren Installationsverzeichnis unter /usr/local/ liegen.
in das Verzeichnis /usr/local/ wechseln
cd /usr/local/
- MySQL entpacken, dazu muss der MySQL-Code in unter Verzeichnis (/usr/local/) kopiert sein
tar -xzf mysql-standard*
Als Ergebnis erhalte wir eine Datei "mysql-standard-5.0.13-rc-linux-i686". Da mir dieser Dateiname für die weitere Bearbeitung zu lang ist, benenne ich diese in mysql5 um.
mv mysql-standard* mysql5
Nun beginnt die eigentliche Installation!
MySQL als Gruppe und als Benutzer anlagen
groupadd mysql
useradd -g mysql mysql
MySQL-Daten installieren, dazu in das Verzeichnis von mysql5 wechseln (wir befinden uns immer noch in /usr/local /)
cd mysql5
anschließend die Installation
scripts/mysql_install.db -user=mysql
die Dateirechte von mysql ändern
chown -R root
chown -R mysql data/
chgrp -R mysql
Symbolische Links anlagen, damit das Linux-System mit MySQL arbeiten kann. Dazu wechseln wir in das Verzeichnis /usr/bin/.
cd /usr/bin/
ln -s /usr/local/mysq5l/bin/mysql mysql
ln -s /usr/local/mysql5/bin/mysqldump mysqldump
ln -s /usr/local/mysql5/bin/mysqladmin mysqladmin
ln -s /usr/local/mysql5/bin/mysql_config mysql_config
Damit die MySQL-Libaries auch gefunden werden, muss ich diese in den Lib-Pfad eintragen. Dazu öffne ich die Datei /etc/ld.so.conf. Am einfachsten geht im Dateimanager (Konqestor) und öffne die Datei mit KWrite. Am Ende der Datei füge ich nun den Pfad zu den MySQL-Libaries hinzu und speichere die Änderung. In diesem Fall ist der Pfad /usr/local/mysql5/lib
WICHTIG:
Anschließend
/sbin/ldconfig
ausführen.
Damit MySQL auch automatisch mit gestartet wird fehlen noch einige Kleinigkeiten. Zunächst wechseln wir in das Verzeichnis von MySQL5
cd /ust/local/mysql5
Anschließen kopieren wir die Datei mysql.server nach dafür notwendige Stelle, in die Datei /etc/init.d .
cp ./support-files/mysql.server /etc/init.d
und ändern die Rechte dieser Datei
chmod 744 /etc/init.d/mysql.server
nun erstellen wir die RunLevel für MySQL, dabei sind in der Verzeichnisstruktur Unterschiede von Debian und SUSE möglich!!
Für Debian:
cd /etc/rc2.d
ln -s ../init.d/mysql.server S20mysql.server
ln -s ../init.d/mysql.server K20mysql.server
cd ../rc3.d
ln -s ../init.d/mysql.server S20mysql.server
ln -s ../init.d/mysql.server K20mysql.server
Für SUSE:
cd /etc/rc.d/rc2.d
ln -s ../mysql.server S20mysql.server
ln -s ../mysql.server K20mysql.server
cd ../rc3.d
ln -s ../init.d/mysql.server S20mysql.server
ln -s ../init.d/mysql.server K20mysql.server
Zum Schluss muss noch die Datei mysql.server angepasst werden. Dazu öffnen wir die Datei mit Kwrite und ändern die Pfadangaben für "basedir" und "datadir".
basedir=/usr/local/mysql5
datadir=/usr/local/mysql5/data
"Datadir" ist dabei das Verzeichnis für die Datenbanken, die wir erstellen und mit arbeiten möchten.
So, nun wollen wir mal schauen ob alles geklappt hat.
Zunächst ob die RunLevel richtig erkannt sind:
Dazu kann man mit den SysV-Init-Editor nachschauen ob dort unter Runlevel 2 und Runlevel 3 jeweils der Eintrag mysql.server steht. Wenn ja, dann hat's geklappt.
Wenn wir nun auf mysql.server mit der rechten Maustaste klicken könne wir den MySQL-Server starten. Eine andere Möglichkeit wäre den Rechner neu zu booten, aber das macht ja keiner.
» nach oben «
Installation von Apache2
Das Verzeichnis in dem ich diese Installation vorgenommen habe ist /usr/share/. In anderen Tutorials wird eine Installation unter /usr/local/ beschrieben. Das hat aber bei mir nicht funktioniert!!!
WICHTIG: Alle Schritte als root durchführen!!!
Benötigte Software:
httpd-2.0.54.tar.gz Diese sollte in unseren Installationsverzeichnis unter /usr/share/ liegen.
in das Verzeichnis /usr/share wechseln
cd /usr/share
Apache entpacken, dazu muss der Apache-Code in unter Verzeichnis (/usr/share) kopiert sein.
tar -xzf httpd*
Als Ergebnis erhalte wir eine Datei "httpd-2.0.54".
Da mir dieser Dateiname für die weitere Bearbeitung zu lang ist, benenne ich diese in httpd um.
mv httpd-2* httpd
Nun beginnt die eigentliche Installation!
Ich möchte an dieser Stelle nochmals darauf verweisen, dass eine Installation unter usr/local/ ggf. nicht korrekt funktioniert, und ich deswegen die Installation unter /usr/share/ vorgenommen habe.
Der Apache-Server wird als DSO-Version kompiliert. Das heißt, Module wie php können dynamisch geladen werden.
(DSO steht für Dynamic Shared Object)
Vorbereiten der Installation:
./configure --prefix=/usr/share/apache2 \
--enable-modules=all \
--with-php5 \
--enable-cgi \
--enable-cgid \
--enable-include \
--enable-so
Was habe ich hier nun gemacht?
"./configure" -> rufe ich ein Hilfsprogramm auf, was die Installation vorbereitet
"--prefix=/usr/share/apache2" -> bestimmt den Speicherort und Speichernamen
"--with-php5" -> bereitet den Server für php5 vor
"--enable-cgi" und "--enable-cgid" bereiten den Server für die Nutzung von CGI vor
"--enable-so" sagt den Apache-Server, dass er als DSO kompiliert wird
WICHTIG:
Die gesamte Eingabe ist als eine Anweisung zu verstehen. Die "\" jeweils vor den Zeilenumbrüchen veranlassen des Linux-System die Eingaben als Ganzes zu verarbeiten.
Eine andere Alternative währe, alles in eine Zeile zu schreiben.
Die Installation einleiten make make install
Damit Apache beim Booten gleich mit startet, kopieren wir nun das Startscript und erstellen die Links für die Runlevel.
cp /usr/share/apache2/bin/apachectl /etc/init.d/httpd
Link erstellen
cd /etc/rc3.d
ln -s ../init.d/httpd S20httpd
ln -s ../init.d/httpd K20httpd
cd /etc/rc2.d
ln -s ../init.d/httpd S20httpd
ln -s ../init.d/httpd K20httpd
An dieser Stelle möchte ich nöchmals darauf Hinweisen, dass bei SUSE der Pfad zu den RunLevels ggf. /etc/rcd.rc2.d bzw. /etc/rc.d.rc3.d sein kann.
Damit Der Apache-Server die Indexfiles richtig erkennt, sollte in der Datei httpd.conf nach der Zeile "DirectoryIndex index.html" gesucht werden. Diese Zeile ist durch index.php, index.htm, default.htm zu ergänzen.
DirectoryIndex index.html index.htm default.htm index.php
Damit ist die Installation von Apache2 abgeschlossen, und wir können den Server starten.
Für Debian: /etc/init.d/httpd.start
Für SUSE: /etc/rc.d/init.d/httpd.start
Nach dem Starten kann ich per Browser feststellen, ob mein Server richtig arbeitet. Dazu geben ich im Browser http://localhost ein. Als Ergebnis müsste ich nun eine Testseite von Apache sehen.
Das Verzeichnis für unsere Webseiten bei Apache ist nun: /usr/share/apache2/htdocs
Für die Nutzer von CGI ist das Verzeichnis bei Apache nun: /usr/share/apache2/cgi-bin
Am einfachsten ist es eine Link zu den "Webordner" der Lunix-Distribution zu erstellen. Dieser "Webordner" liegt in der Regel unter /srv/www.
Sollte dieser Ordner nicht existieren, kann er angelegt werden. mkdir /srv/www
Nun wechseln wir in das Verzeichnis und erstellen die Links zu den Verzeichnissen unter apache2
cd /srv/www
ln -sf /usr/share/apache2/htdocs htdocs
ln -sf /usr/share/apache2/cgi-bin cgi-bin
Damit auch alle in das Verzeichnis schreiben dürfen, ändern wir noch schnell die Rechte
chmod 0777 /usr/share/apache2/htdocs
chmod 0777 /usr/share/apache2/cgi-bin
» nach oben «
Installation von mod_perl
Die Installation von mod_perl (Modul Perl für Apache) ist optional und an diejenigen gerichtet, die ohnehin was mit Perl im Zusammenhang mit dem Apache anstellen möchten.
WICHTIG: Alle Schritte als root durchführen!!!
Benötigte Software:
mod_perl-2.0-current.tar.tar Diese Datei sollte im dem Verzeichnis /usr/local liegen, da ich von dort aus die Installation steuere.
In das Verzeichnis /usr/local wechseln cd /usr/local
mod_perl entpacken tar -xzf mod_perl-2.0-current.tar.tar
Als Ergebnis erhalte ich ein Verzeichnis "mod_perl-2.0"
In das Verzeichnis von mod_perl wechseln cd mod_perl-2.0
mod_perl Installieren
Vorbereiten der Installation, ähnlich "configure" bei Apache, aber hier mit einem Perl-Script
perl Makefile.PL
und nun die bereits bekannten Schritte mit "make"
make make test make install
Sollte nun eine Fehlermeldung erscheinen "/usr/bin/ld: cannot find -lperl", dann müssen Sie noch das Paket "libperl-dev" installieren. Am besten machen Sie das bei SUSE über YAST und bei Debian mit der Synaptic-Paketverwaltung. Anschließend natürlich die Installation von mod_perl wiederholen.
Das mod_perl bei Apache anmelden.
Öffnen Sie die Datei httpd.conf (finden Sie unter: /usr/share/apache2/conf) mit einem Editor wie KWrite.
Anschließen die Zeile mit "LoadModule" ergänzen mit LoadMobule perl_module modules/mod_perl.so
» nach oben «
Installation von php5
An dieser Stelle möchte ich die Installation von php5 zeigen. Das Verzeichnis in dem ich diese Installation vorgenommen habe ist /usr/local/.
WICHTIG: Alle Schritte als root durchführen!!!
Benötigte Software:
php-5.0.5.tar.gz Diese sollte in unseren Installationsverzeichnis unter /usr/local/ liegen.
in das Verzeichnis /usr/local/ wechseln cd /usr/local
php entpacken, dazu muss der php-Code in unter Verzeichnis (/usr/local/) kopiert sein. tar -xzf php-5*
Als Ergebnis erhalte wir eine Datei "php-5.0.5".
Da mir dieser Dateiname für die weitere Bearbeitung zu lang ist, benenne ich diese in php5 um.
mv php-5* php5
Nun beginnt die eigentliche Installation
Vorbereiten der Installation
./configure \
--with-apxs2=/usr/share/apache2/bin/apxs \
--with-mysql=/usr/local/mysql5 \
--with-config-file-path=/etc \
--enable-versioning \
--enable-track-vars=yes \
--enable-url-includes \
--enable-sysvshm=yes \
--enable-sysvsem=yes \
--enable-ftp \
--enable-calendar \
--with-config-file-path=/etc
ANMERKUNG:
Sollte eine Fehlermeldung auftreten, die besagt, dass die "libxml2" nicht vorhanden oder nicht gefunden wurde, dann installieren Sie das Paket libxml2 und libxml2-dev!!!
Oft ist "libxml2" bereits installiert, so dass Sie nur das Paket "libxml2-dev"nachinstallieren brauchen.
Die Installation einleiten make make install
php mit Apache verbinden
Damit php mit apache funktioniert, muss in der Datei /usr/share/apache2/httpd/conf/httpd.conf dafür gesorgt werden, dass die php-Endungen mit dem Modul verknüpft sind.
Dazu müssen folgende Zeilen ergänzt werden.
AddType application/x-httpd-php php
AddType application/x-httpd-php-source phps
php-ini kopieren, damit php im System erkannt wird cp /usr/local/php5/php.ini-dist /etc/php.ini
Nun sollte Apache mit php zusammenarbeiten.
Um das zu testen, kann man ein einfaches Script erstellen.
Das phpinfo.php - Script. <?php phpinfo(); ?>
Dieses speichern wir unter Apache in dem Webverzeichnis
/usr/share/apache2/htdocs, bzw unter /srv/www/htdocs.
Das Script wird im Browser mit http://localhost/phpinfo.php aufgerufen.
Als Ergebnis erscheine sämtlichen Konfigurationseinstellungen von Apache-Server auf dem Bildschirm.
» nach oben «
Installation von phpMyAdmin
An dieser Stelle beschreibe ich die Installation von "phpMyAdmin", eine Browseroberfläche zur einfachen handhabe von der Datenbank MySQL.
WICHTIG: Alle Schritte als root durchführen!!!
Benötigte Software:
An dieser Stelle sind aber auch andere Versionen möglich.
Die Quelldatei in unser Web-Verzeichnis kopieren cp phpMyAdmin-2.6.4-pl2.tar.gz /srv/www/htdocs
In das Web-Verzeichnis wechseln und die Quelldatei entpacken cd /srv/www/htdocs tar -xzf phpMyAdmin*
Als Ergebnis erhalten wir ein Verzeichnis "phpMyAdmin-2.6.4-pl2"
Das Verzeichnis von "phpMyAdmin-2.6.4-pl2" in "phpMyAdmin" umbenennen und die Quelldatei löschen.
rm phpMyAdmin*.tar.gz mv phpMyAdmin* phpMyAdmin
Und das war's schon mit phpMyAdmin!!
Wenn wir nun http://localhost/phpMyAdmin/index.php eingeben, wird phpMyAdmin gestartet und wir können Datenbanken anlegen.
Sie sollten aber vorher noch eine User anlegen , der nicht unbedingt "root" heißt.
» nach oben «
» Sie könne dieses Tutorial als PDF-Datei laden «
|