Apache, Mail, DNS und MySQL Server für CentOS 5.0 (32-bit) auch bekannt als "Das Perfekte Setup" - Seite 5

12 Apache2 mit PHP

Nun installieren wir Apache mit PHP (PHP 5.1.6):

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

Bearbeite dann /etc/httpd/conf/httpd.conf:

vi /etc/httpd/conf/httpd.conf

und ändere DirectoryIndex zu
[...]
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...]
Konfiguriere nun Dein System, damit Apache beim Hochfahren gestartet wird:

chkconfig --levels 235 httpd on

Starte Apache:

/etc/init.d/httpd start


12.1 PHP global deaktivieren

(Wenn Du nicht vorhast ISPConfig auf diesem Server zu installieren, überspringe dieses Kapitel!)

In ISPConfig wirst Du PHP pro Web Site konfigurieren, d.h. Du kannst festlegen, welche Web Site PHP Skripte ausführen kann und welche nicht. Das funktioniert nur, wenn PHP global deaktiviert ist, da sonst alle Web Sites in der Lage wären, PHP Skripte auszuführen, egal was Du in ISPConfig festlegst.I

Um PHP global zu deaktivieren, bearbeiten wir /etc/httpd/conf.d/php.conf und kommentieren die AddHandler und AddType Zeilen aus:

vi /etc/httpd/conf.d/php.conf


#
# PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # LoadModule php5_module modules/libphp5.so # # Cause the PHP interpreter to handle files with a .php extension. # #AddHandler php5-script .php #AddType text/html .php # # Add index.php to the list of files that will be served as directory # indexes. # DirectoryIndex index.php # # Uncomment the following line to allow PHP to pretty-print .phps # files as PHP source code: # #AddType application/x-httpd-php-source .phps
Danach starten wir Apache neu:

/etc/init.d/httpd restart


13 ProFTPd

ISPConfig unterstützt proftpd besser als vsftpd, also entfernen wir vsftpd:

yum remove vsftpd

Da CentOS kein proftpd Paket hat, müssen wir Proftpd manuell kompilieren:

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

Die proftpd Binärdatei wird in /usr/local/sbin installiert, jedoch brauchen wir sie in /usr/sbin, also erstellen wir einen Symlink:

ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd

Erstelle nun das Init Skript /etc/init.d/proftpd:

vi /etc/init.d/proftpd


#!/bin/sh
# $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $ # # proftpd This shell script takes care of starting and stopping # proftpd. # # chkconfig: - 80 30 # description: ProFTPD is an enhanced FTP server with a focus towards # simplicity, security, and ease of configuration. # It features a very Apache-like configuration syntax, # and a highly customizable server infrastructure, # including support for multiple 'virtual' FTP servers, # anonymous FTP, and permission-based directory visibility. # processname: proftpd # config: /etc/proftp.conf # pidfile: /var/run/proftpd.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x /usr/sbin/proftpd ] || exit 0 RETVAL=0 prog="proftpd" start() { echo -n $"Starting $prog: " daemon proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd } stop() { echo -n $"Shutting down $prog: " killproc proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status proftpd RETVAL=$? ;; restart) stop start ;; condrestart) if [ -f /var/lock/subsys/proftpd ]; then stop start fi ;; reload) echo -n $"Re-reading $prog configuration: " killproc proftpd -HUP RETVAL=$? echo ;; *) echo "Usage: $prog {start|stop|restart|reload|condrestart|status}" exit 1 esac exit $RETVAL
Dann machen wir das Init Skript ausführbar:

chmod 755 /etc/init.d/proftpd

Als Nächstes öffnen wir /etc/proftpd.conf und ändern Group zu nobody:

vi /etc/proftpd.conf


[...]
Group nobody [...]
Aus Sicherheitsgründen kannst Du außerdem folgende Zeilen /etc/proftpd.conf hinzufügen (Dank an Reinaldo Carvalho; nähere Informationen findest Du hier: http://proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd.conf


[...]
DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...]
Jetzt können wir die System Startup Links für Proftpd erstellen:

chkconfig --levels 235 proftpd on

Und schließlich starten wir Proftpd:

/etc/init.d/proftpd start


14 Webalizer

Um Webalizer zu installieren, führe einfach dies aus

yum install webalizer


15 Synchronisation der System-Uhr

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

yum install ntp
chkconfig --levels 235 ntpd on
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd start

16 Installation einiger Perl Module

In ISPConfig ist SpamAssassin integriert, das einige Perl Module benötigt um zu funktionieren. Wir installieren die benötigten Perl Module mit einem einzigen Befehl:

yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1


17 Das Ende

Die Konfiguration des Servers ist nun abgeschlossen. Wenn Du magst, kannst Du nun ISPConfig installieren.

17.1 Eine Notiz über SuExec

Wenn Du CGI Skripte unter suExec ausführen möchtest, solltest Du /var/www als den Web Root für Web Sites festlegen, die von ISPConfig erstellt werden, da CentOS' suExec mit /var/www als Doc_Root erstellt wird. Führe Folgendes aus

/usr/sbin/suexec -V

und die Ausgabe sollte wie folgt aussehen:

[root@server1 ~]# /usr/sbin/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="public_html"

Sofern Du nicht den Standard-Web-Root ( /var/www) während der Installation von ISPConfig änderst, kannst Du CGI Skripte unter suExec mit ISPConfig ausführen.

18 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte