GNU/Linux >> Linux Esercitazione >  >> Debian

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

Apache HTTP Server (Apache), è uno dei più popolari software per server web multipiattaforma gratuiti e open source, rilasciato secondo i termini della licenza Apache 2.0. Apache è popolare come parte della configurazione LAMP, essendo la A nell'acronimo. La funzionalità del server Apache può essere estesa con i numerosi moduli disponibili.

PHP è un linguaggio di scripting generico orientato allo sviluppo web. È uno dei più diffusi linguaggi di programmazione per il web. Strumenti popolari come WordPress sono codificati utilizzando php. Anche le grandi aziende come Facebook usano pesantemente php.

Contenuti correlati

  • Come installare e configurare PHP e Apache (stack LAMP) su Ubuntu 20.04
  • Come installare Apache e PHP (stack LAMP) su Rocky Linux/Centos 8
  • Come installare e configurare PHP e Nginx (LEMP) su Debian 11

Prerequisiti

Per seguire questa guida, assicurati di avere quanto segue:

  • Un server Debian 11 aggiornato
  • Accesso root al server o Utente con accesso sudo
  • Accesso a Internet

Indice dei contenuti

  1. Assicurarsi che il server sia aggiornato
  2. Installazione di PHP su Debian 11
  3. Installazione di Apache su Debian 11
  4. Configurazione dell'host virtuale

1. Garantire che il server sia aggiornato

Prima di procedere, è sempre buona norma assicurarsi che il server sia aggiornato. Usa questi comandi per raggiungere questo obiettivo

sudo apt update
sudo apt upgrade -y

2. Installazione di PHP su Debian 11

PHP è disponibile nei repository Debian 11 predefiniti. L'ultima versione di PHP al momento della stesura di questo blog è PHP 7.4.

Installa PHP e alcuni pacchetti comuni usando questo comando:

sudo apt install -y \
    php \
    php-common \
    php-cli

Controlla la versione installata di PHP

$ apt-cache policy php
php:
  Installed: 2:7.4+76
  Candidate: 2:7.4+76
  Version table:
 *** 2:7.4+76 500
        500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status

Controlla la versione php installata usando questo comando:

$ php -v
PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies

3. Installazione di Apache su Debian 11

I pacchetti Apache sono disponibili nei repository Debian 11 predefiniti come apache2 . Installalo usando questo comando:

sudo apt install -y apache2

Conferma i pacchetti installati usando questo comando:

$ apt-cache policy apache2
apache2:
  Installed: 2.4.51-1~deb11u1
  Candidate: 2.4.51-1~deb11u1
  Version table:
 *** 2.4.51-1~deb11u1 500
        500 http://security.debian.org/debian-security bullseye-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.4.48-3.1+deb11u1 500
        500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages

Il servizio verrà avviato per impostazione predefinita. Verifica lo stato usando questo comando:

$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-12-14 03:01:04 UTC; 5min ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 19103 (apache2)
      Tasks: 6 (limit: 4626)
     Memory: 12.8M
        CPU: 59ms
     CGroup: /system.slice/apache2.service
             ├─19103 /usr/sbin/apache2 -k start
             ├─19105 /usr/sbin/apache2 -k start
             ├─19106 /usr/sbin/apache2 -k start
             ├─19107 /usr/sbin/apache2 -k start
             ├─19108 /usr/sbin/apache2 -k start
             └─19109 /usr/sbin/apache2 -k start

Dec 14 03:01:04 ip-10-2-40-188 systemd[1]: Starting The Apache HTTP Server...
Dec 14 03:01:04 ip-10-2-40-188 systemd[1]: Started The Apache HTTP Server.

Per abilitare il servizio all'avvio, usa questo comando

sudo systemctl enable apache2

Per confermare che Apache sia installato e funzioni correttamente, visita l'indirizzo IP del server nel browser (http://server_ip). Se non conosci l'IP del server, ottienilo usando questo comando nel tuo terminale:

curl -4 icanhazip.com

Se tutto va bene, dovresti vedere la Pagina predefinita di Apache2 Debian .

4. Configurazione degli host virtuali

Con Apache, è possibile ospitare più siti sullo stesso server su cui è in esecuzione Apache. Questo può sempre essere ottenuto utilizzando più domini, ognuno dei quali rappresenta un sito ospitato dal server.

Gli host virtuali Apache sono simili ai blocchi del server Nginx. Ogni host virtuale avrà i dettagli di configurazione per un singolo host. Puoi avere tutti gli host virtuali che vuoi.

In questo esempio utilizzeremo il dominio site1.citizix.com per l'host virtuale ma sii libero di utilizzare il dominio di tua scelta. Tieni presente che il DNS per il dominio da utilizzare dovrebbe essere già configurato per puntare all'indirizzo IP del server.
Confermalo con:

dig -t A site1.citizix.com

Creazione di directory e contenuto di esempio

La pagina predefinita di Apache è configurata come un host virtuale predefinito che serve contenuti da /var/www/html . È buona norma creare la directory del tuo sito in /var/www directory poiché è una buona pratica servire da lì.

Creiamo una directory per il nostro sito con il seguente comando:

sudo mkdir /var/www/site1.citizix.com

Creiamo un semplice index.php pagina da servire dal nostro sito. Avrai bisogno di vim installato per farlo funzionare, altrimenti usa questo comando:

sudo apt install -y vim

Modifica il file:

sudo vim /var/www/site1.citizix.com/index.php

Aggiungi contenuto al file:

<?php phpinfo(); ?>

Infine, assicuriamoci che $USER l'utente possiede la directory del sito:

sudo chown -R $USER:$GROUP /var/www/site1.citizix.com

Creazione di un host virtuale

I file Apache Virtual host specificano la configurazione di ciascun sito e indicano al server Web Apache come rispondere alle varie richieste di dominio.

Le configurazioni di Apache verranno archiviate nella directory /etc/httpd/conf.d/ . Creiamo una configurazione per il nostro sito:

sudo vim /etc/apache2/sites-available/site1.citizix.com.conf

Aggiungi il seguente contenuto:

<VirtualHost *:80>
    ServerName site1.citizix.com
    ServerAlias site1.citizix.com
    DocumentRoot /var/www/site1.citizix.com
    DirectoryIndex index.php
    ErrorLog /var/log/apache2/site1.citizix.com.error.log
    CustomLog /var/log/apache2/site1.citizix.com.requests.log combined
</VirtualHost>

Questo dirà ad Apache quanto segue:

  • ServerNameServerAlias – nome dell'host da servire
  • DocumentRoot – dove trovare direttamente la radice che contiene i documenti web pubblicamente accessibili
  • DirectoryIndex – Il file che Apache servirà quando si accede al sito
  • ErrorLog – dove archiviare i log degli errori per questo sito
  • CustomLog – dove archiviare i registri delle richieste per questo particolare sito

Salva e chiudi il file quando hai finito

Abilita il sito

$ sudo a2ensite site1.citizix.com
Enabling site site1.citizix.com.
To activate the new configuration, you need to run:
  systemctl reload apache2

Quindi ricarica la configurazione di apache2

sudo systemctl reload apache2

Test dell'host virtuale

Ora che la configurazione è a posto, dobbiamo verificare che tutto funzioni come previsto. Dato che abbiamo creato il index.php file sopra, accediamoci andando su http://server_url/ . Nel mio caso questo è http://site1.citizix.com/ . Dovresti vedere la pagina delle informazioni php.

Conclusione

In questa guida, siamo riusciti a configurare Apache per servire il sito PHP su un server Debian 11.


Debian
  1. Come installare Apache e PHP (stack LAMP) su Rocky Linux/Centos 8

  2. Come installare e configurare PHP e Nginx (LEMP) su Debian 11

  3. Come installare e configurare PHP e Apache (stack LAMP) su Ubuntu 20.04

  4. Come installare e configurare PHP e Apache (stack LAMP) su OpenSUSE Leap 15.3

  5. Come installare LAMP (Apache, MySQL, PHP) su Debian 11

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

Come installare LAMP (Apache, MySQL, PHP) su Debian 9 Stretch

Come installare LAMP (Apache, MySQL, PHP) su Debian 8 Jessie

Come installare LAMP (Apache, MySQL, PHP) su Debian 10

Come installare e configurare Jenkins in Debian 11

Come configurare lo stack LAMP (Apache, MariaDB e PHP) su Debian 11