Installare Joomla su Orange Pi per creare un web server locale

Dopo aver visto come installare WordPress su Orange Pi [LINK], è giunto il momento di dedicare un contenuto all’installazione di Joomla, una piattaforma open source per la gestione dei contenuti, utile per creare un proprio sito web. Nella guida che vi stiamo presentando, installeremo Joomla su ambiente Debian, adoperando un Orange Pi per ospitare questo progetto. Oltre alla single-board computer, necessitiamo di una MicroSD di buone dimensioni, soprattutto se vogliamo caricare sul nostro sito in locale molti contenuti multimediali, una connessione (Ethernet o Wi-Fi) e un po’ di pazienza.

Come fatto per WordPress, installeremo la piattaforma Joomla su un Orange Pi Zero 2W, single-board computer che è già in nostro possesso. La guida è comunque adattabile per altre single-board computer di Orange Pi.

Fase preliminare

WordPress va installato su ambiente Linux, quindi premuriamoci di scaricare la versione di Debian per il nostro Orange Pi Zero 2W, andando sul sito ufficiale e scaricando a questo LINK. Una volta scaricata, da PC tramite Rufus [LINK], carichiamola sulla MicroSD che adopereremo per il nostro Orange Pi Zero 2W. L’operazione è semplice, basta selezionare la destinazione (MicroSD), il sistema operativo e lanciare la copia dei file. Appena terminerà il processo, rimuoviamo la MicroSD ed inseriamola nella Orange Pi, mentre è ancora spenta.

Avviamo la single-board computer, collegandola a un monitor e ad una tastiera, e attendiamo il caricamento di Debian. Il sistema operativo vi chiederà di autenticarvi con nome utente orangepi e password orangepi. Una volta completata questa fase, procediamo installando SSH per controllare la scheda via terminale da un altro PC.

sudo apt install ssh

Conclusa l’installazione, riavviamo la single-board computer. Al riavvio, loggandoci con l’utente creato in precedenza, apparirà il nostro indirizzo IP, fondamentale e da conservare. A tal riguardo, recatevi sul vostro Modem/Router e impostate questo IP Statico. Successivamente, possiamo staccare il monitor e la tastiera e lavorare comodamente da PC usando PuTTY [LINK].

Avviato PuTTY, inseriamo in Host Name l’indirizzo IP e clicchiamo su Open. Si aprirà la finestra di terminale con cui fare login come utente e inserendo la password che avevamo scelto prima. Siamo dentro il nostro Orange Pi e possiamo passare alla vera e propria configurazione.

Installazione Joomla

Per prima cosa aggiorniamo il sistema operativo, quindi da terminale digitiamo:

sudo apt update
sudo apt upgrade -y

Iniziamo installando PHP. Non ci interessa installare una versione specifica, quindi basta digitare quella presente nei repo del sistema operativo.

sudo apt install php -y

Il passo seguente è installare NGINX:

sudo apt install nginx

Alla fine della installazione di NGINX, avviamolo per la prima volta:

sudo systemctl start nginx

Dobbiamo adesso verificare se NIGINX si è avviato correttamente. Per verificare ciò, apriamo da computer una pagina web e digitiamo nella barra di ricerca l’indirizzo IP del nostro Orange Pi.

http://192.168.1.xxx

Attendiamo il caricamento della pagina web e se tutto è stato installato correttamente, vedremo questa pagina.

Siccome per installare correttamente Joomla dobbiamo affidarci a PHP, sarà necessario che NGINX sia configurato per quest’ultimo. Da terminale digitiamo:

sudo apt install php8.2-fpm php8.2-mbstring php8.2-mysql php8.2-curl php8.2-gd php8.2-curl php8.2-zip php8.2-xml -y

Entriamo nel file di configurazione di NGINX per apportare alcune modifiche tramite nano:

sudo nano /etc/nginx/sites-enabled/default

Identifichiamo questa riga:

index index.html index.htm;

Modifichiamola aggiungendo index.php:

index index.php index.html index.htm;

Senza uscire, troviamo ora le seguenti righe:

#location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
        #}

Sostituiamole con:

location ~ \.php$ {
               include snippets/fastcgi-php.conf;
               fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        }

Salviamo con CTRL + X poi Y e premiamo Invio. Ora riavviamo NGINX:

sudo systemctl reload nginx

 Sempre da terminale ci spostiamo di cartella:

cd /var/www/html/

