GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare lo stack LAMP su Debian 10 Buster Server/Desktop

Questo tutorial ti mostrerà come installare Apache, MariaDB e PHP7.3 (stack LAMP) su Debian 10 Buster. Uno stack software è un insieme di strumenti software raggruppati insieme. LAMPADA sta per L inux, A pache, M ariaDB/M ySQL e P HP, tutti open source e gratuiti. È lo stack software più comune che alimenta i siti Web dinamici e le applicazioni Web. Linux è il sistema operativo; Apache è il server web; MariaDB/MySQL è il server di database e PHP è il linguaggio di scripting lato server responsabile della generazione di pagine Web dinamiche.

Tutti e quattro i componenti sono gratuiti e open source. Tuttavia, poiché MySQL è ora di proprietà di Oracle e c'è la possibilità che Oracle lo trasformi in un prodotto closed-source, sceglieremo MariaDB invece di MySQL.

Prerequisiti per l'installazione di LAMP Stack su Debian 10 Buster

Per seguire questo tutorial, hai bisogno di un sistema operativo Debian 10 in esecuzione sul tuo computer locale o su un server remoto.

Se stai cercando un VPS (Virtual Private Server), puoi registrare un account su Vultr tramite questo link speciale per ottenere $ 50 di credito gratuito (solo per i nuovi utenti). E se devi configurare lo stack LAMP con un nome di dominio, ti consiglio di acquistare i nomi di dominio da NameCheap perché il prezzo è basso e offrono gratuitamente la protezione della privacy di Whois.

Si noti che è necessario disporre dei privilegi di root durante l'installazione del software su Debian. Puoi aggiungere sudo all'inizio di un comando, oppure usa su - comando per passare all'utente root.

Fase 1:aggiorna i pacchetti software

Prima di installare lo stack LAMP, è una buona idea aggiornare il repository e i pacchetti software. Esegui il seguente comando sul tuo sistema operativo Debian 10.

sudo apt update

sudo apt upgrade

Fase 2:installa Apache Web Server su Debian 10

Immettere il comando seguente per installare il server Web Apache. apache2-utils pacchetto installerà alcune utili utilità, come lo strumento di benchmarking del server HTTP Apache ab e lo strumento di gestione dell'autenticazione utente htpasswd .

sudo apt install apache2 apache2-utils

Dopo l'installazione, Apache dovrebbe essere avviato automaticamente. Controlla il suo stato con systemctl .

systemctl status apache2

Esempio di output:

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-07-11 13:30:35 UTC; 4min 31s ago
     Docs: https://httpd.apache.org/docs/2.4/
  Process: 17962 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 17966 (apache2)
    Tasks: 55 (limit: 545)
   Memory: 4.8M
   CGroup: /system.slice/apache2.service
           ├─17966 /usr/sbin/apache2 -k start
           ├─17967 /usr/sbin/apache2 -k start
           └─17968 /usr/sbin/apache2 -k start

Se non è in esecuzione, usa systemctl per avviarlo.

sudo systemctl start apache2

È anche una buona idea abilitare l'avvio automatico di Apache all'avvio.

sudo systemctl enable apache2

Controlla la versione di Apache:

sudo apache2 -v

Uscita:

Server version: Apache/2.4.38 (Debian)
Server built:   2019-04-07T18:15:40

Ora digita l'indirizzo IP pubblico del tuo server Debian 10 nella barra degli indirizzi del browser. Dovresti vedere "Funziona!" Pagina Web, il che significa che il server Web Apache funziona correttamente. Se stai installando LAMP sul tuo computer Debian 10 locale, dovresti digitare 127.0.0.1localhost nella barra degli indirizzi del browser.

Se la connessione viene rifiutata o non viene completata, potrebbe esserci un firewall che impedisce le richieste in arrivo alla porta TCP 80. Se stai utilizzando il firewall iptables, devi eseguire il comando seguente per aprire la porta TCP 80.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Se stai usando il firewall UFW, esegui questo comando per aprire la porta TCP 80.

sudo ufw allow http

Ora dobbiamo impostare www-data (utente Apache) come proprietario della root del documento (altrimenti nota come web root). Per impostazione predefinita è di proprietà dell'utente root.

sudo chown www-data:www-data /var/www/html/ -R

Per impostazione predefinita, Apache utilizza il nome host del sistema come ServerName globale . Se il nome host di sistema non può essere risolto in DNS, probabilmente vedrai il seguente errore dopo aver eseguito sudo apache2ctl -t comando.

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

Per risolvere questo problema, possiamo impostare un ServerName globale in Apache. Usa l'editor di testo della riga di comando Nano per creare un nuovo file di configurazione.

sudo nano /etc/apache2/conf-available/servername.conf

Aggiungi la seguente riga in questo file.

ServerName localhost

Salva e chiudi il file. Per salvare un file nell'editor di testo Nano, premi Ctrl+O , quindi premere Invio per confermare. Per uscire, premi Ctrl+X . Quindi abilita questo file di configurazione.

sudo a2enconf servername.conf

Ricarica Apache per rendere effettive le modifiche.

sudo systemctl reload apache2

Ora se esegui sudo apache2ctl -t comando di nuovo, non vedrai il messaggio di errore sopra.

Fase 3:installa MariaDB Database Server su Debian 10

MariaDB è un sostituto drop-in di MySQL. Immettere il seguente comando per installarlo su Debian 10.

sudo apt install mariadb-server mariadb-client

Dopo l'installazione, il server MariaDB dovrebbe essere avviato automaticamente. Usa systemctl per verificarne lo stato.

