Server-Konfiguration · 5 min read · Jan 19, 2026

Der perfekte Server - CentOS 6.0 x86_64 [ISPConfig 2] - Seite 5

12 Apache2 Mit PHP, Ruby, Python, WebDAV

Jetzt installieren wir Apache mit PHP (dies ist PHP 5.3.2):

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 bearbeiten Sie /etc/httpd/conf/httpd.conf:

vi /etc/httpd/conf/httpd.conf

und ändern Sie DirectoryIndex zu

| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...] |

Jetzt konfigurieren Sie Ihr System, um Apache beim Booten zu starten:

chkconfig --levels 235 httpd on

Starten Sie Apache:

/etc/init.d/httpd start

12.1 PHP Global Deaktivieren

(Wenn Sie nicht planen, ISPConfig auf diesem Server zu installieren, überspringen Sie bitte diesen Abschnitt!)

In ISPConfig konfigurieren Sie PHP auf einer pro-Website-Basis, d.h. Sie können angeben, welche Website PHP-Skripte ausführen kann und welche nicht. Dies kann nur funktionieren, wenn PHP global deaktiviert ist, da sonst alle Websites PHP-Skripte ausführen könnten, unabhängig davon, was Sie in ISPConfig angeben.

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

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

| # # PHP ist eine in HTML eingebettete Skriptsprache, die es Entwicklern # erleichtern soll, dynamisch generierte Webseiten zu schreiben. # LoadModule php5_module modules/libphp5.so LoadModule php5_module modules/libphp5-zts.so # # Veranlassen Sie den PHP-Interpreter, Dateien mit der .php-Erweiterung zu verarbeiten. # #AddHandler php5-script .php #AddType text/html .php # # Fügen Sie index.php zur Liste der Dateien hinzu, die als Verzeichnisindizes # bereitgestellt werden. # DirectoryIndex index.php # # Kommentieren Sie die folgende Zeile aus, um PHP zu erlauben, .phps # Dateien als PHP-Quellcode schön darzustellen: # #AddType application/x-httpd-php-source .phps |

Danach starten wir Apache neu:

/etc/init.d/httpd restart

12.2 mod_ruby Installieren

Für CentOS 6.0 ist kein mod_ruby-Paket verfügbar, also müssen wir es selbst kompilieren. Zuerst installieren wir einige Voraussetzungen:

yum install httpd-devel ruby ruby-devel

Als nächstes laden wir mod_ruby herunter und installieren es wie folgt:

cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install

Schließlich müssen wir das mod_ruby-Modul zur Apache-Konfiguration hinzufügen, also erstellen wir die Datei /etc/httpd/conf.d/ruby.conf…

vi /etc/httpd/conf.d/ruby.conf

| LoadModule ruby_module modules/mod_ruby.so RubyAddPath /1.8 |

… und starten Sie Apache neu:

/etc/init.d/httpd restart

