Ricerca nel sito web

Come installare BookStack su Debian 12


BookStack è un software wiki gratuito e open source scritto in PHP con il framework web Laravel. BookStack vuole essere una piattaforma semplice e self-hosted per l'archiviazione e l'organizzazione delle informazioni.

In questo tutorial ti guideremo passo dopo passo attraverso il processo di installazione di BookStack sul server Debian 12 in modo che tu possa avere la tua piattaforma simile a un wiki per pubblicare informazioni.

Prerequisiti

Prima di iniziare, assicurati di avere quanto segue:

  • Un server Debian 12.
  • Un utente non root con privilegi di amministratore sudo.
  • Un nome di dominio puntava all'indirizzo IP del server.

Installazione delle dipendenze

BookStack è una piattaforma wiki scritta in PHP e MySQL/MariaDB. Al momento è completamente supportato con PHP 8.2. Per quanto riguarda questa fase, installerai le dipendenze per BookStack, che include i pacchetti LAMP Stack (Apache2, MariaDB, PHP), Git e Composer.

Aggiorna e aggiorna l'indice del tuo pacchetto Debian utilizzando il seguente comando.

sudo apt update

Una volta aggiornato il repository, installa le dipendenze del pacchetto per BookStack eseguendo il seguente comando apt install. Con questo comando installerai il pacchetto LAMP Stack, Composer e Git.

sudo apt install apache2 mariadb-server composer curl php php-xml libapache2-mod-php php-fpm php-curl php-mbstring php-ldap php-tidy php-zip php-gd php-mysql git

Digitare y per procedere con l'installazione.

Dopo aver installato le dipendenze, verificare ciascuna dipendenza eseguendo il comando seguente.

Verifica il servizio apache2 tramite il comando systemctl riportato di seguito per assicurarti che il servizio sia in esecuzione e abilitato.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Il seguente output confermerà che il servizio apache2 è in esecuzione e abilitato.

Ora verifica il servizio mariadb utilizzando il comando seguente.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

L'output dovrebbe mostrare che il servizio mariadb è in esecuzione e abilitato sul tuo sistema.

Successivamente, verifica la versione di PHP ed elenca le estensioni abilitate utilizzando il comando seguente.

php -v
php -m

In base al seguente output, PHP 8.2 è installato sul tuo sistema.

Infine, verifica il compositore utilizzando il comando seguente. Questo individuerà il file binario di Composer e ne controllerà la versione.

which composer
sudo -u www-data composer -v

Dovresti vedere che Composer 2.5.5 è installato in /usr/bin/composer.

Configurazione di PHP

Dopo aver installato le dipendenze, il passo successivo è configurare l'installazione di PHP apportando modifiche al file php.ini sulla tua macchina Debian.

Apri la configurazione PHP predefinita /etc/php/8.2/apache2/php.ini utilizzando il seguente comando dell'editor nano.

sudo nano /etc/php/8.2/apache2/php.ini

Modificare alcune impostazioni predefinite con la seguente configurazione. Assicurati di regolare i parametri date.timezone e memory_limit con l'ambiente del tuo server.

date.timezone = Europe/Amsterdam
memory_limit = 512M

Salvare il file e uscire dall'editor una volta terminato.

Ora esegui il seguente comando systemctl per riavviare il servizio apache2 e applicare le modifiche apportate.

sudo systemctl restart apache2

Configurazione del server MariaDB

Ora che PHP è configurato, il passo successivo consisterà nel configurare l'installazione del server MariaDB utilizzando l'utilità mariadb-secure-installation, che ti consente di impostare la sicurezza di base per MariaDB. Quindi, creerai anche un nuovo database e un nuovo utente che verranno utilizzati da BookStack.

Esegui il seguente comando mariadb-secure-installlation per proteggere la tua installazione MariaDB.

sudo mariadb-secure-installation

