Linux: Apache mit PHP und MySQL installieren

05/04/2010 16:54 Fyareh³#1
Hi, [ überschrift sagt alles ]
Inhaltsverzeichniss
Vorwort
Voraussetzungen
a) Rechnerausstattung
b) Benötigte Software
- MySQL
- PHP 4
- Apache
Installation
a) MySQL
b) PHP4
c) Apache
Konfiguration
a) Apache für PHP einrichten
b) PHP Konfiguration
c) MySQL Datenbanke anlegen & benutzen

Vorab;
Dieses Tutorial soll helfen eine Apache WebServer inklusive PHP und MySQL auf Linux-Basis zu installieren (kurz: LAMP = Linux Apache MySQL PHP)

2. Voraussetzungen
2.1 Rechnerausstattung
Bei der Rechnerausstattung kommt es ganz auf den Zweck an, den der WebServer bekommt.
Sollte er z.B. nur in einem lokalen Netzwerk zum testen laufen, reicht ein PII 266MHz mit 64MB RAM vollkommen aus.

Bei größerem Gebrauch (LAN ab 25 Clients) sollte schon mehr in RAM investiert werden, das ist aber auch alles.

Sollte der Server etwa in einem großen Netzwerk mit vielen Clients die ständig darauf zugreifen stehen, sollte man schon an etwas schnellere Modelle (ab PIII 500 MHz) mit Minimum 128MB RAM denken, aber ich glaube da sollte man sich dann doch nochmal bei Experten informieren, denn dieses Tutorial soll nicht für Großunternehmen geeignet sein, sondern für Heimbenutzer oder Kleinbetriebe.

Natürlich sollte auch eine Netzwerkkarte installiert sein. Bei kleinen Netzen mit 10MBit und bei größeren 100MBit.

Als Beispiel dient mein Intranetserver für LAN-Parties mit 50 Teilnehmern:
- PII 266MHz, 96MB RAM, 10/100MBit 3COM Ethernet Karte
- Apache WebServer 1.3.22 mit PHP 4.1 und MySQL 4.0.1
- Samba 2.2.2 als Primary Domain Controller zur Benutzerverwaltung
- SuSE Linux 7.2 mit Kernelver. 2.4.17

Dieses System läuft ohne weitere Probleme und Lags.

2.2 Benötigte Software

Zur Installation der Software habe ich die Source-Distributionen (Quellcode)
genommen.
Die einzelnen Bezugsquellen im Überblick:

2.2.1 MySQL
[Only registered and activated users can see links. Click Here To Register...]

Mirrors:
Eine Mirrorliste wird beim Download geöffnet!

2.2.2 PHP 4
[Only registered and activated users can see links. Click Here To Register...]

Mirrors:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Zusätzliche Mirrors:
[Only registered and activated users can see links. Click Here To Register...]

3. Installation

3.1 MySQL

Als erstes muss man die downgeloadete Source-Dist. mittels "tar" entpacken:

Code:
linux:/usr/src # tar zxfv mysql-4.0.1-alpha.tar.gz
Ich verwende in diesem Tutorial folgende Pfade:

Installationspfad = /usr/local/mysql
Datenpfad = /var/mysql/data

Nach entpacken wechselt man in das entpackte Verzeichnis und beginnt mit der Pre-Installation:

Code:
linux:/usr/src/mysql-4.0.1-alpha # ./configure --prefix=/usr/local/mysql
   	  						  --localstatedir=/var/mysql/data
   	  				      (alles hintereinander geschrieben!)
Als nächstes folgen die Befehle zum compilieren von MySQL:

Code:
linux:/usr/src/mysql-4.0.1-alpha # make
   	  linux:/usr/src/mysql-4.0.1-alpha # make install
Danach folgt das anlegen des Datenpfades:

Code:
linux:/usr/src/mysql-4.0.1-alpha # mkdir /var/mysql
   	  linux:/usr/src/mysql-4.0.1-alpha # mkdir /var/mysql/data
   	  linux:/usr/src/mysql-4.0.1-alpha # chmod 777 /var/mysql/data
Der letzt Befehl ermöglicht es MySQL in das Verzeichnis zu schreiben.

!ACHTUNG: So wie ich das hier gemacht habe ist es ziemlich unsicher, da jeder Benutzer nun
die Möglichkeit hat, auf dieses Verzeichnis uneingeschränkt zuzugreifen! Es sollten keine
anderen Benutzer außer "root" auf dem Server vorhanden sein!