(Wenn Sie die RubyAddPath /1.8-Direktive weglassen, sehen Sie Fehler wie die folgenden im Fehlerprotokoll von Apache, wenn Sie Ruby-Dateien aufrufen:

[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in require': keine solche Datei zu laden -- apache/ruby-run (LoadError) [Thu May 26 02:05:05 2011] [error] mod_ruby: konnte apache/ruby-run nicht anfordern [Thu May 26 02:05:05 2011] [error] mod_ruby: Fehler in Ruby ) #### 12.3 mod_python Installieren Das mod_python-Paket ist in den EPEL-Repositories verfügbar, die wir wie folgt aktivieren können: rpm --import https://fedoraproject.org/static/0608B895.txt wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm rpm -ivh epel-release-6-5.noarch.rpm ``` yum install yum-priorities ``` Bearbeiten Sie /etc/yum.repos.d/epel.repo... ``` vi /etc/yum.repos.d/epel.repo ``` ... und fügen Sie die Zeile priority=10 zum [epel]-Abschnitt hinzu: | ``` [epel] name=Extra Pakete für Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] ``` | Um mod_python zu installieren, führen wir einfach aus... ``` yum install mod_python ``` ... und starten Sie Apache danach neu: ``` /etc/init.d/httpd restart ``` #### 12.4 WebDAV WebDAV sollte bereits aktiviert sein, aber um dies zu überprüfen, öffnen Sie /etc/httpd/conf/httpd.conf und stellen Sie sicher, dass die folgenden drei Module aktiv sind: ``` vi /etc/httpd/conf/httpd.conf ``` | ``` [...] LoadModule auth_digest_module modules/mod_auth_digest.so [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...] ``` | Wenn Sie /etc/httpd/conf/httpd.conf ändern müssen, vergessen Sie nicht, Apache danach neu zu starten: ``` /etc/init.d/httpd restart ``` ### 13 ProFTPd ISPConfig hat eine bessere Unterstützung für proftpd als für vsftpd, also lassen Sie uns vsftpd entfernen: ``` yum remove vsftpd ``` Wir können jetzt ProFTPd aus dem EPEL-Repository wie folgt installieren: ``` yum install proftpd ``` Aus Sicherheitsgründen können Sie auch die folgende Zeile zu /etc/proftpd.conf hinzufügen (danke an Reinaldo Carvalho; weitere Informationen finden Sie hier: http://proftpd.org/localsite/Userguide/linked/userguide.html): ``` vi /etc/proftpd.conf ``` | ``` [...] IdentLookups off [...]``` | Jetzt können wir die Systemstartlinks 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ühren Sie einfach aus ``` yum install webalizer ``` ### 15 Systemuhr Synchronisieren Wenn Sie die Systemuhr mit einem NTP-Server synchronisieren möchten, tun Sie Folgendes: ``` yum install ntp ``` chkconfig --levels 235 ntpd on ntpdate 0.pool.ntp.org /etc/init.d/ntpd start ### 16 Einige Perl-Module Installieren ISPConfig wird mit SpamAssassin geliefert, das einige Perl-Module benötigt, um zu funktionieren. Wir installieren die erforderlichen Perl-Module mit einem einzigen Befehl: ``` yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-Archive-Tar perl-NetAddr-IP ``` ### 17 Das Ende Die Konfiguration des Servers ist nun abgeschlossen. Sie können nun ISPConfig darauf installieren, indem Sie diese Anweisungen befolgen: http://www.ispconfig.org/manual_installation.htm Bevor Sie ISPConfig installieren, gibt es eine wichtige Sache, die Sie tun müssen. Öffnen Sie /usr/include/stdio.h und ersetzen Sie getline durch parseline in Zeile 673: ``` vim /usr/include/stdio.h ``` | ``` [...] /* Wiegetdelim’, aber liest bis zu einer neuen Zeile.

Diese Funktion ist kein Teil von POSIX und daher kein offizieller Abbruchpunkt. Aber aufgrund der Ähnlichkeit mit einer POSIX-Schnittstelle oder aufgrund der Implementierung ist es ein Abbruchpunkt und daher nicht mit THROW gekennzeichnet. / extern _IO_ssize_t parseline (char *restrict __lineptr,

                        size_t *__restrict __n,
                        FILE *__restrict __stream) __wur;

#endif […]



Wenn Sie dies nicht tun, schlägt die Installation aufgrund des folgenden Fehlers fehl:

htpasswd.c:101: Fehler: widersprüchliche Typen für âgetlineâ  
/usr/include/stdio.h:673: Hinweis: vorherige Deklaration von âgetlineâ war hier  
make[2]: * [htpasswd.o] Fehler 1  
make[2]: Verlasse das Verzeichnis `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'  
make[1]: * [build-support] Fehler 1  
make[1]: Verlasse das Verzeichnis `/home/install_ispconfig/compile_aps/apache_1.3.41'  
make: *** [build] Fehler 2  
FEHLER: Konnte Apache nicht erstellen

Sie können die Änderung an /usr/include/stdio.h nach der erfolgreichen ISPConfig-Installation rückgängig machen (aber vergessen Sie nicht, sie zurückzuändern, wann immer Sie ISPConfig aktualisieren möchten!).

#### 17.1 Eine Anmerkung zu SuExec

Wenn Sie CGI-Skripte unter suExec ausführen möchten, sollten Sie /var/www als das Home-Verzeichnis für von ISPConfig erstellte Websites angeben, da CentOS' suExec mit /var/www als Doc_Root kompiliert ist. Führen Sie aus

/usr/sbin/suexec -V


und die Ausgabe sollte so 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 Sie also suExec mit ISPConfig verwenden möchten, ändern Sie das Standard-Webverzeichnis (das /var/www ist) nicht, wenn Sie den Expertenmodus während der ISPConfig-Installation verwenden (im Standardmodus können Sie das Webverzeichnis ohnehin nicht ändern, sodass Sie suExec in jedem Fall verwenden können).

### 18 Links

- CentOS: http://www.centos.org/
- ISPConfig 2: http://www.ispconfig.org/ispconfig-2/
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.