GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installa lo stack Apache, MySQL, PHP (LAMP) su Ubuntu 18.04 LTS

LAMPADA stack è una popolare piattaforma di sviluppo Web open source che può essere utilizzata per eseguire e distribuire siti Web dinamici e applicazioni basate sul Web. Tipicamente, lo stack LAMP è costituito da server web Apache, database MariaDB/MySQL, linguaggi di programmazione PHP/Python/Perl. LAMPADA è l'acronimo di L inux, M ariaDB/M YSQL, P HP/P ython/P erl. Questo tutorial descrive come installare Apache, MySQL, PHP (stack LAMP) nel server LTS di Ubuntu 18.04.

Installa lo stack Apache, MySQL, PHP (LAMP) su Ubuntu 18.04 LTS

Ai fini di questo tutorial, utilizzeremo il seguente testbox di Ubuntu.

  • Sistema operativo :Ubuntu 18.04.1 LTS Server Edition
  • Indirizzo IP :192.168.225.22/24

1. Installa il server web Apache

Prima di tutto, aggiorna il server Ubuntu usando i comandi:

$ sudo apt update
$ sudo apt upgrade

Quindi, installa il server Web Apache:

$ sudo apt install apache2

Controlla se il server web Apache è in esecuzione o meno:

$ sudo systemctl status apache2

L'output di esempio sarebbe:

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: en
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago
 Main PID: 2025 (apache2)
    Tasks: 55 (limit: 2320)
   CGroup: /system.slice/apache2.service
           ├─2025 /usr/sbin/apache2 -k start
           ├─2027 /usr/sbin/apache2 -k start
           └─2028 /usr/sbin/apache2 -k start

Feb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliably
Feb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.

Congratulazioni! Il servizio Apache è attivo e funzionante!!

1.1 Regola il firewall per consentire il server Web Apache

Per impostazione predefinita, non è possibile accedere al browser Web Apache da sistemi remoti se è stato abilitato il firewall UFW in Ubuntu 18.04 LTS. Devi consentire le porte http e https seguendo i passaggi seguenti.

Innanzitutto, elenca i profili dell'applicazione disponibili sul tuo sistema Ubuntu usando il comando:

$ sudo ufw app list

Esempio di output:

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

Come puoi vedere, le applicazioni Apache e OpenSSH hanno installato profili UFW. Puoi elencare le informazioni su ciascun profilo e le relative regole incluse utilizzando "info app ufw "Nome profilo" comando.

Esaminiamo il "Apache Full" profilo. Per farlo, esegui:

$ sudo ufw app info "Apache Full"

Esempio di 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

Come vedi, il profilo "Apache Full" ha incluso le regole per abilitare il traffico verso le porte 80 e 443 :

Ora, esegui il comando seguente per consentire il traffico HTTP e HTTPS in entrata per questo profilo:

$ sudo ufw allow in "Apache Full"
Rules updated
Rules updated (v6)

Se non vuoi consentire il traffico https, ma solo il traffico http (80), esegui:

$ sudo ufw app info "Apache"
1.2 Testare il server Web Apache

Ora apri il tuo browser web e accedi alla pagina di test di Apache navigando su http://localhost/ o http://indirizzo-IP/ .

Pagina di prova di Apache

Se vedi uno schermo come sopra, sei a posto. Il server Apache funziona!

2. Installa MySQL

Per installare MySQL su Ubuntu, esegui:

$ sudo apt install mysql-server

Verifica se il servizio MySQL è in esecuzione o non utilizza il comando:

$ sudo systemctl status mysql

Risultato di esempio:

● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enab
Active: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s ago
Main PID: 3423 (mysqld)
Tasks: 27 (limit: 2320)
CGroup: /system.slice/mysql.service
└─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Feb 05 11:07:49 ubuntuserver systemd[1]: Starting MySQL Community Server...
Feb 05 11:07:50 ubuntuserver systemd[1]: Started MySQL Community Server.

MySQL è in esecuzione!

