Una versione precedente di questo tutorial è stato scritto da Brennan Bearnes.
Introduzione
Uno stack” LAMP ” è un gruppo di software open-source che viene in genere installato insieme per consentire a un server di 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 sono memorizzati in un database MySQL e il contenuto dinamico viene elaborato da PHP.
In questa guida, installeremo uno stack LAMP su un server Ubuntu 18.04.,
Prerequisiti
Per completare questo tutorial, è necessario disporre di un server Ubuntu 18.04 con un account utente non rootsudo
e un firewall di base. Questo può essere configurato utilizzando la nostra guida all’installazione iniziale del server per Ubuntu 18.04.
Passo 1 — Installazione di Apache e aggiornamento del firewall
Il server web Apache è tra i server web più popolari al mondo. È ben documentato ed è stato ampiamente utilizzato per gran parte della storia del web, il che lo rende un’ottima scelta predefinita per ospitare un sito web.,
Installa Apache usando il gestore di pacchetti di Ubuntu,apt
:
- sudo apt update
- sudo apt install apache2
Poiché si tratta di un comandosudo
, queste operazioni vengono eseguite con i privilegi di root. Ti chiederà la password del tuo utente normale per verificare le tue intenzioni.
Una volta inserita la password,apt
ti dirà quali pacchetti intende installare e quanto spazio su disco extra occuperanno. Premere Y
e premere ENTER
per continuare, e l’installazione procederà.,
Regolare il firewall per consentire il traffico Web
Quindi, supponendo di aver seguito le istruzioni iniziali di configurazione del server e abilitato il firewall UFW, assicurarsi che il firewall consenta il traffico HTTP e HTTPS.,ld mostrano che consente il traffico sulle porte 80
e 443
:
- sudo ufw app info "Apache Full"
OutputProfile: Apache FullTitle: Web Server (HTTP,HTTPS)Description: Apache v2 is the next generation of the omnipresent Apache webserver.Ports: 80,443/tcp
Consenti in arrivo il traffico HTTP e HTTPS per questo profilo:
- sudo ufw allow in "Apache Full"
Si può fare un controllo in loco da subito per verificare che tutto è andato come previsto, visitando il pubblico del server indirizzo IP nel browser web (vedere la nota sotto l’intestazione successiva per scoprire che cosa il vostro indirizzo IP pubblico è se non si dispone di queste informazioni già):
You will see the default Ubuntu 18.04 Apache web page, which is there for informational and testing purposes. It should look something like this:
If you see this page, then your web server is now correctly installed and accessible through your firewall.
How To Find your Server’s Public IP Address
If you do not know what your server’s public IP address is, there are a number of ways you can find it. Usually, this is the address you use to connect to your server through SSH.
There are a few different ways to do this from the command line. First, you could use the iproute2
tools to get your IP address by typing this:
- ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Questo vi darà due o tre righe indietro., Sono tutti gli indirizzi corretti, ma il computer può essere solo in grado di utilizzare uno di loro, quindi sentitevi liberi di provare ciascuno di essi.
Un metodo alternativo è quello di utilizzare l’utilitàcurl
per contattare una parte esterna per dirti come vede il tuo server. Questo viene fatto chiedendo a un server specifico quale sia il tuo indirizzo IP:
- sudo apt install curl
- curl http://icanhazip.com
Indipendentemente dal metodo utilizzato per ottenere il tuo indirizzo IP, digitalo nella barra degli indirizzi del tuo browser Web per visualizzare la pagina Apache predefinita.,
Passo 2 — Installazione di MySQL
Ora che avete il vostro server web installato e funzionante, è il momento di installare MySQL. MySQL è un sistema di gestione di database. Fondamentalmente, organizzerà e fornirà l’accesso ai database in cui il tuo sito può memorizzare le informazioni.
Ancora una volta, utilizzare apt
acquisire e installare questo software:
- sudo apt install mysql-server
Nota: In questo caso, non è necessario eseguire sudo apt update
prima del comando. Questo perché l’hai eseguito di recente nei comandi sopra per installare Apache., L’indice del pacchetto sul tuo computer dovrebbe essere già aggiornato.
Anche questo comando ti mostrerà un elenco dei pacchetti che verranno installati, insieme alla quantità di spazio su disco che occuperanno. Immettere Y
per continuare.
Al termine dell’installazione, esegui un semplice script di sicurezza preinstallato con MySQL che rimuoverà alcuni valori predefiniti pericolosi e bloccherà l’accesso al tuo sistema di database. Avvia lo script interattivo eseguendo:
- sudo mysql_secure_installation
Questo ti chiederà se vuoi configurare VALIDATE PASSWORD PLUGIN
.,
Nota: abilitare questa funzione è una sorta di chiamata di giudizio. Se abilitato, le password che non corrispondono ai criteri specificati verranno rifiutate da MySQL con un errore. Ciò causerà problemi se si utilizza una password debole in combinazione con un software che configura automaticamente le credenziali utente MySQL, come i pacchetti Ubuntu per phpMyAdmin. È sicuro lasciare la convalida disabilitata, ma è sempre necessario utilizzare password forti e univoche per le credenziali del database.
RispondiY
per sì, o qualsiasi altra cosa da continuare senza abilitare.,
VALIDATE PASSWORD PLUGIN can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD plugin?Press y|Y for Yes, any other key for No:
Se rispondi “sì”, ti verrà chiesto di selezionare un livello di convalida della password. Tieni presente che se inserisci 2
per il livello più forte, riceverai errori quando tenterai di impostare qualsiasi password che non contenga numeri, lettere maiuscole e minuscole e caratteri speciali o che sia basata su parole del dizionario comuni.
There are three levels of password validation policy:LOW Length >= 8MEDIUM Length >= 8, numeric, mixed case, and special charactersSTRONG Length >= 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Indipendentemente dal fatto che tu abbia scelto di impostare VALIDATE PASSWORD PLUGIN
, il tuo server ti chiederà di selezionare e confermare una password per l’utente root di MySQL., Questo è un account amministrativo in MySQL che ha aumentato i privilegi. Pensalo come simile all’account root per il server stesso (anche se quello che stai configurando ora è un account specifico di MySQL). Assicurati che questa sia una password forte e univoca e non lasciarla vuota.
Se hai abilitato la convalida della password, ti verrà mostrata la forza della password per la password di root che hai appena inserito e il tuo server ti chiederà se vuoi cambiare quella password., Se sei soddisfatto della tua password corrente, inserisci N
per “no” al prompt:
Using existing password for root.Estimated strength of the password: 100Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Per il resto delle domande, premi Y
e premi ENTER
chiave ad ogni prompt. Ciò rimuoverà alcuni utenti anonimi e il database di test, disabiliterà gli accessi root remoti e caricherà queste nuove regole in modo che MySQL rispetti immediatamente le modifiche apportate.
Si noti che nei sistemi Ubuntu che eseguono MySQL 5.,7 (e versioni successive), l’utente root MySQL è impostato per l’autenticazione utilizzando il plugin auth_socket
per impostazione predefinita piuttosto che con una password. Ciò consente una maggiore sicurezza e usabilità in molti casi, ma può anche complicare le cose quando è necessario consentire a un programma esterno (ad esempio, phpMyAdmin) di accedere all’utente.
Se si preferisce utilizzare una password durante la connessione a MySQL come root, sarà necessario cambiare il suo metodo di autenticazione daauth_socket
amysql_native_password
., Per fare questo, aprire il prompt di MySQL da terminale:
- sudo mysql
Avanti, selezionare il metodo di autenticazione ognuno di MySQL account utente utilizzare con il seguente comando:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
In questo esempio, si può vedere che l’utente root, infatti, l’autenticazione utilizzando il auth_socket
plugin. Per configurare l’account root per l’autenticazione con una password, eseguire il seguente comando ALTER USER
., Assicurarsi di modificare password
per una password di tua scelta:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Quindi, eseguire FLUSH PRIVILEGES
che dice al server per ricaricare la concessione di tabelle e di mettere in pratica le modifiche:
- FLUSH PRIVILEGES;
Controllare i metodi di autenticazione impiegato da ciascuno degli utenti e di nuovo per confermare che la radice più autentica utilizzando il auth_socket
plugin:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
Si può vedere in questo esempio di output che l’utente root di MySQL ora autentica utilizzando una password., Una volta confermato questo sul proprio server, è possibile uscire dalla shell MySQL:
- exit
A questo punto, il sistema di database è ora impostato e si può passare all’installazione di PHP, il componente finale dello stack LAMP.
Passo 3 — Installazione di PHP
PHP è il componente della configurazione che elaborerà il codice per visualizzare il contenuto dinamico. Può eseguire script, connettersi ai database MySQL per ottenere informazioni e consegnare il contenuto elaborato al server Web da visualizzare.
Ancora una volta, sfrutta il sistemaapt
per installare PHP., Inoltre, includi alcuni pacchetti di supporto questa volta in modo che il codice PHP possa essere eseguito sotto il server Apache e parlare con il tuo database MySQL:
- sudo apt install php libapache2-mod-php php-mysql
Questo dovrebbe installare PHP senza problemi. Lo testeremo tra un attimo.
Nella maggior parte dei casi, si desidera modificare il modo in cui Apache serve i file quando viene richiesta una directory. Attualmente, se un utente richiede una directory dal server, Apache cercherà prima un file chiamato index.html
., Vogliamo dire al server web di preferire i file PHP rispetto agli altri, quindi fai in modo che Apache cerchi prima un fileindex.php
.
Per fare ciò, digita questo comando per aprire il file dir.conf
in un editor di testo con privilegi di root:
- sudo nano /etc/apache2/mods-enabled/dir.conf
Sarà simile a questo:
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</IfModule>
Sposta il file indice PHP (evidenziato sopra) nella prima posizione dopo la specificaDirectoryIndex
, in questo modo:
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>
Al termine, salvare e chiudere il file premendoCTRL+X
. Confermare il salvataggio digitando Y
e quindi premere ENTER
per verificare la posizione di salvataggio del file.
Dopo questo, riavviare il server Web Apache in modo che le modifiche vengano riconosciute., Digitare questo:
- sudo systemctl restart apache2
È anche possibile controllare lo stato del apache2
servizio utilizzando systemctl
:
- sudo systemctl status apache2
Premere Q
per uscire da questo stato di uscita.
Per migliorare la funzionalità di PHP, si ha la possibilità di installare alcuni moduli aggiuntivi., Per vedere le opzioni disponibili per moduli PHP e le librerie, reindirizzare i risultati di apt search
in less
, un cercapersone, che permette di scorrere l’uscita di altri comandi:
- apt search php- | less
Utilizzare i tasti freccia per scorrere verso l’alto e verso il basso e premere Q
per uscire.
I risultati sono tutti componenti opzionali che è possibile installare. Ti darà una breve descrizione per ciascuno:
bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64 Tracks usage of TCP/IP and builds html files with graphsbluefish/bionic 2.2.10-1 amd64 advanced Gtk+ text editor for web and software developmentcacti/bionic 1.1.38+ds1-1 all web interface for graphing of monitoring systemsganglia-webfrontend/bionic 3.6.1-3 all cluster monitoring toolkit - web front-endgolang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all PHP-like Compression and Archive Extensions in Gohaserl/bionic 0.9.35-2 amd64 CGI scripting program for embedded environmentskdevelop-php-docs/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-phpkdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-php-l10n…:
Per saperne di più su ciò che fa ogni modulo, puoi cercare su Internet per ulteriori informazioni su di loro., In alternativa, guarda la lunga descrizione del pacchetto digitando:
- apt show package_name
Ci sarà molto output, con un campo chiamato Description
che avrà una spiegazione più lunga della funzionalità fornita dal modulo.,
Per esempio, per scoprire ciò che il php-cli
modulo, è possibile digitare questo:
- apt show php-cli
con una grande quantità di altre informazioni, troverete qualcosa che assomiglia a questo:
Output…Description: command-line interpreter for the PHP scripting language (default) This package provides the /usr/bin/php command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks. . PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. . This package is a dependency package, which depends on Ubuntu's default PHP version (currently 7.2).…
Se, dopo la ricerca, si decide che si desidera installare un pacchetto, è possibile farlo utilizzando il apt install
comando come hai fatto per gli altri software.,
Se hai deciso che il php-cli
è qualcosa che è necessario, è possibile digitare:
- sudo apt install php-cli
Se si desidera installare più di un modulo, è possibile farlo elencando ciascuno, separati da uno spazio, dopo il apt install
comando come questo:
- sudo apt install package1 package2 ...
A questo punto, il vostro stack LAMP installato e configurato. Prima di fare qualsiasi altra cosa, si consiglia di impostare un host virtuale Apache in cui è possibile memorizzare i dettagli di configurazione del server.,
Passo 4 — Impostazione di host virtuali (consigliato)
Quando si utilizza il server web Apache, è possibile utilizzare host virtuali (simili a blocchi di server in Nginx) per incapsulare i dettagli di configurazione e ospitare più di un dominio da un singolo server. Configureremo un dominio chiamato your_domain, ma dovresti sostituirlo con il tuo nome di dominio. Per ulteriori informazioni sull’impostazione di un nome di dominio con DigitalOcean, consulta la nostra Introduzione a DigitalOcean DNS.
Apache su Ubuntu 18.,04 ha un blocco server abilitato per impostazione predefinita che è configurato per servire i documenti dalla directory/var/www/html
. Mentre questo funziona bene per un singolo sito, può diventare ingombrante se si ospitano più siti. Invece di modificare /var/www/html
, creiamo una struttura di directory all’interno di /var/www
per il nostro sito your_domain, lasciando /var/www/html
in posizione come directory predefinita da servire se una richiesta client non corrisponde ad altri siti.,dominio come segue:
sudo mkdir /var/www/your_domain
quindi, assegnare la proprietà della directory con i $USER
variabile di ambiente:
- sudo chown -R $USER:$USER /var/www/your_domain
Le autorizzazioni del web radici dovrebbero essere corretto se non hai modificato il tuo unmask
valore, ma è possibile assicurarsi che digitando il comando:
- sudo chmod -R 755 /var/www/your_domain
Avanti, creare un esempio index.html
pagina con nano
o il vostro editor preferito:
- nano /var/www/your_domain/index.html
all’Interno, aggiungere il seguente esempio di codice HTML:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain server block is working!</h1> </body></html>
Salva e chiudi il file quando hai finito.
Affinché Apache possa servire questo contenuto, è necessario creare un file host virtuale con le direttive corrette. Invece di modificare il file di configurazione di default che si trova in /etc/apache2/sites-available/000-default.conf
direttamente, facciamo un nuovo /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
Incollare il seguente blocco di configurazione, che è simile per impostazione predefinita, ma aggiornato per la nostra nuova cartella e il nome di dominio:
Si noti che abbiamo aggiornato ilDocumentRoot
alla nostra nuova directory eServerAdmin
a un’e-mail a cui l’amministratore del sito your_domain può accedere. Abbiamo anche aggiunto due direttive:ServerName
, che stabilisce il dominio di base che deve corrispondere a questa definizione di host virtuale, eServerAlias
, che definisce ulteriori nomi che devono corrispondere come se fossero il nome di base.
Salva e chiudi il file quando hai finito.,
abilitiamo il file con il a2ensite
strumento:
- sudo a2ensite your_domain.conf
Disattivare l’impostazione predefinita del sito definita in 000-default.conf
:
- sudo a2dissite 000-default.conf
Avanti, proviamo per gli errori di configurazione:
- sudo apache2ctl configtest
Si dovrebbe vedere il seguente output:
OutputSyntax OK
Riavviare Apache per rendere effettive le modifiche:
- sudo systemctl restart apache2
Apache dovrebbe essere ora serve il tuo nome di dominio., Puoi testarlo navigando su, dove dovresti vedere qualcosa del genere:
Con questo, l’host virtuale è completamente configurato. Prima di apportare ulteriori modifiche o distribuire un’applicazione, tuttavia, sarebbe utile testare in modo proattivo la configurazione PHP nel caso in cui ci siano problemi che dovrebbero essere risolti.
Passo 5 — Testare l’elaborazione PHP sul tuo server Web
Per verificare che il tuo sistema sia configurato correttamente per PHP, crea uno script PHP molto semplice chiamatoinfo.php
., Affinché Apache possa trovare questo file e servirlo correttamente, deve essere salvato nella directory principale web.
Crea il file nella web root che hai creato nel passaggio precedente eseguendo:
- sudo nano /var/www/your_domain/info.php
Questo aprirà un file vuoto. Aggiungi il seguente testo, che è un codice PHP valido, all’interno del file:
<?phpphpinfo();?>
Quando hai finito, salva e chiudi il file.
Ora è possibile verificare se il server web è in grado di visualizzare correttamente il contenuto generato da questo script PHP. Per provarlo, visita questa pagina nel tuo browser web., Avrai bisogno di nuovo dell’indirizzo IP pubblico del tuo server.
L’indirizzo che si desidera visitare è:
The page that you come to should look something like this:
This page provides some basic information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.
If you can see this page in your browser, then your PHP is working as expected.
You probably want to remove this file after this test because it could actually give information about your server to unauthorized users. To do this, run the following command:
- sudo rm /var/www/your_domain/info.php
È sempre possibile ricreare questa pagina se è necessario accedere nuovamente alle informazioni in un secondo momento.
Conclusione
Ora che hai installato uno stack LAMP, hai molte scelte per cosa fare dopo. Fondamentalmente, hai installato una piattaforma che ti permetterà di installare la maggior parte dei tipi di siti Web e software web sul tuo server.
Come passo successivo immediato, è necessario assicurarsi che le connessioni al server Web siano protette, servendole tramite HTTPS., L’opzione più semplice qui è usare Let’s Encrypt per proteggere il tuo sito con un certificato TLS/SSL gratuito.
Alcune altre opzioni popolari sono:
- Installa WordPress il sistema di gestione dei contenuti più popolare su Internet.
- Impostare phpMyAdmin per aiutare a gestire i database MySQL dal browser web.
- Scopri come utilizzare SFTP per trasferire file da e verso il tuo server.
Lascia un commento