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