Chevereto is a free, open source and easy to use image hosting script written in PHP language that allows you to create your own image hosting website. Chevereto is available in Free and Paid version, Paid version comes with all the features like, storages, banners, likes, followers, social login, etc, while the Free version is always 6 months behind the paid version. Chevereto comes with all major features like, user accounts, albums, admin dashboard, HTML 5 drag and drop file uploader, desktop uploader, multi-servers, themes, multi-languages, CDN support, Amazon S3.

 

In this tutorial, we will learn how to install and configure Chevereto using Apache, PHP and MariaDB on Ubuntu 16.04 server.

Requirements

  • A server running Ubuntu 16.04 server.

  • A non-root user with sudo privileges setup on your server.

Getting Started

Before starting, it is recommended to install all the required packages and update the repository to the latest version.

First, update the system using the following command:

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

Once the repository is updated, restart the system to apply all the updates.

Next, install all the required packages by running the following command:

sudo apt-get install wget nano curl git -y

Next, you can proceed to install LAMP server

Install LAMP Server

Chevereto runs on Apache web server, written in PHP language and uses MariaDB to store their data. So you will need to install LAMP (Apache, PHP, MariaDB) to your system. You can install LAMP server with required PHP libraries using the following command:

sudo apt-get install apache2 libapache2-mod-php7.0 mariadb-server mariadb-client php7.0 php7.0-mysql php7.0-dom php7.0-gd php7.0-mbstring php7.0-common bc php7.0-bcmath -y

Once all the packages are installed, restart Apache and MariaDB service and enable them to start on boot with the following command:

systemctl start apache2
systemctl enable apache2
systemctl start mysql
systemctl enable mysql

Next, you will need to change the date and Timezone setting in `php.ini` file. You can do this using the following command:

sudo nano /etc/php/7.0/cli/php.ini

Change the following line as per your Timezone:

date.timezone = Asia/Kolkata

Save and close the file, when you are finished.

Configure MariaDB for Chevereto

By default, MariaDB is not secured. You can secure it with the following command:

mysql_secure_installation

This command will set the root password, remove anonymous user, disallow root login remotely and remove test database.

Answer all the questions as follows:

Set root password? [Y/n] n
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

Once the MariaDB is secured, you will need to create a database and user for Chevereto.

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

mysql -u root -p

Enter your root password, then create a database for Chevereto with the following command:

MariaDB [(none)]>CREATE DATABASE cheveretodb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Next, create a user for Chevereto and grant privileges to the Chevereto database with the following command:

MariaDB [(none)]>GRANT ALL PRIVILEGES ON cheveretodb.* TO 'chevereto'@'localhost' IDENTIFIED BY 'password';

Next, flush the privileges with the following command:

MariaDB [(none)]>FLUSH PRIVILEGES;

Finally, exit from the MySQL shell with the following command:

MariaDB [(none)]>\q

Download and Install Chevereto

Next, you will need to download the latest version of the Chevereto from Git repository. You can download it using the wget command:

wget https://github.com/Chevereto/Chevereto-Free/archive/1.0.9.tar.gz

Once the Chevereto is downloaded, extract it using the following command:

tar -xvzf 1.0.9.tar.gz

Next, move the extracted directory to the Apache root directory:

mv Chevereto-Free-1.0.9 /var/www/html/chevereto

Next, change the directory to the chevereto and create a settings.php file:

cd /var/www/html/chevereto
sudo nano app/settings.php

Add the following lines:

<?php
$config['db_name'] = 'cheveretodb';
$config['db_user'] = 'chevereto';
$config['db_pass'] = 'password';
$config['admin_password'] = 'password';

Save and close the file, when you are finished.

Next, give proper permissions to the Chevereto directory:

sudo chown -R www-data:www-data /var/www/html/chevereto
sudo chmod -R 777 /var/www/html/chevereto

Configure Apache for Chevereto

Next, you will need to create an Apache virtual host directive for Chevereto. You can do this by creating chevereto.conf file inside /etc/apache2/sites-available directory:

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

Add the following lines:

<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/chevereto/
ServerName example.com
<Directory /var/www/html/chevereto/>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/chevereto-error_log
CustomLog /var/log/apache2/chevereto-access_log common
</VirtualHost>

Save and close the file, then enable virtual host file with the following command:

sudo a2ensite chevereto

Finally, restart Apache web server to apply the changes:

sudo systemctl restart apache2

Configure Firewall

By default, Chevereto runs on port 80. So you will need to allow port 80 using the UFW firewall.

First, enable the UFW firewall with the following command:

sudo ufw enable

Next, allow port 80 through UFW firewall with the following command:

sudo ufw allow 80

Next, reload the firewall rule using the following command:

sudo ufw reload

UFW firewall is now configured, you can proceed to access the Chevereto web installation wizard.

Access Chevereto Web Interface

Chevereto is now installed and configured, it's time to access Chevereto web interface.

Open your web browser and type the URL http://example.com. You will be redirected to the Chevereto database configuration page:

Provide your database information as below:

Database host : localhost
Database name : cheveretodb
Database user : chevereto
Database user password : password

Next, click on the `Continue` button. You will be redirected to the admin user creation page:

Provide your admin user details as below:

Admin username : admin
Admin email : admin@example.com
Admin password : password
From email address : no-reply@example.com
Incoming email address : admin@example.com

Next, click on the Install Chevereto button. You will be redirected to the Installation Completed page. Click on the admin dashboard button. You will be redirected to the Chevereto login page.

Now, enter your admin username and password and click on the sign in button. You will be redirected to the Chevereto dashboad.

Conclusion

Congratulations! you have successfully installed and configured Chevereto on Ubuntu 16.04 server. You can now easily host your own photo gallery using Chevereto. Feel free to ask me if you have any questions.