Einrichtung eines Webservers und Datenbankservers unter SuSE

Transcrição

Einrichtung eines Webservers und Datenbankservers unter SuSE
Einrichtung eines Webservers und Datenbankservers
unter SuSE Linux 8.1 Professional
hier: Apache 2.0.44, MySQL 4.0.12, Linux Kernel 2.4.19
von
Jürgen Wehling
[email protected]
Stand: 02.04.2003
Inhalt:
I.
Einleitung ......................................................................................................... 2
II.
Basis-Installation.............................................................................................. 2
III.
FTP-Server VSFTP 1.1.0................................................................................. 3
IV.
Datenbankserver MySQL 4.0.12...................................................................... 3
V.
Webserver Apache 2.0.44 ............................................................................... 4
VI.
PHP 4.3.1 ........................................................................................................ 4
VII.
Perl-Module ..................................................................................................... 5
VIII.
Webserver Apache konfigurieren..................................................................... 5
IX.
PHP konfigurieren............................................................................................ 6
X.
PhpMyAdmin 2.4.0........................................................................................... 6
XI.
Funktionsfähigkeit prüfen................................................................................. 7
XII.
Shell-Programme ............................................................................................. 8
XIII.
Links ................................................................................................................ 8
XIV.
Literatur............................................................................................................ 9
XV.
Über den Autor ................................................................................................ 9
Jürgen Wehling: Einrichtung eines Webservers und Datenbankservers unter SuSE Linux 8.1 Professional
1
I. Einleitung
Diese Beschreibung dient als Anleitung bei der Einrichtung des Betriebssystems
SuSE Linux 8.1 Professional für den Einsatz als Webserver und Datenbankserver
eines der Rechner des Faches Technologie und Didaktik der Technik TUD an der
Universität Duisburg-Essen, Standort Essen (http://fred2.technik-didaktik.uniessen.de) und enthält neben ausführlichen Installations- und Einrichtungshinweisen
zusätzliche Informationen bzgl. eventueller Fehlfunktionen.
Auf der Grundlage dieser Installations-Anleitung wurde der Webserver und
Datenbankserver der MMDB-TU (MultiMediaDatenBank-TechnikUnterricht)
zusammen mit INTEGER (INTegrierte Entwicklungsumgebung für eine
GEnerierung von LeRnobjekten) aufgesetzt, welcher der User-Community im
Rahmen einer nachhaltigen Verbesserung der Studierfähigkeit des o.g. Faches
unter dem URI http://www.mmdb-tu.de zur Verfügung steht.
II. Basis-Installation
1. Wenn nach Installation des Betriebssystems fehlende Dateien angezeigt
wurden, müssen diese nachinstalliert werden.
2. Es wird empfohlen zu überprüfen, ob sich nach Installation des
Gesamtsystems neue User mit YAST 2 anlegen lassen. Der neue Nutzer
mmdb-tu wird angelegt, Gruppe: users.
3. Die Netzwerkkonfiguration wird mit YAST 2 eingerichtet. Statt DHCP ist eine
feste IP-Adresse anzugeben:
Rechnername:
fred2
Host:
technik-didaktik.uni-essen.de
IP-Adresse:
132.252.134.135
Nameserver 1:
132.252.3.10
Nameserver 2:
132.252.1.7
Gateway:
132.252.134.254
Überprüfung des Connects durch: ping 132.252.134.26
(hier wird der ftp-Server des Faches angesprochen; sein vollständiger Name
lautet: ftp://fred3.technik-didaktik.uni-essen.de)
4. Der Dateimanager Midnight Commander 4.5.55 wird mit YAST 2 installiert
(oder einen beliebigen anderen Dateimanager); der Schritt II,6 ist hier
gegebenenfalls vorzuziehen.
5. Der Webbrowser Mozilla 1.0.1 wird mit YAST 2 installiert.
6. Die folgenden Compiler-Werkzeuge werden mit YAST 2 installiert!
C-Compiler:
Bibliotheken:
GNU-Befehl:
gcc 3.2.36
glibc-devel 2.2.5 und zlib-devel 1.1.4
make 3.79.1
Jürgen Wehling: Einrichtung eines Webservers und Datenbankservers unter SuSE Linux 8.1 Professional
2
III. FTP-Server VSFTP 1.1.0
1. Der Very Secure ftp daemon vsftpd 1.1.0 wird mit YAST 2 installiert;
eventuell Download der letzten Version durchführen. Konfigurationsdatei
/etc/vsftpd.conf so ändern, dass nur der User mmdb-tu vollen Zugriff auf
seinen Account hat:
anonymous_enable=NO
local_enable=YES
write_enable=YES
ascii_upload_enable=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
Die Datei vsftpd.chroot_list enthält in aufzählender Form die
zugriffsberechtigten User (in diesem Fall nur einen einzigen):
mmdb-tu
2. Internetdienste durch inetd aktivieren. In diesem Fall nur vsftpd aktivieren!
IV. Datenbankserver MySQL 4.0.12
1. MySQL-Server 4.0.12 als Binär-Distribution downloaden von
http://www.mysql.com , mysql-standard-4.0.12-pc-Linux-i686.tar.gz und in das
Verzeichnis /root/downloads (Verzeichnis vorher anlegen) kopieren.
2. Binär-Distribution entpacken nach /usr/local/mysql (Verzeichnis vorher
anlegen) mit Hilfe des Midnight Commanders (alternativ geht das natürlich
auch mit gunzip).
3. Den Installationsanweisungen folgen, die in der Datei INSTALL-BINARY
wiedergegeben sind
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf shell> ln -s full-path-to-mysql-VERSION-OS mysql
(dieser symbolische Link wird später gesetzt!)
shell> cd mysql
shell> scripts/mysql_install_db
Passwort setzen für MySQL root user: (Remembering!)
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h cray3suse81 password 'new-password'
Start the MySQL daemon:
cd. ; ./bin/mysqld_safe &
Test the MySQL daemon:
cd sql-bench ; perl run-all-tests
shell>
shell>
shell>
shell>
chown -R root .
chown -R mysql data
chgrp -R mysql .
bin/mysqld_safe --user=mysql & (ab Version 4.x)
Jürgen Wehling: Einrichtung eines Webservers und Datenbankservers unter SuSE Linux 8.1 Professional
3
4. MySQL kann auf unterschiedliche Weise über das Verzeichnis
/usr/local/mysql/ gestartet bzw. angehalten werden:
shell> bin/mysqld_safe --user=mysql &
Up-Test (ist mysqld gestartet?):
./bin/mysqladmin version (starten aus dem Verzeichnis: /usr/local/mysql/)
shell> support-files/mysql.server start
shell> support-files/mysql.server stop
Hinweis: UNIX socket liegt unter /tmp/mysql.sock ! Diese Datei wird erst
beim Starten des Datenbankservers erzeugt. Später muss ein symbolischer
Link zu dieser Datei gesetzt werden, da mysql.sock unter /var/lib/mysql/
gesucht, aber nicht gefunden wird.
V. Webserver Apache 2.0.44
1. Source-Distribution des Apache Webservers in der Version 2.0.44 von
http://httpd.apache.org downloaden.
2. Die Datei httpd-2.0.44.tar.gz ins Verzeichnis /usr/src/apache2 entpacken.
3. In das Verzeichnis /usr/src/apache2/ wechseln.
4. Die folgende Befehlsfolge eingeben:
./configure --prefix=/usr/local/apache2 --enable-so
5. Den Befehl make eingeben.
6. Den Befehl make install eingeben.
7. In das Verzeichnis /usr/local/apache2/ wechseln und mit bin/apachectl start
bzw. bin/apachectl stop die Funktionalität des Apache Webservers prüfen.
VI. PHP 4.3.1
1. Die Programme bison 1.35 (GNU Parsergenerator) und flex 2.5.4a
(Scannergenerator) werden mit YAST 2 installiert. Beide Programme werden
zur Kompilierung von PHP 4 benötigt!
2. Source-Distribution von PHP 4.3.1 von http://www.php.net downloaden.
3. Die Datei php-4.3.1.tar.gz ins Verzeichnis /usr/local/php4 entpacken. Hier wird
kein src-Verzeichnis verwandt, sonst folgen u.U. div. Fehlermeldungen!
4. Ins Verzeichnis /usr/local/php4/ wechseln und folgende Befehlssequenz
abarbeiten lassen:
./configure --prefix=/usr/local/php4
--with-apxs2=/usr/local/apache2/bin/apxs
--with-config-file-path=/usr/local/php4
--with-mysql=/usr/local/mysql
\
\
\
\
Es folgt die Bildschirmmeldung:
The default for register_globals is now OFF!
Jürgen Wehling: Einrichtung eines Webservers und Datenbankservers unter SuSE Linux 8.1 Professional
4
Hier ist später die Datei php.ini-dist (zu suchen im Verzeichnis
/usr/local/php4/) zu editieren, da dieser Wert für ein Funktionieren der
Programme der MMDB-TU auf ON stehen muss! Mittlerweile wird jedoch
durch die PHP User Community empfohlen, diese Variable aus
Sicherheitsgründen auf OFF zu lassen und eine Übergabe von
Programmvariablen z.B. über $_GET oder $_POST vorzunehmen.
5. Den Befehl make eingeben (Hier folgt eventuell die Meldung: nothing to be
done for 'all'. Kann aber ruhig ignoriert werden.)
6. Den Befehl make install eingeben.
7. Hier folgt unter Umständen die Meldung: remeber to run libtool --finish
in /usr/local/php4/libs/ - aber auch das bringt keine nennenswerten
Erkenntnisse.
8. Nachsehen, ob die Datei *libphp4.so eingetragen wurde unter dem
Verzeichnis /usr/local/apache2/modules/
VII. Perl-Module
1. Mit Hilfe von YAST 2 müssen jetzt noch einige Perl-Module installiert werden,
auf welche verschiedene Programme der MMDB-TU zugreifen:
perl-DBI 1.28
perl-Msql-Mysql-modules 1.2219
perl-MIME-tools 5.411a
perl-MIME-Lite 2.117 sowie perl-MailTools 1.47
perl-libwww 5.65
Perl 5.8.0 war schon in der Basis-Installation des Betriebssystems enthalten.
VIII. Webserver Apache konfigurieren
1. Jetzt ist die Konfigurationsdatei des Apache httpd.conf zu editieren. Für eine
Ausführung von cgi-Skripten gibt es verschiedene Möglichkeiten. Hier wird
die httpd.conf in der Section 2 ('Main' server configuration) mit dem
folgendem Zusatz für außerhalb des durch ScriptAlias bezeichneten
Directories ausführbare CGI-Skripten versehen:
<Directory /home/mmdb-tu/public_html/cgi-bin>
AllowOverride None
Options ExecCGI
SetHandler cgi-script
Order allow,deny
Allow from all
</Directory>
Zusätzlich sollte der CGI-Handler ebenfalls in der Section 2 ('Main' server
configuration) ergänzt werden durch:
AddHandler cgi-script .cgi .pl
Jürgen Wehling: Einrichtung eines Webservers und Datenbankservers unter SuSE Linux 8.1 Professional
5
2. Die Ausführung von PHP-Programmen verlangt ebenfalls Änderungen in der
Konfigurationsdatei des Apache. Die Datei httpd.conf ist daher erneut zu
editieren. Hinzuzufügen ist gegen Ende der Section 1 (Global Environment)
die folgenden Zeile:
LoadModule php4_module modules/libphp4.so
3. Hinzuzufügen sind in der Section 2 ('Main' server configuration) nach der Zeile
AddType application/x-tar .tgz die folgenden Zeilen:
AddType
AddType
AddType
AddType
AddType
application/x-httpd-php .php
application/x-httpd-php .php3
application/x-httpd-php .php4
application/x-httpd-php .phtml
application/x-httpd-php-source .phps
IX. PHP konfigurieren
1. Abschließend sind in der Datei php.ini-dist im Verzeichnis /usr/local/php4/ die
folgenden Änderungen vorzunehmen:
register_globals = On
log_errors = On
2. Die geänderte Datei ist als php.ini in das Verzeichnis /usr/local/php4/
aufzunehmen.
3. Nachdem der MySQL Daemon wie unter III,4 beschrieben gestartet wurde
kann der Apache Webserver jetzt aus dem Verzeichnis /usr/local/apache2/ mit
dem folgenden Befehlen gestartet bzw. angehalten werden:
bin/apachectl start
bin/apachectl stop
4. Zuletzt ist noch eine kleinere Korrektur vorzunehmen, da mysqld bei
Datenbank-Zugriffen u.U. eine Fehler-Meldung in Zusammenhang mit der
Datei mysql.sock liefert, die erst beim Start von mysqld generiert wird. Diese
wird durch das Setzen eines symbolischen Links behoben:
ln –s /tmp/mysql.sock
ln –s /var/lib/mysql
/varlib/mysql
/temp
bzw.
X. PhpMyAdmin 2.4.0
1. Als letztes sollte phpMyAdmin als graphisches Frontend für die Administration
der MySQL-Datenbank installiert werden. Der Download der Binär-Distribution
phpMyAdmin-2.4.0-php.tar.gz erfolgt von http://phpmyadmin.sourceforge.net.
2. Entpackt wird diese Version in das Verzeichnis /usr/src/phpMyAdmin .
3. Im User-Verzeichnis mmdb-tu wird das Verzeichnis phpMyAdmin angelegt,
das dem User mmdb-tu gehört. Alle Dateien und Verzeichnisse des
entpackten phpMyAdmin-Version werden jetzt einfach in das neu angelegt
Verzeichnis kopiert. Die Rechte sind automatisch gesetzt. Die ausführende
Datei heisst index.php.
Jürgen Wehling: Einrichtung eines Webservers und Datenbankservers unter SuSE Linux 8.1 Professional
6
XI. Funktionsfähigkeit prüfen
Die Einrichtung des Web- und Datenbankservers nach dem L.A.M.P.-Ansatz ist
damit abgeschlossen. Jetzt sollte die Funktionsfähigkeit des Servers geprüft
werden. Dazu folgen drei kurze Programme zur PHP-, Perl- und MySQL-Prüfung:
1. PHP-Prüfung:
<html>
<head>
<title>PHP Test</title>
<body>
<?php phpinfo(); ?>
</body>
</html>
2. Perl-Prüfung:
#!/usr/bin/perl -w
# cgi-env.cgi -- dieses Script stellt die Umgebungs-Parameter dar
print "Content-Type: text/html\n\n";
print <<"END_OF_HEADER";
<HTML><HEAD><TITLE>Umgebung von CGI-Programmen</TITLE></HEAD>
<BODY>
<H1>CGI-Umgebung</H1>
<UL>
END_OF_HEADER
foreach $key (sort keys %ENV) {
print "<LI> $key: $ENV{$key}</LI>\n";
}
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
print "<LI> From STDIN: ($buf)\n";
}
$time = localtime(time);
print <<"END_OF_HTML";
</UL>
<HR>
Erzeugt durch $0 um $time
</BODY>
</HTML>
END_OF_HTML
3. MySQL-Prüfung:
<html>
<head>
<title>PHP Test und MySql</title>
</head>
<body>
<?php
$mysqluser="";
$mysqlpasswd="";
$mysqlhost="localhost";
$connID = mysql_pconnect($mysqlhost, $mysqluser, $mysqlpasswd);
$result=mysql_list_dbs();
echo "<p>Databases at the local MySql Server<p>\n";
while($row = mysql_fetch_row($result)) {
echo "<br><i>$row[0]</i>\n"; }
?>
</body>
</html>
Jürgen Wehling: Einrichtung eines Webservers und Datenbankservers unter SuSE Linux 8.1 Professional
7
XII. Shell-Programme
Um den Webserver und den Datenbankserver unabhängig während des
laufenden Betriebs starten bzw. anhalten zu können wurden zwei ShellProgramme für die bash erstellt:
1. Starten von mysqld und httpd:
#!/bin/bash
echo "----------------------------------------"
echo "Datnebankserver MySQL wird gestartet..."
cd /usr/local/mysql
./bin/mysqld_safe --user=mysql &
echo "Datenbankserver MySQL 4.0.12 laeuft!"
#echo "----------------------------------------"
echo "Webserver Apache wird gestartet..."
cd /usr/local/apache2
./bin/apachectl start
echo "Webserver Apache 2.0.44 laeuft!"
echo "----------------------------------------"
exit 0
2. Anhalten von mysqld und httpd
#!/bin/bash
echo "----------------------------------------------"
echo "Datnebankserver MySQL wird heruntergefahren..."
cd /usr/local/mysql
./support-files/mysql.server stop
echo "Datenbankserver MySQL 4.0.12 nicht mehr aktiv!"
#echo "----------------------------------------"
echo "Webserver Apache wird heruntergefahren..."
cd /usr/local/apache2
./bin/apachectl stop
echo "Webserver Apache 2.0.44 nicht mehr aktiv!"
echo "----------------------------------------------"
exit 0
XIII. Links
-
Christoph Schauß: httpd.conf in deutscher Sprache – die Konfigurationsdatei
des Apache, Webpage:
http://selfaktuell.teamone.de/artikel/server/apacheconf/apconf062.htm,
referenziert: 02.04.2003
-
Apache http Server Version 2.0, Kompilieren und Installieren, Webpage:
http://httpd.apache.org/docs-2.0/install.html, referenziert: 02.04.2003
-
Compiling PHP 4 and Apache 2 from source on Linux, Webpage:
http://startlinux.co.nz/articles/article_152.php, referenziert: 02.04.2003
-
PHP: Servers-Apache 2.0 – Manual, Webpage:
http://www.php.net/manual/en/install.apache2.php, referenziert: 02.04.2003
-
Apache 2 and PHP (mod_php) on Linux, Webpage:
http://www.dan.drydog.com/apache2.php.html, referenziert: 02.04.2003
-
PHP Script resource Toutorials, Wokshops und Artikel Apache und …,
Webpage: http://www.php-resource.de/tutorials/read/30/1/, referenziert:
02.04.2003
-
Apache http Server Version 2.0, Apache Tutorial: Dynamic Content with CGI,
Webpage: http://httpd.apache.org/docs-2.0/howto/cgi.html, referenziert:
02.04.2003
Jürgen Wehling: Einrichtung eines Webservers und Datenbankservers unter SuSE Linux 8.1 Professional
8
-
Linux-Praxis – Linux-Kurse, Webpage: http://www.linux-praxis.de/kurs.html,
referenziert: 02.04.2003
-
Chrstphs HTML-Kurs, Webpage: http://www.madteaparty.com/Chrstph/HTML-Kurs/Kurs/default.htm, referenziert: 02.04.2003
-
Tuxhausen Linux-Kurs: Inhalt, Webpage:
http://www.tuxhausen.de/kurs_inhalt.html, referenziert: 02.04.2003
-
Linux für alle: LAMP, Webpage: http://www.linux-fueralle.de/doc_show.php?docid=43, referenziert: 02.04.2003
-
Quakenet:#php FAQ ger, Webpage: http://faq.php-q.net/, referenziert:
02.04.2003
-
PHP: Variablen ausserhalb von PHP, HTML-Formulare (GET and POST),
Webpage: http://www.php.net/manual/de/language.variables.external.php,
referenziert: 02.04.2003
-
Steve Chervitz: [DAS] mysql.sock trouble, Webpage:
http://biodas.org/pipermail/das/2002-May/000382.html, referenziert:
02.04.2003
-
Randy Kobes: Re: DBI/mod_perl2 failure, Webpage:
http://mathforum.org/epigone/modperl-dev/swendtouyax/, referenziert:
02.04.2003
XIV. Literatur
-
Eilebrecht, L.: Apache Web-Server, Installation, Konfiguration, Administration,
3. Auflage, Bonn, MITP-Verlag, 2000, ISBN: 3-8266-0612-4
-
Kabir, M.: Die Apache Administration Bibel, 1. Auflage, Bonn, MITP-Verlag,
1999, ISBN: 3-8266-0554-3
-
SuSE Linux 8.1, Administrationshandbuch, 4. Auflage, Nürnberg,SuSE Linux
AG, 2002, ISBN: 3-935922-77-9
XV. Über den Autor
Jürgen Wehling, wissenschaftlicher Mitarbeiter,
Homepage: http://www.tud.uni-essen.de/wehling/wehling.htm,
Technologie und Didaktik der Technik TUD, http://www.tud.uni-essen.de,
Fachbereich 12 (Maschinenwesen),
Universität Duisburg-Essen Standort Essen, http://www.uni-essen.de
Jürgen Wehling: Einrichtung eines Webservers und Datenbankservers unter SuSE Linux 8.1 Professional
9