Server Setup · 5 min read · Jan 19, 2026

Il Server Perfetto - CentOS 6.0 x86_64 [ISPConfig 2] - Pagina 5

12 Apache2 Con PHP, Ruby, Python, WebDAV

Ora installiamo Apache con PHP (questo è 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

Poi modifica /etc/httpd/conf/httpd.conf:

vi /etc/httpd/conf/httpd.conf

e cambia DirectoryIndex in

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

Ora configura il tuo sistema per avviare Apache all’avvio:

chkconfig --levels 235 httpd on

Avvia Apache:

/etc/init.d/httpd start

12.1 Disabilitare PHP Globalmente

(Se non hai intenzione di installare ISPConfig su questo server, per favore salta questa sezione!)

In ISPConfig configurerai PHP su base per-sito, cioè puoi specificare quale sito può eseguire script PHP e quale no. Questo può funzionare solo se PHP è disabilitato globalmente perché altrimenti tutti i siti web sarebbero in grado di eseguire script PHP, indipendentemente da ciò che specifichi in ISPConfig.

Per disabilitare PHP globalmente, modifichiamo /etc/httpd/conf.d/php.conf e commentiamo le righe AddHandler e AddType:

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

| # # PHP è un linguaggio di scripting incorporato in HTML che cerca di rendere facile per gli sviluppatori scrivere pagine web generate dinamicamente. # LoadModule php5_module modules/libphp5.so LoadModule php5_module modules/libphp5-zts.so # # Fai in modo che l'interprete PHP gestisca i file con estensione .php. # #AddHandler php5-script .php #AddType text/html .php # # Aggiungi index.php all'elenco dei file che saranno serviti come indici di directory. # DirectoryIndex index.php # # Decommenta la seguente riga per consentire a PHP di stampare in modo carino i file .phps # come codice sorgente PHP: # #AddType application/x-httpd-php-source .phps |

Dopo di che riavviamo Apache:

/etc/init.d/httpd restart

12.2 Installazione di mod_ruby

Per CentOS 6.0, non è disponibile alcun pacchetto mod_ruby, quindi dobbiamo compilarlo noi stessi. Prima installiamo alcune dipendenze:

yum install httpd-devel ruby ruby-devel

Successivamente scarichiamo e installiamo mod_ruby come segue:

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

Infine dobbiamo aggiungere il modulo mod_ruby alla configurazione di Apache, quindi creiamo il file /etc/httpd/conf.d/ruby.conf…

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

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

… e riavvia Apache:

/etc/init.d/httpd restart

(Se ometti la direttiva RubyAddPath /1.8, vedrai errori come i seguenti nel log degli errori di Apache quando chiami file Ruby:

[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in require': nessun file da caricare -- apache/ruby-run (LoadError) [Thu May 26 02:05:05 2011] [error] mod_ruby: impossibile richiedere apache/ruby-run [Thu May 26 02:05:05 2011] [error] mod_ruby: errore in ruby ) #### 12.3 Installazione di mod_python Il pacchetto mod_python è disponibile nei repository EPEL che possiamo abilitare come segue: 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 ``` Modifica /etc/yum.repos.d/epel.repo... ``` vi /etc/yum.repos.d/epel.repo ``` ... e aggiungi la riga priority=10 alla sezione [epel]: | ``` [epel] name=Pacchetti Extra per 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 [...] ``` | Per installare mod_python, eseguiamo semplicemente... ``` yum install mod_python ``` ... e riavviamo Apache successivamente: ``` /etc/init.d/httpd restart ``` #### 12.4 WebDAV WebDAV dovrebbe già essere abilitato, ma per controllarlo, apri /etc/httpd/conf/httpd.conf e assicurati che i seguenti tre moduli siano attivi: ``` 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 [...] ``` | Se devi modificare /etc/httpd/conf/httpd.conf, non dimenticare di riavviare Apache successivamente: ``` /etc/init.d/httpd restart ``` ### 13 ProFTPd ISPConfig ha un migliore supporto per proftpd rispetto a vsftpd, quindi rimuoviamo vsftpd: ``` yum remove vsftpd ``` Possiamo ora installare ProFTPd dal repository EPEL come segue: ``` yum install proftpd ``` Per motivi di sicurezza puoi anche aggiungere la seguente riga a /etc/proftpd.conf (grazie a Reinaldo Carvalho; ulteriori informazioni possono essere trovate qui: http://proftpd.org/localsite/Userguide/linked/userguide.html): ``` vi /etc/proftpd.conf ``` | ``` [...] IdentLookups off [...] ``` | Ora possiamo creare i collegamenti di avvio del sistema per ProFTPd: ``` chkconfig --levels 235 proftpd on ``` E infine avviamo Proftpd: ``` /etc/init.d/proftpd start ``` ### 14 Webalizer Per installare webalizer, basta eseguire ``` yum install webalizer ``` ### 15 Sincronizzare L'Orologio Di Sistema Se desideri avere l'orologio di sistema sincronizzato con un server NTP, fai quanto segue: ``` yum install ntp ``` chkconfig --levels 235 ntpd on tpdate 0.pool.ntp.org /etc/init.d/ntpd start ### 16 Installare Alcuni Moduli Perl ISPConfig viene fornito con SpamAssassin che ha bisogno di alcuni moduli Perl per funzionare. Installiamo i moduli Perl richiesti con un solo comando: ``` yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-Archive-Tar perl-NetAddr-IP ``` ### 17 La Fine La configurazione del server è ora completata. Puoi ora installare ISPConfig su di esso, seguendo queste istruzioni: http://www.ispconfig.org/manual_installation.htm Prima di installare ISPConfig, c'è una cosa importante che devi fare. Apri /usr/include/stdio.h e sostituisci getline con parseline nella riga 673: ``` vim /usr/include/stdio.h ``` | ``` [...] /* Comegetdelim’, ma legge fino a una nuova linea.

Questa funzione non fa parte di POSIX e quindi non è un vero e proprio punto di cancellazione. Ma a causa della somiglianza con un’interfaccia POSIX o a causa dell’implementazione, è un punto di cancellazione e quindi non è contrassegnato con THROW. / extern _IO_ssize_t parseline (char *restrict __lineptr,

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

#endif […]


Se non lo fai, l'installazione fallirà a causa del seguente errore:

htpasswd.c:101: errore: tipi in conflitto per âgetlineâ  
/usr/include/stdio.h:673: nota: la dichiarazione precedente di âgetlineâ era qui  
make[2]: * [htpasswd.o] Errore 1  
make[2]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'  
make[1]: * [build-support] Errore 1  
make[1]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'  
make: *** [build] Errore 2  
ERRORE: Impossibile creare Apache

Puoi annullare la modifica a /usr/include/stdio.h dopo l'installazione riuscita di ISPConfig (ma non dimenticare di cambiarla di nuovo ogni volta che vuoi aggiornare ISPConfig!).

#### 17.1 Una Nota Su SuExec

Se desideri eseguire script CGI sotto suExec, dovresti specificare /var/www come directory home per i siti web creati da ISPConfig poiché suExec di CentOS è compilato con /var/www come Doc_Root. Esegui

/usr/sbin/suexec -V


e l'output dovrebbe apparire così:

[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 ~]#

Quindi, se desideri utilizzare suExec con ISPconfig, non cambiare la root web predefinita (che è /var/www) se utilizzi la modalità esperto durante l'installazione di ISPConfig (in modalità standard non puoi cambiare la root web comunque, quindi potrai utilizzare suExec in ogni caso).

### 18 Link

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

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.