2.1 Imposta la password dell'utente amministrativo (root) del database

Per impostazione predefinita, MySQL è root la password dell'utente è vuota. Devi proteggere il tuo server MySQL eseguendo il seguente script:

$ sudo mysql_secure_installation

Ti verrà chiesto se desideri configurare il plug-in CONVALIDA PASSWORD o no. Questo plugin consente agli utenti di configurare una password complessa per le credenziali del database. Se abilitato, verificherà automaticamente la forza della password e impone agli utenti di impostare solo le password sufficientemente sicure. È sicuro lasciare questo plugin disabilitato . Tuttavia, è necessario utilizzare una password complessa e univoca per le credenziali del database. Se non vuoi abilitare questo plugin, premi un tasto qualsiasi per saltare la parte di convalida della password e continuare il resto dei passaggi.

Se la tua risposta è , ti verrà chiesto di scegliere il livello di convalida della password.

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No y

Le convalide delle password disponibili sono basse , medio e forte . Basta inserire il numero appropriato (0 per basso, 1 per medio e 2 per password complessa) e premere il tasto INVIO.

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

Ora, inserisci la password per l'utente root di MySQL. Tieni presente che devi utilizzare la password per l'utente root mysql a seconda della politica della password scelta nel passaggio precedente. Se non hai abilitato il plug-in, utilizza una password complessa e univoca di tua scelta.

Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

Dopo aver inserito la password due volte, vedrai la sicurezza della password (nel nostro caso è 50 ). Se per te va bene, premi Y per continuare con la password fornita. Se non sei soddisfatto della lunghezza della password, premi qualsiasi altro tasto e imposta una password complessa. Sono d'accordo con la mia password attuale, quindi ho scelto y .

Per il resto delle domande, digita semplicemente y e premi INVIO. Ciò rimuoverà l'utente anonimo, non consentirà l'accesso dell'utente root in remoto e rimuoverà il database di prova.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

Questo è tutto. La password per l'utente root MySQL è stata impostata.

2.2 Modifica del metodo di autenticazione per l'utente root MySQL

Per impostazione predefinita, l'utente root di MySQL è impostato per l'autenticazione utilizzando auth_socket plugin in MySQL 5.7 e versioni successive su Ubuntu. Anche se migliora la sicurezza, complicherà anche le cose quando accedi al tuo server di database utilizzando qualsiasi programma esterno, ad esempio phpMyAdmin. Per risolvere questo problema, devi modificare il metodo di autenticazione da auth_socket a mysql_native_password . Per farlo, accedi al tuo prompt MySQL usando il comando:

$ sudo mysql

Eseguire il comando seguente al prompt di mysql per trovare il metodo di autenticazione corrente per tutti gli account utente di mysql:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Risultato di esempio:

+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *F126737722832701DD3979741508F05FA71E5BA0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Come vedi, l'utente root mysql usa auth_socket plug-in per l'autenticazione.

Per modificare questa autenticazione in mysql_native_password metodo, eseguire il comando seguente al prompt di mysql. Non dimenticare di sostituire "password" con una password forte e unica a tua scelta. Se hai abilitato il plug-in VALIDATION, assicurati di aver utilizzato una password complessa in base agli attuali requisiti delle norme.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Aggiorna le modifiche usando il comando:

FLUSH PRIVILEGES;

Ora controlla di nuovo se il metodo di autenticazione è stato modificato o non utilizzando il comando:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Esempio di output:

Bene! Ora l'utente root di myql può autenticarsi usando la password per accedere alla shell di mysql.

Esci dal prompt di MySQL:

exit

3. Installa PHP

Per installare PHP, esegui:

$ sudo apt install php libapache2-mod-php php-mysql

Dopo aver installato PHP, crea info.php file nella cartella del documento radice di Apache. Di solito, la cartella del documento radice di Apache sarà /var/www/html//var/www/ nella maggior parte delle distribuzioni Linux basate su Debian. In Ubuntu 18.04 LTS, è /var/www/html/ .

Creiamo info.php file nella cartella principale di Apache:

