Elgg is a social networking platform that is open-source and allows users to create and manage their own social networks and communities.
It offers a flexible architecture that enables developers to extend and customize its functionality based on their specific requirements. Elgg also supports the development of plugins and themes, providing further customization options and integration with other systems.
This tutorial will guide you through the process of installing Elgg on the Debian 12 operating system.
Step 1: Update the Operating System
Begin by updating your Debian 12 operating system to the latest version using the following command:
“`
# apt update && apt upgrade
“`
Step 2: Install the Apache Web Server
Install the Apache web server using the apt package manager with this command:
“`
# apt install apache2
“`
To check the status of the Apache service, use the following command:
“`
# systemctl status apache2
“`
Step 3: Install PHP and PHP Extensions for Elgg
To install PHP and additional PHP modules required for Elgg, run the following command:
“`
# apt install php php-cli php-common libapache2-mod-php php-curl php-zip php-gd php-mysql php-xml php-mbstring php-xmlrpc php-intl
“`
Verify that PHP is installed by running the following command:
“`
php -v
“`
After installing the packages, edit the php.ini file:
“`
# nano /etc/php/8.2/apache2/php.ini
“`
Modify the desired settings according to your requirements. For example:
“`
max_execution_time = 300
memory_limit = 512M
post_max_size = 128M
upload_max_filesize = 128M
date.timezone = America/Chicago
“`
Save the changes and restart the Apache web server:
“`
# systemctl restart apache2
“`
Step 4: Install MariaDB and Create a Database
Install MariaDB using the following command:
“`
# apt install mariadb-server mariadb-client
“`
To check the status of the MariaDB service, use the command:
“`
# systemctl status mariadb
“`
Secure MariaDB using the `mysql_secure_installation` script:
“`
# mysql_secure_installation
“`
Follow the prompts to set a root password and secure your MariaDB installation.
Log in to the MariaDB shell:
“`
# mysql -u root -p
“`
Create a database for Elgg:
“`sql
MariaDB [(none)]> CREATE DATABASE elgg;
MariaDB [(none)]> CREATE USER ‘elgg’@’localhost’ IDENTIFIED BY ‘Str0ngPass2F’;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON elgg.* TO ‘elgg’@’localhost’;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
“`
Step 5: Download Elgg
Download the latest version of Elgg from the official website. For example:
“`
# wget https://elgg.org/download/elgg-5.0.1.zip
“`
Extract the downloaded file to the `/var/www/` directory:
“`
# unzip elgg-5.0.1.zip -d /var/www/
“`
Rename the extracted directory:
“`
# mv /var/www/elgg-5.0.1 /var/www/elgg/
“`
Create a data directory:
“`
# mkdir /var/www/data/
“`
Set permissions for the Apache web server user to access the files:
“`
# chown -R www-data:www-data /var/www/data/
# chown -R www-data:www-data /var/www/elgg/
“`
Step 6: Configure Apache for Elgg
Execute the following commands to create a new VirtualHost file named elgg.conf in the /etc/apache2/sites-available/ directory.
“`
# nano /etc/apache2/sites-available/elgg.conf
“`
Paste the following content:
“`apache
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/elgg/ServerName your-domain.com
ServerAlias www.your-domain.com<Directory /var/www/elgg/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>ErrorLog /var/log/apache2/your-domain.com-error_log
CustomLog /var/log/apache2/your-domain.com-access_log common
</VirtualHost>
“`
Remember to replace “your-domain.com” with the actual domain name of your server.
Save and exit the configuration file.
Next, enable the “rewrite” module in Apache:
“`
# a2enmod rewrite
“`
To enable this site, run the following command:
“`
# ln -s /etc/apache2/sites-available/elgg.conf /etc/apache2/sites-enabled/elgg.conf
“`
To implement the changes, restart the Apache web server:
“`
# systemctl restart apache2
“`
Step 7: Install a Free Let’s Encrypt SSL Certificate
First, install the Certbot client, which is used to create Let’s Encrypt certificates:
“`
# apt install certbot python3-certbot-apache
“`
To obtain the SSL certificate using Certbot, enter the following command:
“`
# certbot –apache -d your-domain.com -d www.your-domain.com
“`
If the SSL certificate is successfully obtained, Certbot will display a message confirming the configuration was successful. It will provide information about the certificate’s location and expiration date.
“`
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your-domain.com.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your-domain.com/privkey.pem
Your cert will expire on 2023-09-02. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. 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
“`
Congratulations! You have successfully installed an SSL certificate on your website.
Step 8: Access the Elgg Web Interface
Open your web browser and enter the URL https://your-domain.com. You should see the following page:
Click on Next
Afterwards, the installer will verify the system requirements. Once all the checks have been successfully completed, proceed by clicking the Next button.
Following that, you will be required to enter the credentials for the database, data directory, and site URL. Once entered, proceed by clicking the Next button.
Then set up your site name and email and then click on the Next button
Enter your admin username, password, email, and click on the Next button. After the installation is finished, you will be directed to the following page:
After clicking on the “Go to site” button, you will be able to access your administration panel.