12 Apache2 mit PHP & Ruby
Nun installieren wir Apache mit PHP (es handelt sich dabei um 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
Dann editiere /etc/httpd/conf/httpd.conf:
vi /etc/httpd/conf/httpd.conf
und ändere DirectoryIndex
[...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...] |
Nun konfigurieren wir das Sytem so um, dass es Apache beim Hochfahren mit startet:
chkconfig --levels 235 httpd on
Starte Apache:
/etc/init.d/httpd start
12.1 PHP global deaktivieren
(Wenn Du ISPCnfig nicht auf diesem Server installieren wirst, kann dieser Schritt ausgelassen werden!)
In ISPConfig wird PHP für jede einzelne Webseite konfiguriert, d. h. man kann angeben welche Seite PHP Skripte ausführen darf und welche nicht. Das funktioniert nur wenn PHP global deaktiviert wurde, da ansonsten alle Webseiten PHP Skripte ausführen könnten, unabhängig davon was in ISPConfig spezifiziert wird.
Um PHP global zu deaktivieren, editieren wir/etc/httpd/conf.d/php.conf und kommenteiren die Zeilen AddHandler und AddType 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 |
Hiernach wird Apache neu gestartet:
/etc/init.d/httpd restart
12.2 mod_ruby installieren
Für CentOS 5.2 gibt es kein mod_ruby Paket, daher müssen wir uns selbst eines kompilieren. Zuerst installieren wir einige Voraussetzungen:
yum install httpd-devel ruby ruby-devel
Als Nächstes laden wir mod_ruby herunter und installieren es folgendermassen:
cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz
tar zxvf mod_ruby-1.2.6.tar.gz
cd mod_ruby-1.2.6/
./configure.rb --with-apr-includes=/usr/include/apr-1
make
make install
Am Ende müssen wir das mod_ruby Modul der Apache Konfiguration zuweisen, daher erstellen wir die Datei /etc/httpd/conf.d/ruby.conf…
vi /etc/httpd/conf.d/ruby.conf
LoadModule ruby_module modules/mod_ruby.so |
… und starten Apache neu:
/etc/init.d/httpd restart
13 ProFTPd
ISPConfig unterstützt besser proftpd als vsftpd, daher entfernen wir vsftpd:
yum remove vsftpd
Da CentOS kein proftpd Paket mitbringt, müssen wir Proftpd manuell kompilieren:
cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.1.tar.gz
tar xvfz proftpd-1.3.1.tar.gz
cd proftpd-1.3.1/
./configure --sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.1*
Das proftpd Binary wird in /usr/local/sbin installiert, aber wir brauchen es in /usr/sbin, so dass wir einen Symlink erstellen:
ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd
Nun erstellen wir den 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 den Init-Skript ausführbar:
chmod 755 /etc/init.d/proftpd
Als Nächstes öffnen wir /etc/proftpd.conf und ändern Group to nobody:
vi /etc/proftpd.conf
[...] Group nobody [...] |
Aus Sicherheitsgründen kann man noch folgende Zeile zu /etc/proftpd.conf hinzufügen (Danke an Reinaldo Carvalho; mehr Informationen gibt es hier: http://proftpd.org/localsite/Userguide/linked/userguide.html):
vi /etc/proftpd.conf
[...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...] |
Nun können wir die System Startup-Links für Proftpd erstellen:
chkconfig --levels 235 proftpd on
Und endlich starten wir Proftpd:
/etc/init.d/proftpd start
14 Webalizer
Um webalizer zu installieren, einfach folgenden Befehl ausführen:
yum install webalizer
15 Die Systemuhrzeit synchronisieren
Wenn die Systemuhrzeit mit einem NTP Server synchronisiert werden soll, bitte Folgendes ausführen:
yum install ntp
chkconfig --levels 235 ntpd on
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd start
16 Einige Perl Module installieren
In ISPConfig ist SpamAssassin integriert, das einige Perl Module benötigt um zu funktionieren. Wir installieren diese Perl Module mit einem einzigen Befehl:
yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1
17 Zum Ende
Die Konfiguration des Servers ist nun beendet, wenn Du magst kannst Du nun ISPConfig darauf installieren.
17.1 Hinweis zu SuExec
Wenn Du CGI Skripte unter suExec ausführen möchtest, solltest Du /var/www as als Home Verzeichnis für Webseiten spezifizieren, die mit ISPConfig erstellt wurden, da CentOS suExec mit /var/www als Doc_Root kompiliert ist. Führe aus
/usr/sbin/suexec -V
Das Ergebnis sollte folgendermassen 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”
[root@server1 ~]#
Wenn Du suExec mit ISPConfig benutzen möchtest, ändere bitte nicht den Standard Web-Root, der /var/www ist, falls Du den Expertenmodus während der ISPConfig Installation benutzt. Im Standardmodus kann man den Web-Root allerdings ohnehin nicht ändern, daher wird suExec auf alle Fälle funktionieren.
18 Links
- CentOS: http://www.centos.org
- ISPConfig: http://www.ispconfig.org
- The Perfect Server - CentOS 5.2 - Seite 1
- The Perfect Server - CentOS 5.2 - Seite 2
- The Perfect Server - CentOS 5.2 - Seite 3
- The Perfect Server - CentOS 5.2 - Seite 4
- The Perfect Server - CentOS 5.2 - Seite 5
- The Perfect Server - CentOS 5.2 - Seite 6


Am 12.05.2009 um 12:40 Uhr
Servus,
sehr schönes Howto, nur finde ich den Teil zu Procmail nicht. Oder bin ich einfach nur blind?
Viele Grüße
Paul
Am 13.05.2009 um 13:31 Uhr
Procmail wird komplett durch ispconfig konfiguriert. Also einfach nur ispconfig installieren und dann email accounts anlegen.
Am 01.06.2009 um 13:48 Uhr
Hi Leute ich habe das tut jetzt mal gemacht doch ich bleib am fierwall hängen wenn ich auf Fierwamll configurationen gehe steht bei spache select ein freier platz und kann so nichts anwählen helft mir bitte
grüße maurice
Am 31.07.2009 um 16:31 Uhr
also für ein einstieg im intranet ganz nett aber für rootserver im internet unbrauchbar.da alle “themen” nur minimal bis kaum angeschnitten werden.eine grundkonfiguration würde ich das auch nicht nennen.der text ist immer der gleiche wie bei “The perfect Server - CentOS x.y” nur mit minimalen anpassungen.
Am 31.07.2009 um 17:16 Uhr
Du Scheinst den Sinn eines solchen Tutorials nicht ganz verstanden zu haben. Es ist eine Anleitung die Schrittweise die Instalation beschreibt und zwar komplett und vollständig. Es ist kein Lehrbuch für Systemadministratoren und soll dies auch nicht sein. Wenn Du also alle Themen in voller Tiefe behandelt haben möchtest, dann kauf Dir halt ein Buch. Und natürlich gibt es nur minimale Anpassungen in den Varianten für verschiedene CentOS Versionen, da sich CenTOS ja auch nicht fundemantal in jeder Version ändert. Da aber auch diese kleinen Änderunge dazu führen dass ein Setup unbrauchbar ist, wird das Tutorial für jede Version neu aufgelegt und so angepasst, dass alle Schritte funktionieren!