Server Setup · 8 min read · Jan 08, 2026
Il Server Perfetto - CentOS 6.5 x86_64 (Apache2, MySQL, PHP, PureFTPD, Postfix, Dovecot e ISPConfig 3) - Pagina 4
13 Imposta le Password di MySQL e Configura phpMyAdmin
Imposta le password per l’account root di MySQL:
mysql_secure_installation[root@server1 tmp]# mysql_secure_installationNOTE: E’ RACCOMANDATO ESEGUIRE TUTTE LE PARTI DI QUESTO SCRIPT PER TUTTI I SERVER MySQL IN USO IN PRODUZIONE! PER FAVORE LEGGI ATTENTAMENTE OGNI PASSO!
Per accedere a MySQL e metterlo in sicurezza, avremo bisogno della password attuale per l’utente root. Se hai appena installato MySQL e non hai ancora impostato la password root, la password sarà vuota, quindi dovresti semplicemente premere invio qui.
Inserisci la password attuale per root (premi invio per nessuna): OK, password utilizzata con successo, procedendo…
Impostare la password root? [Y/n] <– INVIO Nuova password: <– yourrootsqlpassword Reinserisci la nuova password: <– yourrootsqlpassword Password aggiornata con successo! Ricaricamento delle tabelle dei privilegi.. … Successo!
Per impostazione predefinita, un’installazione di MySQL ha un utente anonimo, che consente a chiunque di accedere a MySQL senza dover avere un account utente creato per loro. Questo è destinato solo per test e per rendere l’installazione un po’ più fluida. Dovresti rimuoverli prima di passare a un ambiente di produzione.
Rimuovere gli utenti anonimi? [Y/n] <– INVIO … Successo!
Normalmente, root dovrebbe essere autorizzato a connettersi solo da ‘localhost’. Questo assicura che qualcuno non possa indovinare la password root dalla rete.
Negare l’accesso remoto a root? [Y/n] <– INVIO … Successo!
Per impostazione predefinita, MySQL viene fornito con un database chiamato ‘test’ a cui chiunque può accedere. Questo è anche destinato solo per test e dovrebbe essere rimosso prima di passare a un ambiente di produzione.
Rimuovere il database di test e l’accesso ad esso? [Y/n] <– INVIO
- Eliminazione del database di test… … Successo!
- Rimozione dei privilegi sul database di test… … Successo!
Ricaricare le tabelle dei privilegi garantirà che tutte le modifiche apportate finora abbiano effetto immediato.
Ricaricare le tabelle dei privilegi ora? [Y/n] <– INVIO … Successo!
Pulizia…
Tutto fatto! Se hai completato tutti i passaggi sopra, la tua installazione di MySQL dovrebbe ora essere sicura.
Grazie per aver utilizzato MySQL!
[root@server1 tmp]#Ora configuriamo phpMyAdmin. Cambiamo la configurazione di Apache in modo che phpMyAdmin consenta connessioni non solo da localhost (commentando la sezione
vi /etc/httpd/conf.d/phpmyadmin.confCentOS è incoerente nei nomi dei file che i pacchetti usano, a seconda dell’ordine del tuo repository, potrebbe essere che il file di configurazione di phpmyadmin sia in camelcase. Quindi, se il comando vi sopra restituisce un nuovo file vuoto, utilizza questo comando invece:
vi /etc/httpd/conf.d/phpMyAdmin.conf| # # Applicazione web per gestire MySQL # # |
Successivamente cambiamo l’autenticazione in phpMyAdmin da cookie a http:
vi /usr/share/phpmyadmin/config.inc.php| [...] /* Tipo di autenticazione */ $cfg['Servers'][$i]['auth_type'] = 'http'; [...] |
Poi creiamo i collegamenti di avvio del sistema per Apache e lo avviamo:
chkconfig --levels 235 httpd on
/etc/init.d/httpd startOra puoi indirizzare il tuo browser a http://server1.example.com/phpmyadmin/ o http://192.168.0.100/phpmyadmin/ e accedere con il nome utente root e la tua nuova password root di MySQL.
Se ricevi un messaggio di errore come questo:
[root@server1 tmp]# /etc/init.d/httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for server1.example.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerNameallora il tuo hostname non è risolvibile in dns o non è ancora impostato nel file /etc/hosts. Per risolvere questo problema, esegui:
echo "192.168.1.100 server1.example.com server1" >> /etc/hostssostituisci “server1.example.com” nel comando sopra con il tuo hostname completo e “server1” con la parte secondaria dell’hostname.
14 Installa Amavisd-new, SpamAssassin e ClamAV
Per installare amavisd-new, spamassassin e clamav, esegui il seguente comando:
yum -y install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysqlPoi avviamo freshclam, amavisd e clamd.amavisd:
sa-update
chkconfig --levels 235 amavisd on
chkconfig --del clamd
chkconfig --levels 235 clamd.amavisd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/etc/init.d/clamd.amavisd start15 Installazione di Apache2 con mod_php, mod_fcgi/PHP5 e suPHP
ISPConfig 3 ti consente di utilizzare mod_php, mod_fcgi/PHP5, cgi/PHP5 e suPHP su base per sito web.
Possiamo installare Apache2 con mod_php5, mod_fcgid e PHP5 come segue:
yum -y install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-develSuccessivamente apriamo /etc/php.ini…
vi /etc/php.ini… e cambiamo la segnalazione degli errori (in modo che le notifiche non vengano più visualizzate) e decommentiamo cgi.fix_pathinfo=1:
| [...] ;error_reporting = E_ALL & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED [...] ; cgi.fix_pathinfo fornisce supporto *reale* per PATH_INFO/PATH_TRANSLATED per CGI. Il comportamento precedente di PHP era impostare PATH_TRANSLATED su SCRIPT_FILENAME e non comprendere cosa sia PATH_INFO. Per ulteriori informazioni su PATH_INFO, vedere le specifiche cgi. Impostare questo su 1 farà sì che PHP CGI corregga i suoi percorsi per conformarsi alla specifica. Un'impostazione di zero fa sì che PHP si comporti come prima. Il valore predefinito è 1. Dovresti correggere i tuoi script per utilizzare SCRIPT_FILENAME piuttosto che PATH_TRANSLATED. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=1 [...] |
Successivamente installiamo suPHP (c’è un pacchetto mod_suphp disponibile nei repository, ma sfortunatamente non è compatibile con ISPConfig, quindi dobbiamo costruire suPHP noi stessi):
cd /tmp
wget http://suphp.org/download/suphp-0.7.1.tar.gz
tar xvfz suphp-0.7.1.tar.gz
cd suphp-0.7.1/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=owner --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes
make
make installPoi aggiungiamo il modulo suPHP alla nostra configurazione di Apache…
vi /etc/httpd/conf.d/suphp.conf| LoadModule suphp_module modules/mod_suphp.so |
… e creiamo il file /etc/suphp.conf come segue:
vi /etc/suphp.conf| [global] ;Percorso del logfile logfile=/var/log/httpd/suphp.log ;Livello di log loglevel=info ;Utente con cui Apache sta girando webserver_user=apache ;Percorso in cui devono trovarsi tutti gli script docroot=/ ;Percorso per chroot() prima di eseguire lo script ;chroot=/mychroot ; Opzioni di sicurezza allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false ;Controlla se lo script è all'interno di DOCUMENT_ROOT check_vhost_docroot=true ;Invia messaggi di errore minori al browser errors_to_browser=false ;Variabile di ambiente PATH env_path=/bin:/usr/bin ;Umask da impostare, specificare in notazione ottale umask=0077 ; UID minimo min_uid=100 ; GID minimo min_gid=100 [handlers] ;Handler per gli script php x-httpd-suphp="php:/usr/bin/php-cgi" ;Handler per gli script CGI x-suphp-cgi="execute:!self" |
Infine riavviamo Apache:
/etc/init.d/httpd restart15.1 Ruby
A partire dalla versione 3.0.3, ISPConfig 3 ha supporto integrato per Ruby. Invece di utilizzare CGI/FastCGI, ISPConfig dipende dalla disponibilità di mod_ruby nell’Apache del server.
Per CentOS 6.4, non è disponibile alcun pacchetto mod_ruby, quindi dobbiamo compilarlo noi stessi. Prima installiamo alcune dipendenze:
yum -y install httpd-devel ruby ruby-develSuccessivamente scarichiamo e installiamo mod_ruby come segue:
cd /tmp
wget http://fossies.org/unix/www/apache_httpd_modules/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 installInfine 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 riavviamo 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': no such file to load -- apache/ruby-run (LoadError)
[Thu May 26 02:05:05 2011] [error] mod_ruby: failed to require apache/ruby-run
[Thu May 26 02:05:05 2011] [error] mod_ruby: error in ruby)
15.2 Python
Per installare mod_python, eseguiamo semplicemente…
yum -y install mod_python… e riavviamo Apache successivamente:
/etc/init.d/httpd restart15.3 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 restart15.4 Versioni PHP Aggiuntive
A partire da ISPConfig 3.0.5, è possibile avere più versioni di PHP su un server (selezionabili tramite ISPConfig) che possono essere eseguite tramite FastCGI e PHP-FPM. La procedura per costruire versioni PHP aggiuntive su CentOS è descritta in questo tutorial: Come Utilizzare Più Versioni di PHP (PHP-FPM & FastCGI) Con ISPConfig 3 (CentOS 6.3)
16 Installa PureFTPd
PureFTPd può essere installato con il seguente comando:
yum -y install pure-ftpdPoi crea i collegamenti di avvio del sistema e avvia PureFTPd:
chkconfig --levels 235 pure-ftpd on
/etc/init.d/pure-ftpd startOra configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati vengono trasferiti in chiaro. Utilizzando TLS, l’intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.
OpenSSL è necessario per TLS; per installare OpenSSL, eseguiamo semplicemente:
yum install opensslApri /etc/pure-ftpd/pure-ftpd.conf…
vi /etc/pure-ftpd/pure-ftpd.confSe desideri consentire sessioni FTP e TLS, imposta TLS su 1:
| [...] # Questa opzione può accettare tre valori : # 0 : disabilita il livello di crittografia SSL/TLS (predefinito). # 1 : accetta sia sessioni tradizionali che crittografate. # 2 : rifiuta le connessioni che non utilizzano meccanismi di sicurezza SSL/TLS, # comprese le sessioni anonime. # Non decommentare questo ciecamente. Assicurati che : # 1) Il tuo server sia stato compilato con supporto SSL/TLS (--with-tls), # 2) Un certificato valido sia in atto, # 3) Solo client compatibili accederanno. TLS 1 [...] |
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creo in /etc/ssl/private/, quindi creo prima quella directory:
mkdir -p /etc/ssl/private/Dopo, possiamo generare il certificato SSL come segue:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pemNome del Paese (codice di 2 lettere) [XX]: <– Inserisci il Nome del tuo Paese (es. “DE”). Nome dello Stato o della Provincia (nome completo) []: <– Inserisci il Nome del tuo Stato o Provincia. Nome della Località (es. città) [Città Predefinita]: <– Inserisci la tua Città. Nome dell’Organizzazione (es. azienda) [Azienda Predefinita Ltd]: <– Inserisci il Nome della tua Organizzazione (es. il nome della tua azienda). Nome dell’Unità Organizzativa (es. sezione) []: <– Inserisci il Nome della tua Unità Organizzativa (es. “Reparto IT”). Nome Comune (es. il tuo nome o il nome host del tuo server) []: <– Inserisci il Nome di Dominio Completo del sistema (es. “server1.example.com”). Indirizzo Email []: <– Inserisci il tuo Indirizzo Email.
Cambia i permessi del certificato SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pemInfine riavvia PureFTPd:
/etc/init.d/pure-ftpd restartEcco fatto. Ora puoi provare a connetterti utilizzando il tuo client FTP; tuttavia, dovresti configurare il tuo client FTP per utilizzare TLS.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.