Server Setup · 6 min read · Dec 17, 2025

Il Server Perfetto - OpenSUSE 11.4 x86_64 [ISPConfig 2] - Pagina 5

11 Apache/PHP5/Ruby/Python/WebDAV

Ora installiamo Apache con PHP5:

yast2 -i apache2 apache2-devel apache2-mod_perl apache2-mod_php5 apache2-prefork perl-HTML-Parser perl-HTML-Tagset perl-Tie-IxHash perl-URI perl-libwww-perl php5 php5-devel zlib zlib-devel

Poi installiamo alcuni moduli PHP5:

yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl

Successivamente modifichiamo /etc/apache2/httpd.conf:

vi /etc/apache2/httpd.conf

e cambiamo DirectoryIndex in

| [...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php5 index.php4 index.php3 index.pl index.html.var index.aspx default.aspx [...] |

Abilita il modulo di riscrittura di Apache:

a2enmod rewrite 

Modifica /etc/sysconfig/apache2 e aggiungi SSL alla riga APACHE_SERVER_FLAGS:

vi /etc/sysconfig/apache2

| [...] APACHE_SERVER_FLAGS="SSL" [...] |

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

chkconfig -f --add apache2

Poi esegui

SuSEconfig
/etc/init.d/apache2 start

11.1 Disabilitare PHP e Perl Globalmente

(Se non prevedi di installare ISPConfig su questo server, salta questa sezione!)

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

Per disabilitare PHP e Perl globalmente, modifichiamo /etc/mime.types e commentiamo le righe application/x-perl e application/x-php:

vi /etc/mime.types

| [...] #application/x-perl pl pm al perl #application/x-php php php3 php4 [...] |

Poi modifica /etc/apache2/conf.d/php5.conf e commenta tutte le righe AddHandler:

vi /etc/apache2/conf.d/php5.conf

| #AddHandler application/x-httpd-php .php4 #AddHandler application/x-httpd-php .php5 #AddHandler application/x-httpd-php .php #AddHandler application/x-httpd-php-source .php4s #AddHandler application/x-httpd-php-source .php5s #AddHandler application/x-httpd-php-source .phps DirectoryIndex index.php4 DirectoryIndex index.php5 DirectoryIndex index.php |

Dopo di che riavviamo Apache:

/etc/init.d/apache2 restart

11.2 mod_ruby

OpenSUSE 11.4 non ha un pacchetto mod_ruby, quindi dobbiamo compilarlo manualmente. Prima installiamo i prerequisiti:

yast2 -i apache2-devel ruby ruby-devel

Successivamente costruiamo mod_ruby come segue:

cd /tmp
wget http://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

Per abilitare mod_ruby, esegui…

a2enmod ruby 

… e riavvia Apache:

/etc/init.d/apache2 restart

11.3 mod_python

Dobbiamo installare Python 2.7 in questo capitolo, ma entra in conflitto con il pacchetto patterns-openSUSE-minimal_base. Pertanto dobbiamo disinstallare prima quel pacchetto. Per farlo, avvia YaST:

yast2

In YaST, vai su Software > Gestione Software:

Digita patterns-openSUSE-minimal_base nel campo di ricerca e premi INVIO. Il pacchetto dovrebbe essere elencato come installato ( i) nella finestra principale. Seleziona il pacchetto e premi il tasto INVIO fino a quando non c’è un segno meno ( -) davanti al pacchetto (il meno sta per disinstallare), poi premi [Accetta]:

Come sostituzione per il pacchetto, devono essere installati alcuni altri pacchetti. Accetta la selezione premendo [OK]:

Esci da YaST dopo.

Per installare mod_python, esegui semplicemente:

yast2 -i apache2-mod_python

Per abilitare mod_python, esegui…

a2enmod python 

… e riavvia Apache:

/etc/init.d/apache2 restart

11.4 WebDAV

Abilita i moduli WebDAV… a2enmod dav
a2enmod dav_fs
a2enmod dav_lock

… e riavvia Apache:

/etc/init.d/apache2 restart

12 Proftpd

Voglio usare ProFTPd invece di vsftpd che è il server FTP predefinito di SUSE perché il software del pannello di controllo che installerò su questo server ( ISPConfig) funziona meglio con ProFTPd su OpenSUSE 11.4. Poiché non ci sono pacchetti OpenSUSE per ProFTPd, devo compilarlo manualmente.

Prima installiamo alcuni prerequisiti:

yast2 -i libcap libcap-devel

Poi costruiamo ProFTPd come segue:

cd /tmp/
wget –passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3d.tar.gz
tar xvfz proftpd-1.3.3d.tar.gz
cd proftpd-1.3.3d/
./configure –sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.3d*

Ora crea il file /etc/init.d/proftpd:

vi /etc/init.d/proftpd

| #! /bin/sh # Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Germania. # Tutti i diritti riservati. # # Autore originale: Marius Tomaschewski <[email protected]> # # Leggermente modificato nel 2003 per l'uso con SuSE Linux 8.1, # da http://www.learnlinux.co.uk/ # # Leggermente modificato nel 2005 per l'uso con SuSE Linux 9.2, # da Falko Timme # # /etc/init.d/proftpd # ### BEGIN INIT INFO # Provides: proftpd # Required-Start: $network $remote_fs $syslog $named # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Avvia il server ProFTPD ### END INIT INFO # Determina la base e segui un nome di collegamento runlevel. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Forza l'esecuzione se non chiamato da una directory runlevel. test $link = $base && START_PROFTPD=yes # Modificato da learnlinux.co.uk test "$START_PROFTPD" = yes || exit 0 # Modificato da learnlinux.co.uk # Valori di ritorno secondo LSB per tutti i comandi ma # stato (vedi sotto): # # 0 - successo # 1 - errore generico o non specificato # 2 - argomento(i) non valido o eccessivo # 3 - funzionalità non implementata (ad es. "reload") # 4 - privilegio insufficiente # 5 - programma non installato # 6 - programma non configurato # 7 - programma non in esecuzione proftpd_cfg="/etc/proftpd.conf" proftpd_bin="/usr/local/sbin/proftpd" proftpd_pid="/usr/local/var/proftpd.pid" [ -r $proftpd_cfg ] || exit 6 [ -x $proftpd_bin ] || exit 5 # Funzioni di stato sorgente . /etc/rc.status # Prima reimposta lo stato di questo servizio rc_reset case "$1" in start) echo -n "Avvio del server ProFTPD: " test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n "Arresto del server ProFTPD: " test -x /usr/local/sbin/ftpshut && /usr/local/sbin/ftpshut now && sleep 1 /sbin/killproc -TERM $proftpd_bin test -f /etc/shutmsg && rm -f /etc/shutmsg rc_status -v ;; restart) ## Se il primo ritorna OK chiama il secondo, se il primo o ## secondo comando fallisce, imposta il valore di ritorno echo. $0 stop $0 start rc_status ;; try-restart) ## Ferma il servizio e se questo riesce (cioè il ## servizio era in esecuzione prima), avvialo di nuovo. ## Nota: non (ancora) parte di LSB (a partire da 0.7.5) $0 status >/dev/null && $0 restart rc_status ;; reload|force-reload) ## Possibilità esclusiva: Alcuni servizi devono essere fermati ## e avviati per forzare un nuovo caricamento della configurazione. echo -n "Ricarica del server ProFTPD: " /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # Lo stato ha un leggermente diverso per il comando di stato: # 0 - servizio in esecuzione # 1 - servizio morto, ma il file pid di /var/run/ esiste # 2 - servizio morto, ma il file di blocco di /var/lock/ esiste # 3 - servizio non in esecuzione echo -n "Controllo del server ProFTPD: " checkproc $proftpd_bin rc_status -v ;; probe) ## Facoltativo: Prova per la necessità di un ricaricamento, ## fornisci l'argomento necessario per un ricaricamento. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo "Uso: $0 {start|stop|status|restart|reload|try-restart|probe}" exit 1 ;; esac # Imposta uno stato di uscita. rc_exit |

Poi esegui

chmod 755 /etc/init.d/proftpd
chkconfig -f –add proftpd

Avvia ProFTPd:

/etc/init.d/proftpd start

Se ricevi il seguente errore…

Avvio del server ProFTPD:  - Fatale: UseIPv6: L’uso della direttiva UseIPv6 richiede supporto IPv6 (–enable-ipv6) sulla riga 14 di ‘/etc/proftpd.conf’
startproc:  stato di uscita del genitore di /usr/local/sbin/proftpd: 1

… apri /etc/proftpd.conf e commenta o rimuovi la riga UseIPv6:

vi /etc/proftpd.conf 

| [...] # Non utilizzare il supporto IPv6 per impostazione predefinita. #UseIPv6 off [...] |

Per motivi di sicurezza puoi aggiungere le seguenti righe a /etc/proftpd.conf:

vi /etc/proftpd.conf

| [...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server pronto." [...] |

Assicurati di commentare le seguenti righe per consentire agli utenti ftp di CHMOD:

| [...] # Vietare l'uso di SITE CHMOD per impostazione predefinita # # DenyAll # [...] |

e riavvia ProFTPd:

/etc/init.d/proftpd restart
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.