Howto

Come installare Apache MySQL e PHP su Ubuntu

Installiamo Apache MySQL e PHP su Ubuntu

&

Implementiamo le regole in ingresso/uscita sul firewall.

Uno Stack “LAMP” è un gruppo di software open source che viene in genere installato insieme per abilitare un server per ospitare siti web dinamici e applicazioni web. Questo termine è in realtà un acronimo che rappresenta il sistema operativo Linux con il server web Apache , i dati del sito vengono memorizzati in un database MySQL e contenuto dinamico viene elaborato da PHP.
In questa guida, lo installeremo su Ubuntu 16.04 e Ubuntu soddisferà la nostra prima esigenza: un sistema operativo Linux.

Quindi installiamo Apache su Ubuntu e implementiamo le regole in ingresso/uscita sul firewall.

Come installare Apache, MySQL e PHP su Ubuntu 16.04

Passaggio 1: installare Apache e crea regola di “Consenti” per il Firewall

Il server web Apache è uno dei server web più popolari al mondo. E ‘ben documentato, ed è stato ampiamente utilizzato per creare gran parte dei siti della storia del web, il che lo rende un’ottima scelta di default per l’hosting di un sito web.
Siamo in grado di installare Apache facilmente usando gestore di pacchetti di Ubuntu:  apt. Un gestore di pacchetti permette di installare la maggior parte del software semplicemente da un repository gestito da Ubuntu.

Per i nostri scopi, possiamo iniziare digitando i seguenti comandi: (con utenza con permessi di roort)

sudo apt-get update

sudo apt-get install apache2

 

Impostare Global ServerName per eliminare gli avvisi di errore sintassi

Aggiungeremo una sola riga al file /etc/apache2/apache2.conf capace di sopprimere un messaggio di avviso. Anche se è “innocuo”, se non si imposta ServerName a livello globale, si riceverà il seguente avviso quando si controlla la configurazione di Apache per errori di sintassi:

Se noi lanciamo il comando …

sudo apache2ctl configtest

avremo in output
AH00558: apache2: impossibile determinare in modo affidabile nome di dominio completo del server, utilizzando 127.0.1.1. Impostare la direttiva ‘ServerName’ a livello globale per sopprimere questo messaggio

Ripeto e’ un messaggio ‘ un messaggio innocuo , ma bisogna settare ServerName a livello globale per avere una risposta pulita dal test di configurazione.

Quindi si apre il file di configurazione principale con permessi di modifica:

sudo nano /etc/apache2/apache2.conf

All’interno , nella parte inferiore del file, aggiungere la direttiva ServerName, indicando il nome del dominio principale. Se non si dispone di un nome di dominio associato con il server, è possibile utilizzare l’indirizzo IP pubblico del server o ip privato se all’interno di una lan:
. .
ServerName server_domain_or_IP
Salvare e chiudere il file quando si è finito.
Successivamente, verificare la presenza di errori di sintassi digitando:
sudo apache2ctl configtest

Continua…..

Dal momento che abbiamo aggiunto la direttiva ServerName globale, tutto si dovrebbe essere ok:
quindo dovremmo avere un output

Sintax OK

Riavviare Apache per implementare le modifiche:

sudo systemctl restart apache2

A questo punto è possibile iniziare la regolazione del firewall. Segui questo link per Configurare il firewall con UFW su Ubuntu

(il firewall deve essere sempre attivo !!!)

Regolare il firewall per consentire il traffico web

Quindi, supponendo di aver seguito le istruzioni iniziali di configurazione del server per attivare il firewall UFW, bisogna assicurarsi che il firewall possa consentire il traffico HTTP e HTTPS. Si può fare in modo che UFW abbia un profilo di richiesta di Apache in questo modo:

sudo ufw app list

Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Se sguardi il profilo di Apache Full, dovrebbe mostrare che consente il traffico sulle porte 80 e 443:

sudo ufw app info “Apache Full”

quindi avremo come Output
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.
Ports:
80,443/tcp
Allow incoming traffic per questo profilo:

sudo ufw allow in “Apache Full”

Se tutto e’ andato a buon fine da un computer collegato in rete si dovrà richiamare la pagina di test di Apache creata a scopo informativo e di test.
Dovrebbe essere qualcosa di simile a questo:

Apache test

MySQL e PHP su Ubuntu

E’ l’ora di installare mysql e php su ubuntu.

php_mysql

MySQL
MySQL

Ora che abbiamo il nostro server web finito e funzionante, è il momento di installare MySQL.  MySQL è un sistema di gestione di database.
Anche in questo caso, possiamo usare apt per acquisire e installare il nostro software. Questa volta, ci sarà anche da installare altri pacchetti “helper” che ci aiuternno a far comunicare i  componenti tra loro:

 sudo apt-get install mysql-server

Nota: In questo caso, non è necessario eseguire sudo apt-get update prima del comando. Questo è dovuto al fatto che abbiamo recentemente condotto in questi comandi per installare Apache. L’indice dei pacchetti sul nostro computer dovrebbe già essere up-to-date.

Anche in questo caso, vi verrà mostrato un elenco dei pacchetti che verranno installati, insieme con la quantità di spazio che occupano sul disco.

Durante l’installazione, il server vi chiederà di selezionare e confermare una password per l’utente “root” di MySQL. Si tratta di un account amministrativo in MySQL, che ha i privilegi amministrativi.  Assicuratevi che sia una password robusta e non lasciate il campo in bianco !
Sembrerà strano… ma è tutto fatto !!

Installiamo PHP

php

PHP è il componente  che elaborerà il codice per visualizzare il contenuto dinamico. Si possono eseguire script, connettersi ai nostri database MySQL per ottenere informazioni.

Siamo in grado di sfruttare ancora una volta il sistema APT per installare i nostri componenti. Stiamo andando a includere alcuni pacchetti di supporto  in modo che il codice PHP possa essere eseguito con il server Apache e parlare con il nostro database MySQL:

sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Questo dovrebbe installare PHP senza problemi.

Nella maggior parte dei casi dobbiamo  modificare il modo in cui Apache agisce  quando gli viene richiesta una directory. Attualmente, se un utente richiede una directory dal server, Apache in primo luogo va cercare  un file chiamato index.html.

Vogliamo dire al nostro web server di  preferire i file PHP, in modo che Apache vada a cercare un file index.php in primo luogo.

Per fare questo, digitare questo comando per aprire il file dir.conf in un editor di testo con i privilegi di root:

sudo nano /etc/apache2/mods-enabled/dir.conf

Apparià qualcosa di  simile:
/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

e modificheremo il file spostando in prima posizione index.php

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</ IfModule>

Dopo questo, abbiamo bisogno di riavviare il server web Apache in modo che i nostri cambiamenti di essere riconosciuti. È possibile farlo digitando questo:
  sudo systemctl restart apache2

Possiamo anche controllare lo stato del servizio apache2 utilizzando systemctl:

sudo systemctl status apache2

 

Controlliamo …

.. ne verrà vfuori qualcosa molto simile a questo

● apache2.service – LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─13623 /usr/sbin/apache2 -k start
├─13626 /usr/sbin/apache2 -k start
├─13627 /usr/sbin/apache2 -k start
├─13628 /usr/sbin/apache2 -k start
├─13629 /usr/sbin/apache2 -k start
└─13630 /usr/sbin/apache2 -k start
etc….

Moduli Aggiuntivi

Per migliorare la funzionalità di PHP, possiamo opzionalmente installare alcuni moduli aggiuntivi.
Per visualizzare le opzioni disponibili per i moduli PHP e le librerie, è possibile reindirizzare i risultati della ricerca apt-cache | less, :

apt-cache search php- / less

Utilizzare i tasti freccia per scorrere verso l’alto e verso il basso, e q per uscire.

I risultati sono tutti i componenti opzionali che è possibile installare. :

libnet-libidn-perl – binding Perl per GNU libidn
php-all-dev – pacchetto di base su tutti i pacchetti di sviluppo di PHP supportati
php-cgi – lato server, linguaggio di scripting HTML-embedded (CGI binario) (default)
php-cli – interprete a linea di comando per il linguaggio di scripting PHP (default)
php-comune – File comuni per i pacchetti PHP
php-curl – modulo CURL di PHP [default]
php-dev – file di sviluppo modulo PHP (default)
php-gd – modulo GD per PHP [default]
php-GMP – Modulo GMP per PHP [default]

Per ottenere maggiori informazioni su ciò che ogni modulo fa, è possibile cercare in internet, o si può guardare la lunga descrizione del pacchetto digitando:
apt-cache show nome_pacchetto

Se, dopo la ricerca, si decide che si desidera installare un pacchetto, è possibile farlo utilizzando l’apt-get installare comando come abbiamo fatto per il nostro altro software.
Se abbiamo deciso che php-cli è qualcosa di cui abbiamo bisogno, potremmo scrivere:

 sudo apt-get install php-cli

Se si desidera installare più di un modulo, è possibile farlo elencando ciascuno, separati da uno spazio, a seguito del comando apt-get installare, in questo modo:
sudo apt-get install pacchetto1 pacchetto2 …
A questo punto, il vostro stack LAMP è installato e configurato. Dobbiamo ancora provare il nostro PHP.

Testiamo PHP

Al fine di verificare che il nostro sistema sia configurato correttamente per PHP, possiamo creare uno script PHP di base.
Chiameremo questo script info.php. Per fare in modo che Apache possa trovare il file e procesarlo, il file deve essere salvato in una directory specifica  che si chiama “web root”.
In Ubuntu 14.04, questa directory si trova in / var / www / html /. Siamo in grado di creare il file in quella posizione digitando:

    sudo nano /var/www/html/info.php

Si aprirà un file vuoto. Vogliamo mettere il seguente testo, che è codice PHP, all’interno del file:
<? Php
phpinfo ();
Una volta terminato, salvare e chiudere il file.
Ora siamo in grado di verificare se il nostro server web in grado di visualizzare correttamente i contenuti generati da uno script PHP. Per provare il corretto funzionamento, non ci resta che visitare questa pagina nel nostro browser.

L’indirizzo che si desidera visitare saranno:
http: //your_server_IP_address/info.php
o se sul locale  http: //localhost/info.php

La pagina che si arriva a dovrebbe essere simile a questa:

small_php_info

Ora che sappiamo che tutto funziona, non ci resta che cancellare il file
sudo rm /var/www/html/info.php

e adesso e’ tutto pronto , ma per cosa ?? Possiamo installare WordPress ?