Installare Apache, MySQL e PHP su server Linux/CentOS 6.x (LAMP)
LAMP è l’acronimo di Linux, APache, MySQL, PHP. e questo articolo descriverà passo per passo l’installazione di un server Apache2 con supporto MySQL e PHP su una macchina virtuale con IP 192.168.0.13 con sistema operativo Linux/CentOS 6.4 64 bit.
Naturalmente la procedura è identica anche per server fisici e con IP differenti, essenziale è che siano collegati alla rete Internet in modo che possano scaricare i pacchetti software.
Per l’installazione di Linux/CentOS su Oracle VM VirtualBox si rimanda a questo altro articolo.
Tutta la procedura di installazione e configurazione viene eseguita da console, collegandosi tramite SSH, come si può rilevare seguendo il video incluso al termine dell’articolo.
- Installazione Apache2
Apache2 è disponibile come pacchetto CentOS, quindi possiamo installarlo con il comando yum:
yum install httpd
configuriamo il sistema per avviare Apache all’avvio:
chkconfig --levels 235 httpd on
avviamo Apache:
/etc/init.d/httpd start
Ricordiamo che con il sistema operativo CentOS la radice di default dei documenti di Apache è la directory /var/www/html/ e il file di configurazione è /etc/httpd/conf/httpd.conf mentre ulteriori configurazioni sono memorizzate nei file contenuti nella directory /etc/httpd/conf.d/
- Installazione MySQL
Sempre usando il comando yum installiamo MySQL:
yum install mysql mysql-server
quindi configuriamolo in modo che venga avviato automaticamente al boot del server:
chkconfig --levels 235 mysqld on
e avviamolo:
/etc/init.d/mysqld start
a questo punto dobbiamo configurare la password root di MySQL, quindi digitiamo:
mysql_secure_installation
L’esecuzione di questo script è raccomandato per tutti i server MySQL destinati alla produzione: seguire attentamente ogni passaggio richiesto da questo script!
Al fine di accedere a MySQL, avremo bisogno l’attuale password per l’utente root. Se avete appena installato MySQL, e non si è ancora impostata la password di root, la password sarà vuota, così si dovrebbe semplicemente premere il tasto enter.
Nel video incluso al termine di questo articolo è possibile seguire il susseguirsi dei passaggi elaborati dallo script.
L’impostazione della password di root assicura che nessuno possa accedere al MySQL come utente root senza autorizzazione.
- Installazione PHP
Ancora usando il comando yum installiamo PHP e in seguito anche i vari pacchetti PHP di supporto a MySQL:
yum install php
un reset di Apache:
/etc/init.d/httpd restart
e un test per verificare l’installazione di PHP:
[root@localhost]# php -v PHP 5.3.3 (cli) (built: Jul 12 2013 20:35:47) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies [root@localhost]#
quindi procediamo ad installare anche gli altri pacchetti necessari al supporto MySQL:
yum install php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc
e ad un altro restart di Apache:
/etc/init.d/httpd restart
- Verifica ed eventuale configurazione iptables
A questo punto, digitando l’IP 192.168.0.13 (nel nostro caso questo è l’IP del server, il vostro server potrebbe avere un IP diverso) sulla barra del browser di un altro PC che sia collegato alla rete con il server (virtuale o fisico che sia) dove abbiamo installato Apache, MySQL e PHP, dovrebbe essere possibile visualizzare la pagina di default di Apache:
Se così non fosse, ammesso che non abbiate commesso errori nella procedura di installazione, è probabile che il firewall blocchi l’accesso alle porte di default di Apache, pertanto è necessario configurare correttamente iptables.
1) Procedura per IPv4:
Aprire con un editor il file /etc/sysconfig/iptables
/etc/sysconfig/iptables
Aggiungere le seguenti righe, assicurando che compaiono prima del LOG and DROP e nella catena INPUT e salvare le modifiche:
-A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
Un esempio di configurazione IPv4 che permette l’accesso alle porte 80 e 443 potrebbe essere questa:
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
quindi riavviamo il servizio:
service iptables restart
2) Procedura per IPv6:
Aprire il file /etc/sysconfig/ip6tables
nano /etc/sysconfig/ip6tables
Aggiungere le seguenti righe, assicurando che compaiono prima del LOG and DROP e nella catena INPUT e salvare le modifiche:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
Un esempio di configurazione IPv6 che permette l’accesso alle porte 80 e 443 potrebbe essere questa:
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p ipv6-icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A INPUT -j REJECT --reject-with icmp6-adm-prohibited -A FORWARD -j REJECT --reject-with icmp6-adm-prohibited COMMIT
e riavviamo il servizio:
service ip6tables restart
Di seguito il video con riportata tutta la procedura di installazione di Apache2, MySQL e PHP:
(per una migliore visione ingrandite il video a schermo intero e impostare HD on)
Se la guida è stata di vostro gradimento, un click su MI PIACE, un commento o una condivisione è per noi gradita ricompensa 🙂
Hi, Ho trovato il sito molto utile e semplice da seguire.
Regards
Bob Fulge