GNU/Linux >> Linux Esercitazione >  >> OpenSuse

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

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 Nginx (LEMP) su OpenSUSE Leap 15.3
  • Come installare lo stack Apache PHP 7.4 (LAMP) su Rocky Linux/Centos 8
  • Come installare e configurare PHP e Apache (stack LAMP) su Ubuntu 20.04
  • Come installare e configurare PHP e Nginx (LEMP) su Ubuntu 20.04
  • Come installare e configurare PHP e Apache (stack LAMP) su Debian 11
  • Come installare e configurare PHP e Nginx (LEMP) su Debian 11
  • Come installare e configurare PHP e Nginx (LEMP) su Rocky Linux/Alma Linux 8

Prerequisiti

Per seguire questa guida, assicurati di avere quanto segue:

  • Un server OpenSUSE leap 15.3 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 OpenSUSE Leap 15.3
  3. Installazione di Apache su OpenSUSE Leap 15.3
  4. Configurazione dell'host virtuale
  5. Test della 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 zypper refresh
sudo zypper update -y

2. Installazione di PHP su OpenSUSE Leap 15.3

PHP è disponibile nei repository OpenSUSE 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 zypper install -y \
    php \
    php-cli \
    php-gd \
    php-mbstring

Controlla la versione installata di PHP

~> zypper info php7
Repository 'Update repository with updates from SUSE Linux Enterprise 15' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...


Information for package php7:
-----------------------------
Repository     : Update repository with updates from SUSE Linux Enterprise 15
Name           : php7
Version        : 7.4.6-3.29.1
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 10.3 MiB
Installed      : Yes
Status         : up-to-date
Source package : php7-7.4.6-3.29.1.src
Summary        : Interpreter for the PHP scripting language version 7
Description    :
    PHP is a server-side HTML embedded scripting language designed
    primarily for web development but also used as a general-purpose
    programming language.

    This package contains the standard implementation of PHP, namely Zend
    PHP. Included are the PHP command-line binary and the configuration
    file (php.ini). This package must be installed in order to use PHP.
    Additionally, extension modules and server modules (e.g. for Apache)
    may be installed.

    Additional documentation is available in package php-doc.

Controlla la versione php installata usando questo comando:

~> php -v
PHP 7.4.6 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

3. Installazione di apache su OpenSUSE Leap 15.3

I pacchetti Apache sono disponibili nei repository OpenSUSE Leap 15.3 predefiniti come apache2 . Installalo usando questo comando:

sudo zypper install -y apache2

Conferma i pacchetti installati usando questo comando:

~> zypper info apache2
Loading repository data...
Reading installed packages...


Information for package apache2:
--------------------------------
Repository     : Update repository with updates from SUSE Linux Enterprise 15
Name           : apache2
Version        : 2.4.43-3.32.1
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 4.3 MiB
Installed      : Yes
Status         : up-to-date
Source package : apache2-2.4.43-3.32.1.src
Summary        : The Apache Web Server
Description    :
    This version of httpd is a major release of the 2.4 stable branch,
    and represents the best available version of Apache HTTP Server.
    New features include Loadable MPMs, major improvements to OCSP support,
    mod_lua, Dynamic Reverse Proxy configuration, Improved Authentication/
    Authorization, FastCGI Proxy, New Expression Parser, and a Small Object
    Caching API.

     See /usr/share/doc/packages/apache2/, http://httpd.apache.org/, and
    http://httpd.apache.org/docs-2.4/upgrading.html.

Il servizio non verrà avviato per impostazione predefinita.

sudo systemctl start apache2

Verifica lo stato usando questo comando:

~> sudo systemctl status apache2
● apache2.service - The Apache Webserver
     Loaded: loaded (/usr/lib/systemd/system/apache2.service; disabled; vendor preset: disabled)
     Active: active (running) since Wed 2021-12-22 06:58:45 UTC; 53s ago
   Main PID: 27333 (httpd-prefork)
     Status: "Processing requests..."
      Tasks: 6
     CGroup: /system.slice/apache2.service
             ├─27333 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
             ├─27340 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
             ├─27341 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
             ├─27342 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
             ├─27343 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
             └─27344 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>

Dec 22 06:58:45 ip-10-2-40-44 systemd[1]: Starting The Apache Webserver...
Dec 22 06:58:45 ip-10-2-40-44 systemd[1]: Started The Apache Webserver.

Per abilitare il servizio all'avvio, usa questo comando

sudo systemctl enable apache2

Se hai un firewall installato e abilitato sul tuo computer, ricorda di consentire il traffico verso Apache2 server web tramite il firewall prima di passare al passaggio successivo.

$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --reload

Affinché Apache possa servire file php

sudo zypper install -y apache2-mod_php7

Quindi abilita il modulo php7

sudo a2enmod php7

Infine riavvia Apache2 per applicare l'aggiunta del modulo

sudo systemctl restart apache2

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 /srv/www/htdocs . È buona norma creare la directory del tuo sito in /srv/www directory poiché è una buona pratica servire da lì.

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

sudo mkdir -p /srv/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 zypper install -y vim

Modifica il file:

sudo vim /srv/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 wwwrun:wwwrun /var/www/site1.citizix.com

Creazione di un host virtuale

I file dell'host Apache Virtual 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/conf.d/site1.citizix.com.conf

Aggiungi il seguente contenuto:

<VirtualHost *:80>
    ServerName site1.citizix.com
    ServerAlias site1.citizix.com

    ServerAdmin [email protected]

    DocumentRoot /srv/www/site1.citizix.com
    ErrorLog /var/log/apache2/site1.citizix.com.error.log
    CustomLog /var/log/apache2/site1.citizix.com.requests.log combined

    <Directory "/srv/www/site1.citizix.com">
        Options Indexes
        AllowOverride All
        Require all granted
        DirectoryIndex index.php
    </Directory>
</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

Testa la configurazione

~> sudo apachectl configtest
Syntax OK

Quindi ricarica la configurazione di apache2

sudo systemctl reload apache2

5. Testare la configurazione dell'host virtuale

Per testare la configurazione, apri il browser e carica il dominio che hai impostato. Nel mio caso è http://site1.citizix.com . Dovresti vedere la pagina delle informazioni php.

Se non hai ancora configurato le tue impostazioni DNS o semplicemente non vuoi che il sito sia ancora attivo, puoi modificare il file hosts del tuo computer. Per fare ciò, usa il seguente comando nella CLI del tuo computer locale

sudo vim /etc/hosts

Quindi, aggiungi l'indirizzo IP del tuo vero server seguito dal nome di dominio che stai configurando, ad esempio:

# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com

Ora dovresti essere in grado di salvare il file e accedervi da un browser web.

Se qualcosa non funziona come previsto, puoi controllare i log del server virtualhost usando questo

tail -f /var/log/apache2/site1.citizix.com.*

Conclusione

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


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

  2. Come configurare Opencart con LAMP (PHP, Apache, Mariadb) su OpenSUSE Leap 15.3

  3. Come installare e configurare Nginx come proxy OpenSUSE Leap 15.3

  4. Come installare e configurare Mariadb 10 in OpenSUSE Leap 15.3

  5. Come installare e configurare PHP e Nginx (LEMP) su OpenSUSE Leap 15.3

Come installare Apache, MariaDB e PHP (LAMP) su Debian 11

Come installare Apache, MariaDB, PHP7 (LAMP) su openSUSE Leap 15.1

Come installare Apache, MariaDB, PHP7 (LAMP) su openSUSE Leap 15.3

Come installare PHP 8.0 su openSUSE 15 Leap

Come installare Apache e PHP su OpenSUSE 15.1

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