All’interno della cartella html è contenuto il file index.html che dobbiamo cancellare:

sudo rm index.html

Creiamo un nuovo file con l’editor nano e lo chiamiamo index.php

sudo nano index.php

Aggiungiamo quanto segue all’interno del file:

<?php phpinfo(); ?>

Salviamo con CTRL + X poi Y e premiamo Invio. Torniamo al browser dove digitiamo nuovamente l’indirizzo IP della single-board computer per verificare che venga caricata la nuova pagina web.

Se tutto è stato eseguito correttamente, il successivo passaggio è creare il database per la gestione di WordPress. Passiamo ad installare MariaDB:

sudo apt install mariadb-server

Al termine dell’installazione dobbiamo configurare MariaDB. Accediamo come root per configurarlo:

sudo mysql -uroot

Creiamo un nuovo utente [joomla] ed assegniamoli una password [fattelodasolo]:

CREATE USER 'joomla'@'localhost' IDENTIFIED BY 'fattelodasolo';

Generiamo un nuovo database che chiameremo joomla_db:

CREATE DATABASE joomla_db;

Assegniamo i privilegi all’utente appena creato per gestire il database:

GRANT ALL ON joomla_db.* TO 'joomla'@'localhost';

Usciamo dalla configurazione di MariaDB.

quit

Installiamo un pacchetto PHP per la connessione al database:

sudo apt install php-mysql -y

Dopo aver installato MariaDB, possiamo installare un modulo PHP aggiuntivo di cui Joomla ha bisogno per gestire l’internazionalizzazione utilizzando il seguente comando:

sudo apt install php8.2-intl

Dopo aver installato correttamente PHP, NGINX e MariaDB, dobbiamo creare un host virtuale per far lavorare NGINX con Joomla. Sempre dal terminale, con il comando nano, iniziamo a scrivere il nostro host virtuale:

sudo nano /etc/nginx/sites-available/joomla.conf

Una volta creato il file, copia quanto segue, inserendo nel server_name l’indirizzo IP del vostro Orange Pi:

server {
    listen 80;
    listen [::]:80;

    root /var/www/joomla;

    index index.php index.html index.htm;
    server_name 192.168.1.xxx;

    client_max_body_size 100M;
    autoindex off;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # deny running scripts inside writable directories
    location ~* /(images|cache|media|logs|tmp)/.*.(php|pl|py|jsp|asp|sh|cgi)$ {
      return 403;
      error_page 403 /403_error.html;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # caching of files 
    location ~* \.(ico|pdf|flv)$ {
            expires 1y;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
            expires 14d;
    }
}

Per salvare CTRL + X poi Y e premiamo InvioQuesto file imposta una serie di cose, come la posizione della nostra installazione, il modo in cui NGINX dovrebbe elaborare i file e altro ancora. Con questa configurazione, abbiamo configurato l’host virtuale per funzionare indipendentemente dal nome del server.

Rendiamo ora il nostro sito disponibile, ossia creiamo un collegamento che permetta a NGINX di rendere il nostro web server locale disponibile sulla rete di casa:

sudo ln -s /etc/nginx/sites-available/joomla.conf /etc/nginx/sites-enabled/joomla.conf

Riavviamo NGINX:

sudo systemctl reload nginx

Creiamo una nuova cartella, all’interno della quale scaricheremo e installeremo Joomla.

sudo mkdir -p /var/www/joomla
cd /var/www/joomla

Avviamo il download di Joomla:

sudo wget https://downloads.joomla.org/cms/joomla4/4-4-8/Joomla_4-4-8-Stable-Full_Package.tar.gz

Al termine del download, estraiamo il contenuto del file compresso:

sudo tar -xvf Joomla_4-4-8-Stable-Full_Package.tar.gz

Poi eliminiamo il file compresso appena scaricato poiché non più utile:

sudo rm Joomla_4-4-8-Stable-Full_Package.tar.gz

Forniamo i corretti permessi alla cartella joomla ed al suo contenuto:

sudo chown -R www-data:www-data /var/www/joomla*

Ora possiamo aprire nuovamente il browser da computer e digitale l’indirizzo IP della single-board computer. Si avvierà l’installer di Joomla per la configurazione della piattaforma. Diamo un nome al sito.

Inseriamo un nome amministratore, specificando una password ed un indirizzo email.

Inseriamo i parametri del database creato precedentemente per completare l’installazione.