Come installare un server web LAMP su CentOS 7

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!

4 Commenti

  1. 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

  2. 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

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui