ElkArte Forum met Apache en Let’s Encrypt te installeren op Debian 10

ElkArte is een gratis, open-source en krachtige forum software waarmee je je eigen online forum gemeenschap kunt creëren. Het is een eenvoudig, licht en modern forum platform gebaseerd op PHP en gebruikt MySQL/MariaDB om zijn gegevens op te slaan. ElkArte heeft een rijke verzameling functies, waaronder, Meldingen, Likes voor berichten, Kladjes, Automatisch opslaan, Slepen en neerzetten van bestandsbijlagen, Geïntegreerde video insluiten voor youtube, Berichten plaatsen per e-mail, Verbeterde anti-spam maatregelen en nog veel meer.

In deze handleiding leggen we uit hoe je ElkArte op een Debian 10 server kunt installeren.

Vereisten

  • Een server waarop Debian 10 draait.
  • Een root wachtwoord is ingesteld op je server.

Aan de slag

Voor je begint, moet je je systeem met de nieuwste versie updaten. Je kunt dit doen door het volgende commando uit te voeren:

apt-get update -y
apt-get upgrade -y

Als je server bijgewerkt is, herstart je je server om de veranderingen toe te passen.

Installeer Apache, MariaDB en PHP

Eerst moet je Apache webserver, MariaDB databaseserver, PHP en andere vereiste bibliotheken op je server installeren. Je kunt ze allemaal installeren door het volgende commando uit te voeren:

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

Als alle pakketten geïnstalleerd zijn, open je php.ini bestand en pas je enkele instellingen aan:

nano /etc/php/7.3/apache2/php.ini

Verander de volgende regels:

memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Sla het bestand op en sluit het als je klaar bent. Herstart dan de Apache webserver met het volgende commando:

systemctl restart apache2

Configureer Database voor ElkArte

Vervolgens moet je een database en gebruiker voor ElkArte aanmaken. Log daartoe in op de MariaDB shell met het volgende commando:

mysql -u root -p

Geef je root wachtwoord op de prompt en maak dan een databank en een gebruiker met het volgende commando:

MariaDB [(none)]> CREATE DATABASE elkartedb;
MariaDB [(none)]> CREATE USER 'elkarte'@'localhost' IDENTIFIED BY 'password';

Verleen vervolgens alle privileges aan ElkArte met het volgende commando:

MariaDB [(none)]> GRANT ALL ON elkartedb.* TO 'elkarte'@'localhost' WITH GRANT OPTION;

Spoel vervolgens de privileges door en verlaat de MariaDB shell met het volgende commando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Als je klaar bent, kun je verder gaan met de volgende stap.

ElkArte downloaden

Eerst moet je de nieuwste versie van ElkArte uit de Git repository downloaden. Om het te downloaden, voer je het volgende commando uit:

wget https://github.com/elkarte/Elkarte/archive/master.zip

Zodra de download voltooid is, pak je het gedownloade bestand uit met het volgende commando:

unzip master.zip

Verplaats vervolgens de uitgepakte map naar de Apache web root map:

mv Elkarte-master /var/www/html/elkarte

Verander vervolgens het eigendom van de elkarte directory en geef de nodige permissies met het volgende commando:

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

Als je klaar bent, kun je verder gaan met de volgende stap.

Maak een virtuele host voor ElkArte

Vervolgens moet je een Apache virtual host configuratiebestand maken om ElkArte te serveren. Je kunt het maken met het volgende commando:

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

Voeg de volgende regels toe:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/elkarte
     ServerName example.com

     <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>

Sla het bestand op en sluit het als je klaar bent. Schakel dan het virtuele host bestand en de Apache herschrijfmodule in met het volgende commando:

a2ensite elkarte.conf
a2enmod rewrite

Herstart tenslotte de Apache webserver om de veranderingen toe te passen:

systemctl restart apache2

Toegang tot de ElkArte Web Interface

ElkArte is nu geïnstalleerd en geconfigureerd. Het is tijd om de ElkArte webinterface te openen.

Open je web browser en typ de URL http://example.com. Je wordt doorverwezen naar de ElkArte welkomstpagina:

ElkArte Installateur

Klik op de knop Doorgaan. Je zou de volgende pagina moeten zien:

Database instellingen

Geef je databasenaam, gebruikersnaam en wachtwoord op en klik op de Ga door knop. Je zou de volgende pagina moeten zien:

Forum Instellingen

Geef je Forum naam, Forum URL en klik op het Ga verder knopje. Je zou de volgende pagina moeten zien:

Het vullen van de databank

Klik nu op het Continue knopje. Je zou nu de admin creatie pagina moeten zien:

Maak een admin account aan

Geef je gewenste beheerdersnaam, wachtwoord, e-mail, databankwachtwoord en klik op het knopje Doorgaan. Als de installatie voltooid is, zou je de volgende pagina moeten zien:

Voltooi de installatie

Klik nu op“je nieuw geïnstalleerde forum“. Je zou het ElkArte dashboard moeten zien op de volgende pagina:

ElkArte Forum

Beveilig ElkArte met Let’s Encrypt

Eerst moet je Certbot op je server installeren. Certbot wordt gebruikt om een SSL certificaat van de Let’s Encrypt te verkrijgen en Apache in te stellen om dit certificaat te gebruiken.

Standaard is de nieuwste versie van Certbot niet beschikbaar in de standaard repository van Debian 10. Je zult dus de Certbot repository aan je server moeten toevoegen.

Voeg eerst de Certbot repository toe met het volgende commando:

add-apt-repository ppa:certbot/certbot

Zodra de repository is toegevoegd, update je de repository en installeer je Certbot met het volgende commando:

apt-get update -y
apt-get install certbot python-certbot-apache -y

Certbot is nu geïnstalleerd en klaar voor gebruik.

Voer het volgende commando uit om het SSL certificaat voor je domein te verkrijgen:

certbot --apache -d example.com

Eerst moet je een geldig e-mail adres opgeven en akkoord gaan met de servicevoorwaarden zoals hieronder getoond:

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 example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/example.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/example.com-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/example.com-le-ssl.conf

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

Kies vervolgens optie 2 om het gratis SSL certificaat voor je domein te downloaden en te installeren. Als de installatie met succes voltooid is. Je zou de volgende uitvoer moeten krijgen:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/example.com.conf to ssl vhost in /etc/apache2/sites-available/
example.com-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://example.com

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

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2019-10-22. 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

Gefeliciteerd! je ElkArte is nu beveiligd met SSL certificaat. Je kunt er nu veilig bij door de URL https://example.com te bezoeken.