Deutsch| English

The Perfect Server - CentOS 5.2

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 Responses to “The Perfect Server - CentOS 5.2”

  1. Der_Paul Sagt:

    Servus,

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

    Viele Grüße
    Paul

  2. Till Sagt:

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

  3. Momo Sagt:

    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

  4. salud Sagt:

    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.

  5. Till Sagt:

    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!

Kommentar

Du musst eingeloggt um einen Kommentar zu hinterlassen.