How to Install ElkArte Forum Software on Ubuntu 22.04

ElkArte is a free and open-source forum software written in PHP language. It is based on the Simple Machines Forum, which helps you create a community forum easily. It has grown to become a modern and feature-rich forum package to meet the demands of today's message board users. It offers a wide range of Themes and Addons created by the community that helps you to extend the ElkArte functionality.

This tutorial will show you how to install ElkArte on Ubuntu 22.04 with Let's Encrypt SSL.

Prerequisites

  • A server running Ubuntu 22.04.
  • A valid domain name is pointed with your server.
  • A root password is configured on your server.

Install Apache, PHP, and MariaDB

ElkArte runs on the web server based on the PHP and uses MariaDB as a database backend. So you will need to install the Apache, MariaDB, PHP, and other PHP extensions on your server.

First, install the Apache and MariaDB server with the following command:

apt install apache2 mariadb-server

Next, you will need to install PHP version 7.4 and other required extensions on your server. By default, Ubuntu 22.04 ships with PHP version 8.1 in its default repository. So you will need to install the Ondrej PHP repository to your server.

apt install software-properties-common -y
add-apt-repository ppa:ondrej/php -y

Once the PHP repository is added to your server, you can install PHP with the following command:

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

Once all the packages are installed, open the php.ini file and change the default settings:

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

Change the following lines:

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

Save and close the file, then restart the Apache service to apply the changes:

systemctl restart apache2

Configure MariaDB Database

First, secure the MariaDB installation and set the MariaDB root password with the following command:

mysql_secure_installation

Answer all the questions as shown below:

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

Next, log in to the MariaDB shell with the following command:

mysql -u root -p

After login, create a database and user for ElkArte:

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

Next, grant all the privileges to the elkdb with the following command:

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

Next, flush the privileges and exit from the MariaDB shell with the following command:

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

Once the database is configured, you can proceed to the next step.

Download ElkArte

First, download the latest version of the ElkArte from the Git repository using the following command:

wget https://github.com/elkarte/Elkarte/releases/download/v1.1.8/ElkArte_v1-1-8_install.zip

Once the download is completed, unzip the downloaded file to the Apache web root directory using the following command:

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

Next, give proper permissions to the elkarte directory using the following command:

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

Once you are finished, you can proceed to the next step.

Configure Apache for ElkArte

Next, create a new Apache virtual host configuration file for ElkArte.

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

Add the following lines:

<VirtualHost *:80>
     ServerAdmin [email protected]
     ServerName elk.linuxbuz.com
     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>

Save and close the file when you are finished. Then, enable the Apache virtual host and rewrite module with the following command:

a2ensite elkarte.conf
a2enmod rewrite

Finally, restart the Apache service to implement the changes.

systemctl restart apache2

You can also check the Apache status with the following command:

systemctl status apache2

You will get the following output:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-11 13:35:46 UTC; 9s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 30485 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 30490 (apache2)
      Tasks: 6 (limit: 4579)
     Memory: 14.9M
        CPU: 90ms
     CGroup: /system.slice/apache2.service
             ??30490 /usr/sbin/apache2 -k start
             ??30549 /usr/sbin/apache2 -k start
             ??30550 /usr/sbin/apache2 -k start
             ??30551 /usr/sbin/apache2 -k start
             ??30552 /usr/sbin/apache2 -k start
             ??30553 /usr/sbin/apache2 -k start

Sep 11 13:35:46 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

Access ElkArte Web Interface

Now, open your web browser and type the URL https://elk.linuxbuz.com. You will be redirected to the ElkArte welcome page:

Click on the Continue button. You should see the database server settings page:

Provide your database details and click on the Continue button. You should see the Forum setting page:

Provide your Forum URL, Forum name, and click on the Continue button. You should see the following page:

Click on the Continue button. You should see the Admin account creation page:

Provide your admin username, password, email, and click on the Continue button. Once the installation has been finished, you should see the following page:

Click on your newly installed forum. You should see the ElkArte dashboard on the following page:

Secure ElkArte with Let's Encrypt SSL

First, install the Certbot Let's Encrypt Client to manage the SSL for your website:

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

Once the Certbot is installed, run the following command to download and install Let's Encrypt SSL for your website:

certbot --apache -d elk.linuxbuz.com

You will be asked to provide your email address and accept the term of service as shown below:

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.linuxbuz.com
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

Next, select whether or not to redirect HTTP traffic to HTTPS as shown below:

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

Type 2 and hit Enter to finish the installation as shown below.

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.linuxbuz.com

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

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/elk.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/elk.linuxbuz.com/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.

At this point, your ElkArte is secured with Let's Encrypt SSL.

Conclusion

Congratulations! you have successfully installed ElkArte with Let's Encrypt SSL on Ubuntu 22.04. You can now easily host your own community forum with ElkArte. Feel free to ask me if you have any questions.

Share this page:

0 Comment(s)