Zum Abschluss der Installation werden noch die Standarddatenbanken installiert.

Code:
linux:/usr/src/mysql-4.0.1-alpha # scripts/mysql_install_db
Zum starten des MySQL-Server findet man in dem Verzeichnis "support-files" eine während
der Installation erstellte Datei, die das starten vereinfacht. Diese Datei kann man an
einen beliebigen Ort kopieren.

Bei mir landet sie in /usr/sbin:

Code:
linux:/usr/src/mysql-4.0.1-alpha # cp support-files/mysql.server /usr/sbin/mysql
   	  linux:/usr/src/mysql-4.0.1-alpha # chmod 755 /usr/sbin/mysq
Code:
linux:/usr/src/mysql-4.0.1-alpha # mysql start
   	  linux:/usr/src/mysql-4.0.1-alpha # Starting mysqld daemon with databases from /var/mysql/data
MySQL ist nun installiert und läuft auch soweit! Benutzer einrichten und Datenbanken anlegen
kommen in den späteren Kapiteln.

3.2 PHP 4

Als nächstes werden noch Apache und PHP entpackt und installiert. Beginnen wir mit PHP:

Code:
linux:/usr/src/ # tar zxfv php-4.1.1.tar.gz
   	  linux:/usr/src/ # tar zxfv apache_1.3.22.tar.gz
Nachdem wir PHP und Apache entpackt haben, müssen wir Apache wieder Pre-Installieren mittels
"config" - Befehl. Wechselt dazu in das Verzeichnis der Apache-Sources:

Code:
linux:/usr/src/ # cd apache_1.3.22
   	  linux:/usr/src/apache_1.3.22 # ./configure --prefix=/usr/local/web
Entgültig kompiliert wird er erst, sobald das PHP Modul installiert ist, an welches
wir uns jetzt machen wollen. Wechselt hierzu in das Verzeichnis von PHP und Pre-Installiert es
mit folgenden Einstellungen:

Code:
linux:/usr/src/apache_1.3.22 # cd ../php-4.1.1
   	  linux:/usr/src/php-4.1.1 # ./configure --with-apache=../apache_1.3.22
   	  							--with-mysql=/usr/local/mysql
   	  							--enable-sysvshm=yes
   	  							--enable-sysvsem=yes
   	  							--with-config-file-path=/etc
   	  							--enable-track-vars=yes
   	  							--enable-url-includes=yes
   	  							--enable-ftp
Nachdem dieser Prozess erfolgreich abgeschlossen ist, kann man PHP kompilieren:

linux:/usr/src/php-4.1.1 # make
linux:/usr/src/php-4.1.1 # make install

Nach abgeschlossener Kompilierung & Installation von PHP gilt es noch die Konfigurationsdatei
von PHP an ihrem Platz auszusetzen. Eine Beispielkonfiguration ist bei der Source-Dist.
schon enthalten. Sie wird in das als "--with-config-file-path" angegebene Verzeichnis gelegt:

Code:
linux:/usr/src/php-4.1.1 # cp php.ini-dist /etc/php.ini
Die Konfiguration des Beispiels ist weitgehend ausreichend für die Benutzung von PHP, also
sind wir mit diesem Kapitel auch schon fertig.

3.3 Apache

Als letztes wird noch Apache installiert. Da wir das Modul "PHP4" nun installiert haben,
können wir es jetzt auch in Apache aufnehmen. Zunächst wird dieser wieder Pre-Installiert:

Code:
linux:/usr/src/apache_1.3.22 # ./configure --prefix=/usr/local/web
   	  					      --activate-module=src/modules/php4/libphp4.a
   	  					      --enable-module=php4
Auch hier folgt gleich im Anschluss die Kompilierung und Installation:

Code:
linux:/usr/src/apache_1.3.22 # make
   	  linux:/usr/src/apache_1.3.22 # make install
4. Konfiguration

4.1 Apache für PHP einrichten und starten


Um Apache beizubringen, das er PHP auch interpretieren und ausführen soll, muss man ihm
in seiner Konfiguration noch ein paar Dinge hinzufügen. Hierzu braucht ihr die "httpd.conf"
in eurem Apache-Verzeichnis:
Code:
linux:/usr/src/apache_1.3.22 # cd /usr/local/web/conf
linux:/usr/local/web/conf # vi httpd.conf
Jetzt seht ihr die komplette "httpd.conf" auf eurem Schirm im Editor vi (ihr könnt natürlich
auch jeden anderen benutzen der euch gefällt oder einfacher ist).
Ihr müsst nach der Zeile mit dem Inhalt:

"AddType application/x-httpd-php .php"

suchen, meistens ist sie auskommentiert. Sollte die Zeile komplett nicht vorhanden sein, dann
begebt euch in die Sektion "<IfModule mod_mime.c>" und hängt folgendes an:

Code:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps
Apache ist jetzt für die Benutzung von PHP eingerichtet und kann nun gestartet werden.

Code:
linux:/usr/local/web/conf # cd ../bin
linux:/usr/local/web/bin # ./apachectl start
./apachectl start: httpd started
Apache ist nur gestartet. Um PHP zu testen legt man sich einfach eine kleine Testdatei an,
die folgenden Inhalt hat:

Code:
<? phpinfo(); ?>
legt diese in das "htdocs" - Verzeichnis:

Code:
linux:/usr/local/web/bin # mv test.php ../htdocs
linux:/usr/local/web/bin # chmod 755 ../htdocs/test.php
und ruft diese im WebBrowser auf. Dieser sollte dann eine Zusammenfassung aufzeigen, die
alle Einstellungen von PHP enthält.

4.2 PHP-Konfiguration

Die Datei "php.ini" ist die Konfigurationsdatei von PHP. Sie enthält einige wichtige
Einstellungen die man beachten sollte. Ich werde nun im Groben diese Einstellungen kurz
aufzeigen und erklären. Die Standardeinstellungen kann man aber lassen.

Code:
engine = on	 => Sagt aus, das PHP unter Apache aktiviert ist (Möglichkeiten: on/off)

sendmail_path = /usr/sbin/sendmail => sendmail-Pfad, auch mit sendmail Optionen benutzbar
   	  
session.save_path = /tmp	=> Der Pfad in dem Sessions gespeichert werden
Dies sind meines Erachtens nach mal die wichtigsten Einstellungen. Weitere Vertiefungen
entnimmt man am besten der PHP-Dokumentation ([Only registered and activated users can see links. Click Here To Register...]).

4.3 MySQL-Datenbanken anlegen und benutzen

Um MySQL zu administrieren bedarf es eines intensiven Studiums des MySQL-Handbuches.
Ich habe mich hier auf die Benutzung als "root" mit Passwort beschränkt! Sollte nur
im privaten Gebrauch gemacht werden

Als erstes müssen wir noch einen Benutzer für MySQL erstellen bzw. das Passwort für "root"
festlegen.

Code:
linux:/usr/local/mysql/bin # ./mysqladmin -u root password PASSWORD
Dies legt root als Benutzer fest und setzt das Passwort auf PASSWORD.
Um mit MySQL arbeiten zu können, kann man auch die Shell von Linux benutzen. Man ruft die
MySQL-Shell auf und kann auf dieser arbeiten.

Code:
linux:/usr/local/mysql/bin # ./mysql -uroot -pPASSWORD
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 4.0.1-alpha
   	  
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
   	  
mysql>
So sollte jetzt die Ausgabe auf dem Bildschirm sein.
Zur Eigennutzung erstellen wir kurz eine Datenbank, denn weiter will ich hier nicht auf MySQL
eingehen, da dies ein sehr sehr langes Thema ist (schreib grad ein Tut!).

Code:
mysql> CREATE DATABASE mydb;
Query OK, 1 row affected (0.03 sec)
   	  
mysql> quit
Bye
So, die Datenbank ist erstellt und ein Benutzer (auch wenn er im Moment nicht so glücklich
gewählt ist) ist auch vorhanden

Das wars dann auch von mir Mit freundlichen Grüßen / Best regards;
Nanxie
05/05/2010 14:29 denny2136#2
Werd es testen ;=)
05/06/2010 16:40 Fyareh³#3
Jo,bei fragen PN!
05/06/2010 18:10 Praim#4
Sehr gut (:
Kann ich super gebrauchen für meinen VPC ^^
#Thanks
05/08/2010 18:23 aiiR7.#5
Yo, hattest ja schon Apache, nich gesehen.

nice&usefull guide <<