Durante il processo ti verranno chieste alcune configurazioni. Digitare Y per accettare e applicare le nuove modifiche oppure digitare n per No per rifiutare la configurazione.

  • Per l'installazione predefinita del server MariaDB senza password root, premere INVIO quando viene richiesta la password.
  • L'autenticazione locale per gli utenti root di MariaDB è protetta per impostazione predefinita, inserisci 'n' quando ti viene chiesto di modificare il metodo di autenticazione in 'unix_socket'.
  • Inserisci 'Y' per creare una nuova password root MariaDB. Quindi, inserisci la password complessa per il tuo utente root MariaDB e ripeti.
  • Quando ti viene chiesto di disabilitare l'autenticazione remota per l'utente root di MariaDB, inserisci 'Y' per accettare.
  • L'installazione predefinita del server MariaDB viene fornita con il database "test" e consente a un utente anonimo di accedervi. Immettere "Y" per entrambe le impostazioni per rimuovere il "test" del database predefinito e rimuovere i privilegi anonimi.
  • Infine, inserisci "Y" per confermare il ricaricamento dei privilegi della tabella.

Dopo aver configurato MariaDB, creerai un nuovo database e utente MariaDB che verrà utilizzato da BookStack tramite il comando client mariadb.

Accedi al server MariaDB utilizzando il seguente comando mariadb. Inserisci la password root di MariaDB quando richiesto.

sudo mariadb -u root -p

Ora esegui le seguenti query per creare un nuovo database e utente per BookStack. In questo esempio, creerai un nuovo database e un nuovo utente bookstack, con la password p4ssword.

CREATE DATABASE bookstack;
CREATE USER bookstack@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL ON bookstack.* TO bookstack@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;

Successivamente, esegui la seguente query per verificare i privilegi per l'utente bookstack.

SHOW GRANTS FOR bookstack@localhost;

Dovresti vedere che l'utente bookstack è autorizzato ad accedere e gestire il database bookstack che verrà utilizzato da BookStack.

Digitare quit per uscire dal server MariaDB.

Download di Bookstack

Ora che hai configurato il server PHP e MariaDB, sei pronto per installare BookStack. In questa sezione installerai BookStack tramite Git e Composer.

Innanzitutto, crea nuove directory /var/www/.config e /var/www/.cache che verranno utilizzate da Composer per archiviare la cache e la configurazione delle dipendenze. Successivamente, devi anche modificare la proprietà di entrambe le directory con l'utente www-data.

mkdir -p /var/www/{.config,.cache}
sudo chown -R www-data /var/www/{.config,.cache}

Passa alla directory /var/www e scarica il codice sorgente di BookStack nella directory bookstack. La directory di installazione di BookStack dovrebbe essere /var/www/bookstack.

cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch bookstack

Ora cambia la proprietà della directory /var/www/bookstack nell'utente www-data e spostati al suo interno.

sudo chown -R www-data:www-data /var/www/bookstack
cd /var/www/bookstack

Successivamente, copia il file .env.example in .env e apri il nuovo file utilizzando il seguente comando dell'editor nano.

sudo -u www-data cp .env.example .env
sudo -u www-data nano .env

Inserisci il tuo nome di dominio nell'opzione APP_URL e inserisci i dettagli del tuo database MariaDB nelle impostazioni DB_ di seguito.

# The application URL
APP_URL=http://bookstack.hwdomain.io    
# Database values also need to be modified
# If you follow previous command, you only need to add your DB_PASSWORD
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=p4ssword

Salva e chiudi il file quando hai finito.

Successivamente, esegui il comando seguente per installare le dipendenze PHP tramite Composer.

sudo -u www-data composer install --no-dev --no-plugins

Durante l'installazione verrà visualizzato il seguente output.

Dopo aver installato le dipendenze PHP, esegui il comando seguente per generare la chiave segreta e migrare il database.

sudo -u www-data php artisan key:generate --no-interaction --force
sudo -u www-data php artisan migrate --no-interaction --force

La chiave segreta nel file .env verrà aggiornata e di seguito è riportato il processo durante la migrazione del database.

Una volta terminato tutto, esegui il comando seguente per modificare la proprietà di alcune directory nell'utente www-data e assicurarti che tali directory siano scrivibili.

sudo chown www-data:www-data -R bootstrap/cache public/uploads storage 
sudo chmod u+rw bootstrap/cache public/uploads storage

