Introduzione

ElkArte è un software gratuito, open source e potente per la creazione di forum basato su Simple Machines Forum. È scritto in PHP e ti consente di creare un forum responsive per dispositivi mobile e wireless. È progettato per fornire tutte le funzionalità necessarie per un community forum completo fin dall'inizio.

ElkArte è la scelta giusta per te se stai cercando una piattaforma di forum semplice e diretta che sia facile da personalizzare.

In questo tutorial, ti mostreremo come installare ElkArte con Let's Encrypt SSL su Ubuntu 20.04 LTS Focal Fossa.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • Un nome di dominio valido associato al tuo server.
  • Accesso root o con un utente con privilegi sudo.

Se desideri installare Elkarte Forum su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare Apache, PHP e MariaDB

ElkArte viene eseguito sul server Web, basato su PHP e utilizza MariaDB come back-end del database. Quindi dovrai installare Apache, MariaDB, PHP e altre estensioni PHP sul tuo server. Puoi installare tutti i pacchetti con il seguente comando:

sudo apt-get install apache2 mariadb-server php7.4 libapache2-mod-php7.4 php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-mysql php7.4-gd php7.4-pgsql php7.4-xml php7.4-cli php7.4-imagick php7.4-bcmath php7.4-gmp php7.4-zip unzip -y

Una volta installati tutti i pacchetti, apri il file php.ini e modifica alcune impostazioni utili con il tuo editor:

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

Modifica le seguenti righe:

Change the following lines:
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Europe/Rome

Salvare e chiudere il file, quindi riavviare il servizio Apache per applicare le modifiche:

sudo systemctl restart apache2

Configurare il database MariaDB

Innanzitutto, proteggere l'installazione di MariaDB e impostare la password di root di MariaDB con il seguente comando:

sudo mysql_secure_installation

Rispondi a tutte le domande come mostrato di seguito:

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Quindi, accedi alla shell MariaDB con il seguente comando:

sudo mysql -u root

Dopo il login, crea un database e un utente per ElkArte:

CREATE DATABASE elkdb;
CREATE USER 'elk'@'localhost' IDENTIFIED BY 'password';

Successivamente, concedi tutti i privilegi a elkdb con il seguente comando:

GRANT ALL ON elkdb.* TO 'elk'@'localhost' WITH GRANT OPTION;

Quindi, aggiorna i privilegi ed esci dalla shell MariaDB con il seguente comando:

FLUSH PRIVILEGES;
EXIT;

Una volta configurato il database, è possibile procedere al passaggio successivo.

Per maggiori informazioni riguardo l'accesso con password al database MariaDB leggere il seguente tutorial: Come installare MariaDB su Ubuntu 20.04 LTS.

Scaricare ElkArte

Innanzitutto, scarica l'ultima versione di ElkArte dal repository Git usando il comando wget:

sudo wget https://github.com/elkarte/Elkarte/releases/download/v1.1.6/ElkArte_v1-1-6_install.zip

Una volta completato il download, decomprimere il file scaricato nella directory principale Web di Apache usando il comando unzip:

sudo unzip ElkArte_v1-1-6_install.zip -d /var/www/html/elkarte

Quindi, concedere le autorizzazioni appropriate alla directory elkarte usando il comando chown e chmod:

sudo chown -R www-data:www-data /var/www/html/elkarte/
sudo chmod -R 755 /var/www/html/elkarte/

Al termine, puoi procedere al passaggio successivo.

Configurare Apache per ElkArte

Successivamente, crea un nuovo file di configurazione dell'host virtuale Apache per ElkArte.

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

Aggiungi le seguenti righe:

<VirtualHost *:80>
     ServerAdmin [email protected]
     ServerName elk.noviello.it
     DocumentRoot /var/www/html/elkarte

     <Directory /var/www/html/elkarte/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
    
</VirtualHost>

Salva e chiudi il file al termine. Quindi, abilita l'host virtuale Apache e riscrivi il modulo con il seguente comando:

sudo a2ensite elkarte.conf
sudo a2enmod rewrite

Infine, riavvia il servizio Apache per implementare le modifiche.

sudo systemctl restart apache2

Proteggere ElkArte con Let's Encrypt SSL

Innanzitutto, installa Certbot Let's Encrypt Client per gestire SSL per il tuo sito Web:

sudo apt-get install certbot python3-certbot-apache -y

Una volta installato Certbot, eseguire il comando seguente per scaricare e installare Let's Encrypt SSL per il tuo sito Web:

sudo certbot --apache -d elk.noviello.it

Ti verrà chiesto di fornire il tuo indirizzo email e di accettare il termine di servizio come mostrato di seguito:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for elk.noviello.it
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/elk-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/elk-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/elk-le-ssl.conf

Quindi, selezionare se reindirizzare il traffico HTTP su HTTPS come mostrato di seguito:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Digitare 2 e premere Invio per completare l'installazione come mostrato di seguito.

Redirecting vhost in /etc/apache2/sites-enabled/elk.conf to ssl vhost in /etc/apache2/sites-available/elk-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://elk.noviello.it

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=elk.noviello.it
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/elk.noviello.it/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/elk.noviello.it/privkey.pem
   Your cert will expire on 2020-08-19. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

A questo punto, ElkArte è protetto con Let's Encrypt SSL.

Accedere a ElkArte Web Interface

Ora, apri il tuo browser web e digita l'URL https://elk.noviello.it . Verrai reindirizzato alla pagina di benvenuto di ElkArte.

Fai clic sul pulsante Continua . Dovresti vedere la pagina delle impostazioni del server database.

Fornire i dettagli del database e fare clic sul pulsante Continua. Dovresti vedere la pagina delle impostazioni del forum.

Fornisci l'URL del forum, il nome del forum e fai clic sul pulsante Continua. Dovresti vedere la seguente pagina:

Fai clic sul pulsante Continua. Dovresti vedere la pagina di creazione dell'account Admin.

Fornisci il nome utente, la password, l'e-mail di amministratore e fai clic sul pulsante Continua. Al termine dell'installazione, dovresti vedere la pagina di completamento dell'installazione. Selezionare la spunta "Click here to try to delete the install directory now".

Fai clic sul forum appena installato. Dovresti vedere la dashboard di ElkArte.

Conclusione

Congratulazioni! hai installato ElkArte con Apache e Let's Encrypt SSL su Ubuntu 20.04 LTS Focal Fossa. Ora puoi facilmente ospitare il tuo community forum con ElkArte.