Installazione · 14 min read · Dec 19, 2025
Come installare Wallabag su Ubuntu 22.04

Wallabag è un servizio di tipo leggi-dopo. Ti consente di salvare pagine web da leggere in seguito a tuo piacimento. Ci sono molti servizi che ti permettono di farlo come Pocket, Instapaper, ecc., ma avere un servizio installato su un server di tua proprietà è molto meglio. Per prima cosa, non andrà in bancarotta e non rimuoverà i link.
Questo tutorial tratterà l’installazione e la configurazione di Wallabag su un server che esegue Ubuntu 22.04. Tratterà anche come configurare Nginx, MySQL, Composer e PHP, tutti necessari per eseguire Wallabag.
Prerequisiti
- Un server che esegue Ubuntu 22.04.
- Un utente non root con privilegi sudo.
- Un nome di dominio completamente qualificato (FQDN) come
wallabag.example.com. - Assicurati che tutto sia aggiornato.
$ sudo apt update $ sudo apt upgrade - Alcuni pacchetti di cui il tuo sistema ha bisogno.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -yAlcuni di questi pacchetti potrebbero già essere installati sul tuo sistema.
Passo 1 - Configurare il Firewall
Il primo passo è configurare il firewall. Ubuntu viene fornito di default con ufw (Uncomplicated Firewall).
Controlla se il firewall è attivo.
$ sudo ufw status
Dovresti ottenere il seguente output.
Status: inactive
Consenti la porta SSH in modo che il firewall non interrompa la connessione attuale quando viene abilitato.
$ sudo ufw allow OpenSSH
Consenti anche le porte HTTP e HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Abilita il Firewall
$ sudo ufw enable
Il comando potrebbe interrompere le connessioni ssh esistenti. Procedere con l'operazione (y|n)? y
Il firewall è attivo e abilitato all'avvio del sistema
Controlla di nuovo lo stato del firewall.
$ sudo ufw status
Dovresti vedere un output simile.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Passo 2 - Installare PHP e le sue estensioni
Ubuntu 22.04 viene fornito con la versione PHP 8.1.2 che è un po’ obsoleta. Installeremo l’ultima versione PHP 8.1 utilizzando il repository PHP di Ondrej.
$ sudo add-apt-repository ppa:ondrej/php
Successivamente, installa PHP e le sue estensioni richieste da Wallabag.
$ sudo apt install php8.1-fpm php8.1-mysql php8.1-bcmath php8.1-xml php8.1-zip php8.1-curl php8.1-mbstring php8.1-gd php8.1-tidy php8.1-intl php8.1-cli
Verifica l’installazione.
$ php --version
PHP 8.1.16 (cli) (built: Feb 14 2023 18:35:37) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.16, Copyright (c) Zend Technologies
with Zend OPcache v8.1.16, Copyright (c), by Zend Technologies
Passo 3 - Installare Composer
Composer è uno strumento di gestione delle dipendenze per PHP ed è necessario per l’installazione di Wallabag.
Esegui i seguenti comandi per scaricare il binario di Composer. Wallabag funziona solo con Composer 2.2 LTS, quindi abbiamo modificato il comando di conseguenza.
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"
Installa Composer spostando il binario nella directory /usr/local/bin.
$ sudo mv composer.phar /usr/local/bin/composer
Verifica l’installazione controllando la sua versione.
$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40
Passo 4 - Installare MySQL
Ubuntu 22.04 viene fornito con l’ultima versione di MySQL. Puoi installarlo con un solo comando.
$ sudo apt install mysql-server
Controlla la versione di MySQL.
$ mysql --version
mysql Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
Questo passaggio è necessario per le versioni di MySQL 8.0.28 e superiori. Entra nella Shell di MySQL.
$ sudo mysql
Esegui il seguente comando per impostare la password per il tuo utente root. Assicurati che abbia una combinazione di numeri, maiuscole, minuscole e caratteri speciali.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
Esci dalla shell.
mysql> exit
Esegui lo script di installazione sicura di MySQL.
$ sudo mysql_secure_installation
Per prima cosa, ti verrà chiesta la password di root. Inseriscila. Successivamente, ti verrà chiesto di installare il componente di validazione della password. Controlla la forza delle password utilizzate in MySQL. Premi Y per installarlo. Successivamente, ti verrà chiesto di impostare il livello della politica di validazione delle password. Scegli 2 poiché è il più forte.
Securing the MySQL server deployment.
Enter password for user root:
VALIDATE PASSWORD COMPONENT 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 component?
Press y|Y for Yes, any other key for No: Y
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: 2
Using existing password for root.
Estimated strength of the password: 100
Successivamente, inserisci N per rifiutare di cambiare la tua password di root. Inoltre, inserisci Y per rimuovere gli utenti anonimi, vietare i login remoti di root, rimuovere il database di test e ricaricare le tabelle dei privilegi.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
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!
Passo 5 - Configurare MySQL
Accedi alla shell di MySQL. Inserisci la tua password di root quando richiesto.
$ sudo mysql -u root -p
Crea un database di esempio.
mysql> CREATE DATABASE wallabag;
Crea un account utente SQL.
mysql> CREATE USER 'wallabaguser'@'localhost' IDENTIFIED BY 'Your_password2';
Concedi tutti i privilegi sul database all’utente.
mysql> GRANT ALL PRIVILEGES ON wallabag.* TO 'wallabaguser'@'localhost';
Flush dei privilegi dell’utente.
mysql> FLUSH PRIVILEGES;
Esci dalla shell.
mysql> exit
Passo 6 - Installare Nginx
Ubuntu 22.04 viene fornito con una versione più vecchia di Nginx. Devi scaricare il repository ufficiale di Nginx per installare l’ultima versione.
Importa la chiave di firma di Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Aggiungi il repository per la versione stabile di Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Aggiorna i repository di sistema.
$ sudo apt update
Installa Nginx.
$ sudo apt install nginx
Verifica l’installazione.
$ nginx -v
nginx version: nginx/1.22.1
Avvia il server Nginx.
$ sudo systemctl start nginx
Passo 7 - Installare SSL
Dobbiamo installare Certbot per generare il certificato SSL. Puoi installare Certbot utilizzando il repository di Ubuntu o scaricare l’ultima versione utilizzando lo strumento Snapd. Useremo la versione Snapd.
Ubuntu 22.04 viene fornito con Snapd installato di default. Esegui i seguenti comandi per assicurarti che la tua versione di Snapd sia aggiornata.
$ sudo snap install core && sudo snap refresh core
Installa Certbot.
$ sudo snap install --classic certbot
Usa il seguente comando per assicurarti che il comando Certbot possa essere eseguito creando un link simbolico alla directory /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Esegui il seguente comando per generare un certificato SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d wallabag.example.com
Il comando sopra scaricherà un certificato nella directory /etc/letsencrypt/live/wallabag.example.com sul tuo server.
Genera un certificato Diffie-Hellman group.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Controlla il servizio di pianificazione del rinnovo di Certbot.
$ sudo systemctl list-timers
Troverai snap.certbot.renew.service come uno dei servizi programmati per l’esecuzione.
NEXT LEFT LAST PASSED UNIT ACTIVATES
.....
Sun 2023-02-26 06:32:00 UTC 9h left Sat 2023-02-25 18:04:05 UTC 2h 59min ago snap.certbot.renew.timer snap.certbot.renew.service
Sun 2023-02-26 06:43:20 UTC 9h left Sat 2023-02-25 10:49:23 UTC 10h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2023-02-26 09:00:06 UTC 11h left Sat 2023-02-25 20:58:06 UTC 5min ago apt-daily.timer apt-daily.service
Fai un test del processo per controllare se il rinnovo SSL funziona correttamente.
$ sudo certbot renew --dry-run
Se non vedi errori, sei a posto. Il tuo certificato si rinnoverà automaticamente.
Passo 8 - Installare Wallabag
Crea la directory /var/www/wallabag/html.
$ sudo mkdir /var/www/html/wallabag -p
Scarica l’ultima versione di Wallabag.
$ wget https://wllbg.org/latest-v2-package
Estrai l’archivio.
$ tar xzf latest-v2-package
Sposta i file dalla directory estratta nella directory creata in precedenza. Puoi controllare l’ultima versione di Wallabag dalla pagina delle release di GitHub. L’ultima versione al momento della scrittura di questo tutorial è 2.5.4.
$ sudo mv wallabag-2.5.4/* /var/www/html/wallabag
Crea la directory degli asset.
$ sudo mkdir /var/www/html/wallabag/data/assets
Cambia i permessi della directory /var/www/html/wallabag all’utente attualmente connesso.
$ sudo chown -R $USER:$USER /var/www/html/wallabag
Passa alla directory.
$ cd /var/www/html/wallabag
Crea il file parameters.yml copiando il file di esempio.
$ cp app/config/parameters.yml.dist app/config/parameters.yml
Prima di iniziare a configurare Wallabag, genera una chiave segreta. Annotati la chiave da utilizzare in seguito.
$ openssl rand -base64 32
QLV/GpZwDobQbyQZQ15FkM1Hvt+ZFJZXw8GW9F4KR3o=
Apri il file dei parametri per la modifica.
$ nano app/config/parameters.yml
Trova la seguente sezione e compila le credenziali del database. La porta del database è 3306 per MySQL.
..........
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
database_name: wallabag
database_user: wallabaguser
database_password: Your_password2
Compila la descrizione del server e il nome di dominio.
domain_name: https://wallabag.example.com
server_name: "Howtoforge Wallabag"
Compila i tuoi dettagli SMTP. Nel nostro caso, stiamo utilizzando il servizio Amazon SES.
mailer_transport: smtp
mailer_user: YOUR_AES_USERNAME
mailer_password: YOUR_AES_PASSWORD
mailer_host: email-smtp.us-west-2.amazonaws.com
mailer_port: 587
mailer_encryption: tls
Compila la chiave segreta generata in precedenza. Se desideri mantenere l’autenticazione a due fattori, assicurati che le seguenti impostazioni siano applicate. Se desideri disattivare la registrazione degli utenti, imposta il valore di fouser_registration su false. La variabile fouser_confirmation è impostata su true, il che significa che ogni registrazione utente dovrà essere confermata via email. Cambia il valore della variabile from_email con l’indirizzo email di tua scelta.
# A secret key that's used to generate certain security-related tokens
secret: QLV/GpZwDobQbyQZQ15FkM1Hvt+ZFJZXw8GW9F4KR3o=
# two factor stuff
twofactor_auth: true
twofactor_sender: [email protected]
# fosuser stuff
fosuser_registration: true
fosuser_confirmation: true
.....
from_email: [email protected]
.....
Ci sono più sentinelle relative a Redis, RabbitMQ e impostazioni di Sentry. Puoi configurarle secondo le tue esigenze dopo aver installato i pacchetti indicati.
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Usa Composer per scaricare e installare le dipendenze richieste da Wallabag.
$ SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
Completa l’installazione utilizzando lo strumento da riga di comando di Wallabag.
$ php bin/console wallabag:install --env=prod
Ti verrà chiesto se desideri ripristinare il database e il suo schema. Inserisci no come risposta entrambe le volte. Successivamente, ti verrà chiesto se desideri creare un account amministratore. Digita yes per procedere e inserisci il nome utente, la password e l’indirizzo email per l’account.
wallabag installer
==================
Step 1 of 4: Checking system requirements.
------------------------------------------
------------------------ -------- ----------------
Checked Status Recommendation
------------------------ -------- ----------------
PDO Driver (pdo_mysql) OK!
Database connection OK!
Database version OK!
curl_exec OK!
curl_multi_init OK!
------------------------ -------- ----------------
[OK] Success! Your system can run wallabag properly.
Step 2 of 4: Setting up database.
---------------------------------
It appears that your database already exists. Would you like to reset it? (yes/no) [no]:
> no
Seems like your database contains schema. Do you want to reset it? (yes/no) [no]:
> no
Clearing the cache...
Database successfully setup.
Step 3 of 4: Administration setup.
----------------------------------
Would you like to create a new admin user (recommended)? (yes/no) [yes]:
> yes
Username [wallabag]:
> navjot
Password [wallabag]:
>
Email [[email protected]]:
> [email protected]
Administration successfully setup.
Step 4 of 4: Config setup.
--------------------------
Config successfully setup.
[OK] wallabag has been successfully installed.
[OK] You can now configure your web server, see https://doc.wallabag.org
Ripristina i permessi della directory a Nginx.
$ sudo chown -R nginx:nginx /var/www/html/wallabag
Passo 9 - Configurare Nginx e PHP
Configurare PHP-FPM
Apri il file /etc/php/8.1/fpm/pool.d/www.conf.
$ sudo nano /etc/php/8.1/fpm/pool.d/www.conf
Dobbiamo impostare l’utente/gruppo Unix dei processi PHP su nginx. Trova le righe user=www-data e group=www-data nel file e cambiale in nginx.
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...
Trova le righe listen.owner = www-data e listen.group = www-data nel file e cambiale in nginx.
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Aumenta il tempo di esecuzione per PHP-FPM e PHP-CLI a 60 secondi.
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 60/' /etc/php/8.1/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 60/' /etc/php/8.1/cli/php.ini
Aumenta il limite di memoria per PHP-FPM da 128MB a 256MB.
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.1/fpm/php.ini
Riavvia il servizio PHP-FPM.
$ sudo systemctl restart php8.1-fpm
Cambia il gruppo della directory delle sessioni PHP a Nginx.
$ sudo chgrp -R nginx /var/lib/php/sessions
Configurare Nginx
Crea e apri il file /etc/nginx/conf.d/wallabag.conf per la modifica.
$ sudo nano /etc/nginx/conf.d/wallabag.conf
Incolla il seguente codice.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wallabag.example.com;
access_log /var/log/nginx/wallabag.access.log;
error_log /var/log/nginx/wallabag.error.log;
# SSL
ssl_certificate /etc/letsencrypt/live/wallabag.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wallabag.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/wallabag.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 8.8.8.8;
root /var/www/html/wallabag/web;
location / {
try_files $uri /app.php$is_args$args;
}
# Pass PHP Scripts To FastCGI Server
location ~ ^/app\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Depends On The PHP Version
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
include fastcgi_params;
internal;
}
location ~ \.php$ {
return 404;
}
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name wallabag.example.com;
return 301 https://$host$request_uri;
}
Nota che la directory root da utilizzare nella configurazione di Nginx è /var/www/html/wallabag/public/.
Salva il file premendo Ctrl + X e inserendo Y quando richiesto al termine.
Apri il file /etc/nginx/nginx.conf per la modifica.
$ sudo nano /etc/nginx/nginx.conf
Aggiungi la seguente riga prima della riga include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Verifica la sintassi del file di configurazione di Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Riavvia il servizio Nginx.
$ sudo systemctl restart nginx
Passo 10 - Accedere a Wallabag
Apri l’URL https://wallabag.example.com nel tuo browser e vedrai la seguente schermata di accesso.

Inserisci le tue credenziali create durante l’installazione e premi il pulsante LOG IN per procedere. Sarai accolto con il dashboard di Wallabag.

Wallabag ti offre una moltitudine di app per ogni browser, mobile o lettore di Ebook tramite le quali puoi aggiungere link. E se nulla ti attira, puoi anche usare un Bookmarklet, i cui dettagli puoi accedere dalla sezione How to cliccando sull’icona dell’utente in alto a destra del dashboard.

Ti verranno forniti link alle estensioni del browser, alle app mobili e al bookmarklet di Wallabag.

Questo è tutto. Puoi iniziare a usare Wallabag per salvare articoli da leggere in seguito.
Conclusione
Questo conclude il nostro tutorial su come installare Wallabag su un server Ubuntu 22.04. Se hai domande, pubblicale nei commenti qui sotto.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.