Server Setup · 5 min read · Sep 21, 2025
Der perfekte Server - OpenSUSE 11.3 x86_64 [ISPConfig 2] - Seite 5
11 Apache/PHP5/Ruby/Python/WebDAV
Jetzt installieren wir Apache mit PHP5:
yast2 -i apache2 apache2-devel apache2-mod_perl apache2-mod_php5 apache2-prefork perl-HTML-Parser perl-HTML-Tagset perl-Tie-IxHash perl-URI perl-libwww-perl php5 php5-devel zlib zlib-develDann installieren wir einige PHP5-Module:
yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curlAls nächstes bearbeiten wir /etc/apache2/httpd.conf:
vi /etc/apache2/httpd.confund ändern DirectoryIndex zu
| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php5 index.php4 index.php3 index.pl index.html.var index.aspx default.aspx [...] |
Aktivieren Sie das Rewrite-Apache-Modul:
a2enmod rewrite Bearbeiten Sie /etc/sysconfig/apache2 und fügen Sie SSL zur Zeile APACHE_SERVER_FLAGS hinzu:
vi /etc/sysconfig/apache2| [...] APACHE_SERVER_FLAGS="SSL" [...] |
Jetzt konfigurieren Sie Ihr System, um Apache beim Booten zu starten:
chkconfig --add apache2Dann führen Sie aus
SuSEconfig
/etc/init.d/apache2 start
11.1 PHP und Perl global deaktivieren
(Wenn Sie nicht planen, ISPConfig auf diesem Server zu installieren, überspringen Sie bitte diesen Abschnitt!)
In ISPConfig konfigurieren Sie PHP und Perl auf Website-Basis, d.h. Sie können angeben, welche Website PHP- und Perl-Skripte ausführen kann und welche nicht. Dies kann nur funktionieren, wenn PHP und Perl global deaktiviert sind, da sonst alle Websites PHP/Perl-Skripte ausführen könnten, unabhängig davon, was Sie in ISPConfig angeben.
Um PHP und Perl global zu deaktivieren, bearbeiten wir /etc/mime.types und kommentieren die Zeilen application/x-perl und application/x-php aus:
vi /etc/mime.types| [...] #application/x-perl pl pm al perl #application/x-php php php3 php4 [...] |
Dann bearbeiten Sie /etc/apache2/conf.d/php5.conf und kommentieren alle AddHandler-Zeilen aus:
vi /etc/apache2/conf.d/php5.conf| |
Danach starten wir Apache neu:
/etc/init.d/apache2 restart11.2 mod_ruby
OpenSUSE 11.3 hat kein mod_ruby-Paket, daher müssen wir es manuell kompilieren. Zuerst installieren wir die Voraussetzungen:
yast2 -i apache2-devel ruby ruby-develDanach bauen wir mod_ruby wie folgt:
cd /tmp
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install
Um mod_ruby zu aktivieren, führen Sie aus…
a2enmod ruby … und starten Sie Apache neu:
/etc/init.d/apache2 restart11.3 mod_python
Um mod_python zu installieren, führen wir einfach aus:
yast2 -i apache2-mod_pythonUm mod_python zu aktivieren, führen Sie aus…
a2enmod python … und starten Sie Apache neu:
/etc/init.d/apache2 restart11.4 WebDAV
Aktivieren Sie die WebDAV-Module… a2enmod dav
a2enmod dav_fs
a2enmod dav_lock
… und starten Sie Apache neu:
/etc/init.d/apache2 restart12 Proftpd
Ich möchte ProFTPd anstelle von vsftpd verwenden, das der Standard-FTP-Server von SUSE ist, da die Steuerungssoftware, die ich auf diesem Server installieren möchte (ISPConfig), besser mit ProFTPd auf OpenSUSE 11.3 funktioniert. Da es keine OpenSUSE-Pakete für ProFTPd gibt, muss ich es manuell kompilieren.
Zuerst installieren wir einige Voraussetzungen:
yast2 -i libcap libcap-develDann bauen wir ProFTPd wie folgt:
cd /tmp/
wget –passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3a.tar.gz
tar xvfz proftpd-1.3.3a.tar.gz
cd proftpd-1.3.3a/
./configure –sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.3a*
Jetzt erstellen Sie die Datei /etc/init.d/proftpd:
vi /etc/init.d/proftpd| #! /bin/sh # Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Deutschland. # Alle Rechte vorbehalten. # # Originalautor: Marius Tomaschewski <[email protected]> # # Leicht modifiziert im Jahr 2003 für die Verwendung mit SuSE Linux 8.1, # von http://www.learnlinux.co.uk/ # # Leicht modifiziert im Jahr 2005 für die Verwendung mit SuSE Linux 9.2, # von Falko Timme # # /etc/init.d/proftpd # ### BEGIN INIT INFO # Provides: proftpd # Required-Start: $network $remote_fs $syslog $named # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Startet den ProFTPD-Server ### END INIT INFO # Bestimmen Sie die Basis und folgen Sie einem Runlevel-Linknamen. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Erzwingen Sie die Ausführung, wenn nicht von einem Runlevel-Verzeichnis aufgerufen. test $link = $base && START_PROFTPD=yes # Modifiziert von learnlinux.co.uk test "$START_PROFTPD" = yes || exit 0 # Modifiziert von learnlinux.co.uk # Rückgabewerte gemäß LSB für alle Befehle außer # status (siehe unten): # # 0 - Erfolg # 1 - allgemeiner oder nicht spezifizierter Fehler # 2 - ungültiges oder überschüssiges Argument(e) # 3 - nicht implementierte Funktion (z.B. "reload") # 4 - unzureichende Berechtigung # 5 - Programm ist nicht installiert # 6 - Programm ist nicht konfiguriert # 7 - Programm läuft nicht proftpd_cfg="/etc/proftpd.conf" proftpd_bin="/usr/local/sbin/proftpd" proftpd_pid="/usr/local/var/proftpd.pid" [ -r $proftpd_cfg ] || exit 6 [ -x $proftpd_bin ] || exit 5 # Statusfunktionen laden . /etc/rc.status # Zuerst den Status dieses Dienstes zurücksetzen rc_reset case "$1" in start) echo -n "Starte ProFTPD-Server: " test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n "Fahre ProFTPD-Server herunter: " test -x /usr/local/sbin/ftpshut && /usr/local/sbin/ftpshut now && sleep 1 /sbin/killproc -TERM $proftpd_bin test -f /etc/shutmsg && rm -f /etc/shutmsg rc_status -v ;; restart) ## Wenn das erste OK zurückgibt, rufen Sie das zweite auf, wenn das erste oder ## der zweite Befehl fehlschlägt, setzen Sie den Rückgabewert. $0 stop $0 start rc_status ;; try-restart) ## Stoppen Sie den Dienst und wenn dies erfolgreich ist (d.h. der ## Dienst lief vorher), starten Sie ihn erneut. ## Hinweis: noch nicht Teil von LSB (ab 0.7.5) $0 status >/dev/null && $0 restart rc_status ;; reload|force-reload) ## Exklusive Möglichkeit: Einige Dienste müssen gestoppt werden ## und gestartet werden, um eine neue Konfiguration zu erzwingen. echo -n "Lade ProFTPD-Server neu: " /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # Der Status hat einen etwas anderen für den Statusbefehl: # 0 - Dienst läuft # 1 - Dienst tot, aber /var/run/ pid Datei existiert # 2 - Dienst tot, aber /var/lock/ Sperrdatei existiert # 3 - Dienst läuft nicht echo -n "Überprüfen des ProFTPD-Servers: " checkproc $proftpd_bin rc_status -v ;; probe) ## Optional: Überprüfen Sie die Notwendigkeit eines Reloads, ## geben Sie das Argument an, das für einen Reload erforderlich ist. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo "Verwendung: $0 {start|stop|status|restart|reload|try-restart|probe}" exit 1 ;; esac # Setzen Sie einen Rückgabewert. rc_exit |
Dann führen Sie aus
chmod 755 /etc/init.d/proftpd
chkconfig –add proftpd
Starten Sie ProFTPd:
/etc/init.d/proftpd startWenn Sie den folgenden Fehler erhalten…
Starte ProFTPD-Server: - Fatal: UseIPv6: Die Verwendung der UseIPv6-Direktive erfordert IPv6-Unterstützung (–enable-ipv6) in Zeile 14 von ‘/etc/proftpd.conf’
startproc: Rückgabestatus des Elternteils von /usr/local/sbin/proftpd: 1
… öffnen Sie /etc/proftpd.conf und kommentieren Sie die Zeile UseIPv6 aus oder entfernen Sie sie:
vi /etc/proftpd.conf | [...] # Verwenden Sie standardmäßig keine IPv6-Unterstützung. #UseIPv6 off [...] |
Aus Sicherheitsgründen können Sie die folgenden Zeilen zu /etc/proftpd.conf hinzufügen:
vi /etc/proftpd.conf| [...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP-Server bereit." [...] |
Stellen Sie sicher, dass Sie die folgenden Zeilen auskommentieren, um FTP-Benutzern CHMOD zu erlauben:
| [...] # Verhindern Sie standardmäßig die Verwendung von SITE CHMOD # |
und starten Sie ProFTPd neu:
/etc/init.d/proftpd restartErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.