Das Perfekte Setup - SuSE 10.1 (32-bit) - Seite 6

9 Apache/PHP5

Nun 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-devel

Dann installieren wir einige PHP5 Module:

yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dbase php5-debuginfo php5-dom php5-filepro php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mhash php5-mysql php5-mysqli php5-ncurses 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 curl

Als Nächstes bearbeiten wir /etc/apache2/httpd.conf:

vi /etc/apache2/httpd.conf

und ä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
Bearbeite /etc/sysconfig/apache2 und füge das Wort rewrite der APACHE_MODULES Zeile hinzu:

vi /etc/sysconfig/apache2


APACHE_MODULES="actions alias auth_basic [...] negotiation setenvif ssl suexec userdir php5 rewrite"
Füge auch SSL der APACHE_SERVER_FLAGS Zeile hinzu:
APACHE_SERVER_FLAGS="SSL"
Konfiguriere Dein System nun so, dass es Apache beim Hochfahren startet:

chkconfig --add apache2

Führe dann Folgendes aus

SuSEconfig
/etc/init.d/apache2 start

9.1 PHP und Perl global deaktivieren

(Wenn Du nicht vorhast ISPConfig auf diesem Server zu installieren, bitte überspringe diesen Abschnitt!)

In ISPConfig wirst Du PHP und Perl pro Webseite konfigurieren, d.h. Du kannst festlegen, welche Webseite PHP und Perl Skripte ausführen kann und welche nicht. Das funktioniert nur, wenn PHP und Perl global deaktiviert ist, da sonst alle Webseiten in der Lage wären, PHP/Perl Skripte auszuführen, ganz gleich was Du in ISPConfig festlegst.

Um PHP und Perl global zu deaktivieren, bearbeiten wir /etc/mime.types und kommentieren die application/x-perl und application/x-php Zeile aus:

vi /etc/mime.types


#application/x-perl pl pm al perl
#application/x-php php php3 php4
Danach starten wir Apache neu:

/etc/init.d/apache2 restart


10 Proftpd

Ich möchte Proftpd anstelle von vsftpd verwenden, was SuSEs Standard FTP Server ist, da die Control Panel Software, die ich auf diesem Server installieren werde (ISPConfig), Proftpd auf SUSE 10.1 (auf anderen Distributionen ist das anders) verlangt. Da es für Proftpd keine SUSE Pakete gibt, muss ich es manuell kompilieren:

cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0.tar.gz
tar xvfz proftpd-1.3.0.tar.gz
cd proftpd-1.3.0/
./configure --sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.0*

Erstelle nun die Datei /etc/init.d/proftpd:

vi /etc/init.d/proftpd


#! /bin/sh
# Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Germany. # All rights reserved. # # Original author: Marius Tomaschewski <mt@suse.de> # # Slightly modified in 2003 for use with SuSE Linux 8.1, # by http://www.learnlinux.co.uk/ # # Slightly modified in 2005 for use with SuSE Linux 9.2, # by 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: Starts ProFTPD server ### END INIT INFO# Determine the base and follow a runlevel link name. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Force execution if not called by a runlevel directory. test $link = $base && START_PROFTPD=yes # Modified by learnlinux.co.uk test "$START_PROFTPD" = yes || exit 0 # Modified by learnlinux.co.uk # Return values acc. to LSB for all commands but # status (see below): # # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running 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 # Source status functions . /etc/rc.status # First reset status of this service rc_reset case "$1" in start) echo -n "Starting ProFTPD Server: " test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n "Shutting down ProFTPD Server: " 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) ## If first returns OK call the second, if first or ## second command fails, set echo return value. $0 stop $0 start rc_status ;; try-restart) ## Stop the service and if this succeeds (i.e. the ## service was running before), start it again. ## Note: not (yet) part of LSB (as of 0.7.5) $0 status >/dev/null && $0 restart rc_status ;; reload|force-reload) ## Exclusive possibility: Some services must be stopped ## and started to force a new load of the configuration. echo -n "Reload ProFTPD Server: " /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # Status has a slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running echo -n "Checking for ProFTPD Server: " checkproc $proftpd_bin rc_status -v ;; probe) ## Optional: Probe for the necessity of a reload, ## give out the argument which is required for a reload. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo "Usage: $0 {start|stop|status|restart|reload|try-restart|probe}" exit 1 ;; esac # Set an exit status. rc_exit
Führe dann dies aus

chmod 755 /etc/init.d/proftpd
chkconfig --add proftpd

Starte Proftpd:

/etc/init.d/proftpd start

Aus Gründen der Sicherheit kannst Du folgende Zeilen /etc/proftpd.conf hinzufügen:

vi /etc/proftpd.conf


DefaultRoot ~
IdentLookups off ServerIdent on "FTP Server ready."
Pass auf, dass Du folgende Zeilen auskommentierst um ftp Benutzern CHMOD zu erlauben:
# Bar use of SITE CHMOD by default
#<Limit SITE_CHMOD> # DenyAll #</Limit>
und starte Proftpd neu:

/etc/init.d/proftpd restart


11 Webalizer

Um Webalizer zu installieren, führe Folgendes aus

yast2 -i webalizer


12 Die System Uhr synchronisieren

Wenn Du die System Uhr mit einem NTP Server synchronisieren möchtest, führe Folgendes aus:

yast2 -i xntp

Füge einen NTP Server mit YaST hinzu:

yast2

Wähle Network Services -> NTP Client:


Wähle dann Automatically Start NTP Daemon During Boot. Aktiviere unter NTP Server Configuration Use Random Servers from pool.ntp.org. Wähle dann Finish und Quit.

13 Installiere einige Perl Module, die von SpamAssassin (in ISPConfig) benötigt werden

Führe dies aus

yast2 -i perl-HTML-Parser perl-Net-DNS perl-Digest-SHA1


14 AppArmor deaktivieren

AppArmor ist eine Sicherheitserweiterung von SuSE (ähnlich wie Fedoras SELinux). Meiner Meinung nach brauchst Du ein sicheres System nicht zu konfigurieren. Für gewöhnlich verursacht das mehr Probleme als dass es Vorteile schafft. Daher deaktiviere ich es (das ist ein Muss wenn Du später ISPConfig installieren möchtest).

So können wir es deaktivieren:/etc/init.d/boot.apparmor stop
chkconfig -d boot.apparmor

15 ISPConfig

Die Konfiguration des Servers ist nun abgeschlossen. Wenn Du magst, kannst Du nun ISPConfig installieren. Sieh Dir dazu bitte die Installation von ISPConfig an: http://www.ispconfig.org/manual_installation.htm

15.1 Eine Notiz über SuExec

Wenn Du CGI Skripte unter suExec ausführen möchtest, solltest Du /srv/www als das Home Verzeichnis für Web Sites festlegen, die von ISPConfig erstellt werden, da OpenSuSE 10.1s suExec mit /srv/www as Doc_Root erstellt wird. Führe /usr/sbin/suexec2-V aus und die Ausgabe sollte wie folgt aussehen:

/usr/sbin/suexec2 -V


Um /srv/www als Home Verzeichnis für Webseiten während der Installation von ISPConfig auszuwählen, führe Folgendes aus: Wenn Du nach dem Installations-Modus gefragt wirst, wähle den Expertenmodus.


Später, während der Installation wirst Du gefragt, ob das Standard-Verzeichnis /home/www das Verzeichnis sein soll, in dem ISPConfig Webseiten erstellen soll. Antworte mit n und gib /srv/www als das Home Verzeichnis für Webseiten an.

16 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte