Con questa guida spieghiamo come effettuare l’installazione LAMP (Linux + Apache + MySQL + PHP) su un server CentOS (>7.0)
Dove trovo un VPS?
Ci sono molti provider a livello mondiale che consentono la creazione di VPS server con costi veramente limitati. Con DigitalOcean o Linode potremo avere un server cloud a partire da $5 / mese.
Un consiglio: non è necessario partire con un server da 64GB di RAM. I provider più famosi (come quelli sopra elencati) offriranno upgrade a caldo, effettuati automaticamente in pochi minuti con backup e supporto in tempo reale.
Connessione
Per connettersi al server generalmente vengono utilizzati i seguenti applicativi:
- Putty per client Windows
- Terminal (per Mac – già installato di default da apple)
- Gestori esterni come codeanywhere.com
Installazione: aggiornamento della macchina
Per prima cosa: un aggiornamento al sistema
yum update yum upgrade
Qualora il sistema sia appena stato installato sul server, potrebbe volerci del tempo dal momento che alcuni pacchetti potrebbero essere pesanti (> 300Mb)
Nel passaggio successivo possiamo procedere all’installazione del server web, abbiamo di fronte due possibilità: Apache o Nginx. Entrambe le soluzioni sono molto popolari. In questa guida consigliamo l’utilizzo di Apache che è relativamente più facile da installare
Installazione di Apache
yum install httpd
service httpd start
systemectl enable httpd.service
Il primo comando installerà apache (Httpd è l’acronimo di apache nel mondo CentOS);
il secondo comando avvierà apache;
il terzo comando farà si che apache parta sempre all’avvio di Linux.
Apache creerà una cartella /var/www/html nella quale potremo inserire i nostri documenti web per renderli visibili al pubblico.
Per assicurarci che l’installazione sia andata a buon fine, basterà semplicemente inserire l’indirizzo ip del nostro server nel browser come se fosse un sito internet. Otterremo il seguente risultato:
Questa schermata indicherà che il nostro server web è correttamente installato. Da questo momento, qualsiasi dominio puntato all’indirizzo ip della nostra macchina porterà questo risultato.
Come ultimo passaggio, vogliamo dare il permesso ad Apache di scrivere nella propria cartella: in questo modo, quando un’applicazione come WordPress cercherà di apportare modifiche come upload di foto o installazione di plugin, il processo verrà permesso dal sistema
chown apache:apache -R /var/www/html
Installazione di MySql
Il database per eccellenza utilizzato negli ambienti linux è MySql. In questa guida suggeriamo l’installazione di MariaDB. MariaDB è un “fork” del progetto MySql considerato più veloce e stabile.
La procedura di installazione è molto semplice:
yum-install mariadb-server
mariadb systemectl enable
mariadb.service systemectl start mariadb
Con il primo comando stiamo installando MariaDB.
Come nella procedura apache, con il secondo comando ci assicuriamo che MariaDB sia lanciato all’avvio del sistema.
Con l’ultimo comando avviamo il database
Procediamo di conseguenza al setup del database con il comando seguente:
mysql_secure_installation
Sul terminal vedremo una procedura guidata:
- La password attuale è vuota: basta premere invio
- Verrà richiesta una password nuova per il database
Sconsigliamo vivamente di permettere connessioni esterne (da altre macchine) al database MySql. Questa procedura non è solamente insicura, ma anche estremamente costosa in termini di CPU. Per trasferire dati tra un database ed un altro ci sono molte altre soluzioni come la creazione di una API.
Per aumentare la sicurezza del database inoltre consigliamo di non permettere ad utenti anonimi di accedere al database
La procedura terminerà quando effettueremo il refresh delle tabelle dei privilegi
Per testare il funzionamento del database consigliamo l’installazione di phpMyAdmin: passaggio che potremo fare dopo l’installazione di PHP
Installazione di PHP
Per installare PHP basta eseguire il seguente comando:
yum install php php-mysql php-mbstring php-xml service httpd restart
Con il primo comando installeremo php e alcune estensioni popolari che permetteranno l’utilizzo di phpMyAdmin (meglio farlo subito ed evitare l’errore dopo)
Con il secondo comando riavvieremo Apache per permettere l’integrazione di PHP. Da questo momento PHP sarà sempre caricato insieme all’avvio di Apache
Note: con l’installazione di php attraverso i repositories di Centos 7, otterremo l’installazione di PHP 5.4. E’ possibile aggiornare PHP in qualsiasi momento fino alla versione 7.0 con qualche passaggio aggiuntivo che spiegheremo nelle prossime guide
Per testare il funzionamento di php, possiamo semplicemente creare un file index.php nella cartella /var/www/html/ con il codice <?php echo “ciao”;
Una volta salvato il file basterà aprire sul nostro browser l’indirizzo ip della nostra macchina e vedremo la scritta ciao come conferma del corretto funzionamento di php sulla nostra macchina
In questa fase possiamo inoltre testare il funzionamento di MySql caricando phpMyAdmin nella cartella /var/www/html. Inserendo come nome utente root e come password la password che abbiamo selezionato durante l’installazione di Mariadb, avremo accesso web al nostro database
Prossimi passaggi
Questa guida vi ha spiegato passo per passo come fare il setup LAMP su una macchina Centos 7. Ci sono molti passaggi aggiuntivi che variano in base al tipo di progetto che avete in mente. Ci soffermiamo semplicemente su qualche considerazione sulla sicurezza:
La macchina è dotata di un IP pubblico: a ogni login troverete centinaia di tentativi di accesso al sistema con password sbagliata. Consigliamo per prima cosa di non permettere accesso ssh all’utente root. Meglio creare un account normale per le nostre operazioni e quando necessario chiederemo i privilegi con il comando sudo davanti alle nostre richieste.
Consigliamo inoltre di installare Fail2Ban, un applicativo che bloccherà i tentativi di brute-force delle password e ancora meglio la creazione di chiavi per connetterci al server. Con le chiavi autorizzeremo il nostro computer di accedere al server senza password. Tutto il resto verrà bloccato.
Se avete qualche domanda, non esitate a scrivere nel box commenti sotto!
Salve a tutti, scusatemi sono un neofita, al momento dell’installazione di apache al comando: service httpd start mi viene indicato redirecting to/bin/systemctl start httpd.service ho provato a cercare qualcosa ma non sono riuscito a venirne a capo, cosa posso fare? Grazie mille
Ciao Marco, “redirecting to/bin/systemctl” perchè hanno cambiato nomenclatura ma questo messaggio è indice di corretto funzionamento!
Ciao innanzitutto ti ringrazio per la guida estremamente chiara che ho correttamente seguito passo passo.
Sono alle primissime armi con CentOS e quando ho inserito il comando “systemectl” non me lo ha accettato, su altri siti ho trovato “systemctl” che ho utilizzato e i comandi son stati accettati.
Il mio problema, però, è che quando digito l’indirizzo IP della macchina non accedo a nessuna pagina web di conferma.
La versione di CentOS che sto utilizzando è la 7.6.1810.
Mi puoi essere di aiuto?
Grazie
Ciao Massimo, scusami leggo solo ora.
Mi vengono in mente 2 cose:
1. service {servicename} start avvia il servizio?
2. systemctl server per avviare il servizo al boot del sistema, puoi anche inserire manualmente il comando nel file init.d