$ sudo vi /var/www/html/info.php

Aggiungi le seguenti righe:

<?php
phpinfo();
?>

Premi il tasto ESC e digita :wq per salvare e uscire dal file. Riavvia il servizio Apache per rendere effettive le modifiche.

$ sudo systemctl restart apache2
3.1 Testare PHP

Apri il tuo browser web e vai a http://indirizzo-IP/info.php URL.

Vedrai ora la pagina di test di php.

pagina di prova php

Di solito, quando un utente richiede una directory dal server web, Apache cercherà prima un file chiamato index.html . Se vuoi cambiare Apache per servire file php piuttosto che altri, sposta index.php alla prima posizione nella dir.conf file come mostrato di seguito

$ sudo vi /etc/apache2/mods-enabled/dir.conf

Ecco il contenuto del file di cui sopra.

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

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Sposta il file "index.php" per primo. Dopo aver apportato le modifiche, il tuo dir.conf il file apparirà come sotto.

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

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Premi ESC chiave e digita :wq per salvare e chiudere il file. Riavvia il servizio Apache per rendere effettive le modifiche.

$ sudo systemctl restart apache2
3.2 Installa moduli PHP

Per migliorare la funzionalità di PHP, puoi installare alcuni moduli PHP aggiuntivi.

Per elencare i moduli PHP disponibili, esegui:

$ sudo apt-cache search php- | less

Risultato di esempio:

Utilizzare i tasti freccia per scorrere il risultato. Per uscire, digita q e premi il tasto INVIO.

Per trovare i dettagli di un particolare modulo php, ad esempio php-gd , esegui:

$ sudo apt-cache show php-gd

Per installare un modulo php esegui:

$ sudo apt install php-gd

Per installare tutti i moduli (non necessari però), esegui:

$ sudo apt-get install php*

Non dimenticare di riavviare il servizio Apache dopo aver installato qualsiasi modulo php. Per verificare se il modulo è caricato o meno, apri il file info.php nel tuo browser e controlla se è presente.

Successivamente, potresti voler installare qualsiasi strumento di gestione del database per gestire facilmente i database tramite un browser web. In tal caso, installa phpMyAdmin come descritto nel seguente link.

  • Installa phpMyAdmin con lo stack LAMP su Ubuntu 18.04 LTS

Congratulazioni! Abbiamo impostato correttamente lo stack LAMP nel server LTS di Ubuntu 18.04.

Leggi anche:

  • Installa lo stack Nginx, MariaDB, PHP (LEMP) in Ubuntu 18.04 LTS
  • Installa lo stack Apache, MariaDB, PHP (LAMP) su Arch Linux
  • Installa lo stack Nginx, MariaDB, PHP (LEMP) su Arch Linux

E per ora è tutto. Come puoi vedere, configurare lo stack LAMP in Ubuntu è assolutamente facile e diretto.

Riferimento:

  • Oceano digitale

Ubuntu
  1. Come installare lo stack Linux, Apache, MySQL, PHP (LAMP) su Ubuntu 16.04

  2. Ubuntu 14.10 Tutorial server LAMP con Apache 2, PHP 5 e MySQL (MariaDB)

  3. Tutorial del server LAMP di Ubuntu 15.04 con Apache 2, PHP 5 e MariaDB (invece di MySQL)

  4. Come installare lo stack LAMP su Ubuntu 22.04 LTS

  5. Come installare Apache, MySQL, PHP (LAMP) su Ubuntu 16.04 LTS

Come installare lo stack LAMP (Apache, MariaDB, PHP7.1) su Ubuntu 17.10

Come installare lo stack LAMP su Ubuntu 20.04 Server/Desktop

Come installare Apache, MySQL, PHP su Ubuntu 18.04 LTS

Come installare Apache, MySQL, PHP (stack LAMP) su Ubuntu

Come installare LAMP su un server Ubuntu 15.04

Come installare lo stack Apache, MySQL, PHP (LAMP) su Ubuntu 16.04