systemctl status mariadb

Uscita:

● mariadb.service - MariaDB 10.3.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-07-11 13:57:03 UTC; 16s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 18566 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 545)
   Memory: 73.9M
   CGroup: /system.slice/mariadb.service
           └─18566 /usr/sbin/mysqld

Se non è in esecuzione, avvialo con questo comando:

sudo systemctl start mariadb

Per consentire a MariaDB di avviarsi automaticamente all'avvio, esegui

sudo systemctl enable mariadb

Ora esegui lo script di sicurezza post installazione.

sudo mysql_secure_installation

Quando ti chiede di inserire la password di root di MariaDB, premi il tasto Invio poiché la password di root non è ancora impostata. Quindi inserisci y per impostare la password di root per il server MariaDB.

Successivamente, puoi semplicemente premere Invio per rispondere a tutte le domande rimanenti. Ciò rimuoverà l'utente anonimo, disabiliterà l'accesso root remoto e rimuoverà il database di test. Questo passaggio è un requisito di base per la sicurezza del database MariaDB. (Nota che la lettera Y è in maiuscolo, il che significa che è la risposta predefinita.)

Per impostazione predefinita, il pacchetto MaraiDB su Debian utilizza unix_socket per autenticare l'accesso dell'utente, il che significa sostanzialmente che puoi utilizzare nome utente e password del sistema operativo per accedere alla console MariaDB. Quindi puoi eseguire il seguente comando per accedere senza fornire la password di root di MariaDB.

sudo mariadb -u root

o

sudo mysql -u root

Per uscire, corri

exit;

Controlla le informazioni sulla versione del server MariaDB.

mariadb --version

Uscita:

mariadb Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Fase 4:installa PHP7.3 su Debian 10

Al momento in cui scrivo, PHP7.3 è l'ultima versione stabile di PHP e presenta un lieve miglioramento delle prestazioni rispetto alle versioni precedenti. Immettere il seguente comando per installare PHP7.3 dal repository Debian 10.

sudo apt install php7.3 libapache2-mod-php7.3 php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline

Abilita il modulo Apache php7.3, quindi riavvia il server Web Apache.

sudo a2enmod php7.3

sudo systemctl restart apache2

Controlla le informazioni sulla versione PHP.

php --version

Uscita:

PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

Per testare gli script PHP con il server Apache, dobbiamo creare un info.php file nella directory principale del Web con un editor di testo a riga di comando, come Nano.

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

Incolla il seguente codice PHP nel file.

<?php phpinfo(); ?>

Salva e chiudi il file. (Per salvare un file nell'editor di testo Nano, premi Ctrl+O , quindi premere Invio per confermare. Per uscire, premi Ctrl+X .)

Ora nella barra degli indirizzi del browser, inserisci server-ip-address/info.php . Sostituisci sever-ip-address con il tuo IP effettivo. Se segui questo tutorial sul tuo computer locale, digita 127.0.0.1/info.phplocalhost/info.php .

Dovresti vedere le informazioni PHP del tuo server. Ciò significa che gli script PHP possono essere eseguiti correttamente con il server Web Apache. Puoi scoprire che Zend OPcache è abilitato.

Come eseguire PHP-FPM con Apache

Esistono fondamentalmente due modi per eseguire codice PHP con il server Web Apache:

  • Modulo PHP di Apache
  • PHP-FPM.

Nei passaggi precedenti, il modulo PHP7.3 viene utilizzato per gestire il codice PHP, il che di solito va bene. Ma in alcuni casi, è invece necessario eseguire il codice PHP con PHP-FPM. Ecco come.

Disabilita il modulo Apache PHP7.3.

sudo a2dismod php7.3

Installa PHP-FPM.

sudo apt install php7.3-fpm

Abilita proxy_fcgi e setenvif modulo.

sudo a2enmod proxy_fcgi setenvif

Abilita il /etc/apache2/conf-available/php7.3-fpm.conf file di configurazione.

sudo a2enconf php7.3-fpm

Riavvia Apache per rendere effettive le modifiche.

sudo systemctl restart apache2

Ora se aggiorni il info.php pagina nel tuo browser, scoprirai che l'API del server è cambiata in FPM/FastCGI , il che significa che il server Web Apache eseguirà il codice PHP con PHP-FPM.

Passaggio successivo

Congratulazioni! Hai installato con successo Apache, MariaDB e PHP7 su Debian 10 Buster. Per la sicurezza del tuo server, dovresti eliminare ora il file info.php per evitare sguardi indiscreti.

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

Spero che questo tutorial ti abbia aiutato a installare lo stack LAMP su Debian 10 Buster . Potresti anche voler controllare il seguente tutorial per installare phpMyAdmin, uno strumento di amministrazione MariaDB/MySQL basato sul web

  • Installa phpMyAdmin con Apache (LAMP) su Debian 10 Buster

Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere nuovi tutorial.


Debian
  1. Come configurare un server LAMP su Debian 10 Buster

  2. Installa LAMP Stack su Debian 11

  3. Come installare il server LAMP su Debian 9

  4. Come installare e configurare PHP e Apache (stack LAMP) su Debian 11

  5. Come installare MySQL Server su Debian 10 Buster

Come installare lo stack LAMP su Debian 8

Come installare il server Web Apache su Debian 11

Come installare lo stack LAMP su Debian 11

Come installare e configurare LAMP su Debian 11 (Bullseye)

Come installare un server minimo Debian 10 (Buster).

Come installare Apache su Debian 7