Infine, esegui il comando seguente per modificare l'autorizzazione del file .env su 640. Ciò garantirà che solo l'utente www-data sarà in grado di apportare modifiche al file.

sudo chmod -R 640 /var/www/bookstack/.env

Configurazione dell'host virtuale Apache2

Nella sezione seguente creerai una nuova configurazione di host virtuale Apache2 che verrà utilizzata per eseguire BookStack. Quindi, devi assicurarti di aver preparato il tuo nome di dominio e assicurarti che punti all'indirizzo IP del server.

Prima di creare una configurazione host virtuale, esegui il comando seguente per abilitare il modulo di riscrittura su Apache2.

sudo a2enmod rewrite

Ora crea una nuova configurazione di host virtuale /etc/apache2/sites-available/bookstack.conf utilizzando il seguente comando dell'editor nano.

sudo nano /etc/apache2/sites-available/bookstack.conf

Inserisci la seguente configurazione e assicurati di modificare il nome di dominio nell'opzione ServerName. L'esempio seguente utilizzerà il dominio bookstack.hwdomain.io per l'installazione di BookStack.

<VirtualHost *:80>
    ServerName bookstack.hwdomain.io
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/bookstack/public/
    <Directory /var/www/bookstack/public/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
        <IfModule mod_rewrite.c>
            <IfModule mod_negotiation.c>
                Options -MultiViews -Indexes
            </IfModule>
            RewriteEngine On
            # Handle Authorization Header
            RewriteCond %{HTTP:Authorization} .
            RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
            # Redirect Trailing Slashes If Not A Folder...
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_URI} (.+)/$
            RewriteRule ^ %1 [L,R=301]
            # Handle Front Controller...
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^ index.php [L]
        </IfModule>
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/bookstack-error.log
    CustomLog ${APACHE_LOG_DIR}/bookstack-access.log combined
</VirtualHost>

Salva e chiudi il file quando hai finito.

Successivamente, esegui il comando seguente per attivare il file host virtuale bookstack.conf e verificare la sintassi di Apache2.

sudo a2ensite bookstack.conf
sudo apachectl configtest

Se usi la sintassi corretta, l'output "Syntax OK" verrà stampato sul tuo terminale.

Infine, esegui il comando systemctl di seguito per riavviare il servizio aapche2 e applicare le modifiche apportate.

sudo systemctl restart apache2

Protezione di Bookstack con certificati SSL/TLS

In questa guida proteggerai BookStack con certificati SSL/TLS, che possono essere generati da Letsencrypt tramite lo strumento Certbot.

Installa Certbot e il plugin Certbot Apache tramite il comando apt install riportato di seguito. Digitare y per confermare e procedere con l'installazione.

sudo apt install certbot python3-certbot-apache

Ora esegui il comando certbot di seguito per generare certificati SSL/TLS e proteggere la tua installazione di BookStack. Assicurati di modificare il nome di dominio e l'indirizzo e-mail nel comando seguente.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email  -d bookstack.hwdomain.io

Al termine del processo, i tuoi certificati SSL/TLS saranno disponibili nella directory /etc/letsencrypt/live/bookstack.hwdomain.io. Inoltre, l'installazione di BookStack verrà configurata automaticamente con HTTPS, che è configurato tramite il plugin Certbot Apache.

Accesso a Bookstack

A questo punto, tutto è configurato e l'installazione di BookStack è terminata. Ora puoi accedere alla tua installazione di BookStack.

Avvia il tuo browser web e visita il nome di dominio della tua installazione BookStack, come https://bookstack.hwdomain.io/, e verrai reindirizzato alla pagina di accesso di BookStack.

Inserisci l'indirizzo email predefinito [email  e la password è password, quindi fai clic su Accedi.

In caso di successo, dovresti vedere la dashboard di BookStack come la seguente:

Conclusione

Per concludere, hai installato correttamente BookStack sul server Debian 12 passo dopo passo. Hai installato BookStack tramite Git, Composer e con i pacchetti LAMP Stack (Apache2, MariaDB e PHP). Hai anche protetto BookStack con certificati SSL/TLS di Letsencrypt. Da qui puoi ora compilare le tue informazioni e creare la tua documentazione.

Articoli correlati: