The Perfect Server - CentOS 5.2 - Seite 6

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

5 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: Der_Paul

Servus,

sehr schönes Howto, nur finde ich den Teil zu Procmail nicht. Oder bin ich einfach nur blind?

Viele Grüße
Paul


Von: Till

Procmail wird komplett durch ispconfig konfiguriert. Also einfach nur ispconfig installieren und dann email accounts anlegen.


Von: Momo

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


Von: salud

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.


Von: Till

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!