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.
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/
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.
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
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 🙂