How to Install EPESI CRM on Ubuntu 18.04 LTS

EPESI is a free and open source web application and one of the most sophisticated multi-user solutions for managing business information like CRM. It is a fully functional CRM application that can be used to store, organize, access and share business records. It is built on PHP/Ajax framework, so you can change It and develop it as you like.

Features

  • Simple, lightweight and fast.
  • Intuitive web-based user interface.
  • Unlimited notes and file attachments.
  • Integrated Roundcube email client.
  • Phone and Project tracker.
  • Shared contacts, calendar, tasks, phone calls.

In this tutorial, we will learn how to install EPESI on Ubuntu 18.04 server.

Requirements

  • A server running Ubuntu 18.04.
  • A non-root user with sudo privileges.

Getting Started

Before starting, you will need to update your system with the latest version. You can do this by running the following command:

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

Once your system is updated, restart the system to apply the changes.

Install LAMP Server

First, you will need to install Apache web server, MariaDB server, PHP and other required PHP modules to your system. You can install all of them by running the following command:

sudo apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-gd php7.2-xml php7.2-intl php7.2-mysql php7.2-cli php7.2-ldap php7.2-zip php7.2-curl php7.2-imap unzip -y

Next, you will need to make some changes in PHP default configuration file:

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

Make the following changes:

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 30
max_input_vars = 1500
date.timezone = Asia/Kolkata

Save and close the file. Then, start Apache and MariaDB service and enable them to start on boot time with the following command:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mariadb
sudo systemctl enable mariadb

Configure MariaDB

By default, MariaDB is not secured. So, you will need to secure it first. You can secure it by running the following command:

sudo mysql_secure_installation

This command will set root password, remove anonymous user, disallow remote root login, and remove test database as shown below:

    Enter current password for root (enter for none):
    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, log in to MariaDB shell:

sudo mysql -u root

Enter your root password when prompt. Then, create a database and user for EPESI with the following command:

MariaDB [(none)]> CREATE DATABASE epesidb;
MariaDB [(none)]> CREATE USER 'epesi'@'localhost' IDENTIFIED BY 'mypassword';

Replace the string 'mypassword' with a secure password. Next, grant privileges to the EPESI database with the following command:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON epesidb.* TO 'epesi'@'localhost' IDENTIFIED BY 'mypassword';

Replace the string 'mypassword' with a secure password.Next, flush the privileges with the following command:

MariaDB [(none)]> FLUSH PRIVILEGES;

Next, exit from the MariaDB console with the following command:

MariaDB [(none)]> exit

Install EPESI CMS

First, you will need to download the latest version of EPESI from Git repository.

Go to the /tmp directory:

cd /tmp

You can download it with the following command:

git clone https://github.com/Telaxus/EPESI.git

Next, copy the EPESI directory to the Apache root directory with the following command:

sudo cp -r EPESI /var/www/html/epesi

Next, you will need to install Composer to your system. You can install it by running the following command:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Next, change the directory to epesi and install required dependencies using Composer:

cd /var/www/html/epesi
sudo composer install

Output:

Deprecation warning: require.phpFastCache/phpFastCache is invalid, it should not contain uppercase characters. Please use phpfastcache/phpfastcache instead. Make sure you fix this as Composer 2.0 will error.
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 84 installs, 0 updates, 0 removals
  - Installing enyo/dropzone (v5.5.0): Downloading (100%)         
  - Installing ezyang/htmlpurifier (v4.10.0): Downloading (100%)         
  - Installing fzaninotto/faker (v1.8.0): Downloading (100%)         
  - Installing ifsnop/mysqldump-php (dev-master 3c5ccfe): Cloning 3c5ccfea31 from cache
  - Installing jakub-onderka/php-console-color (v0.2): Downloading (100%)         
  - Installing memio/model (2.0.4): Downloading (100%)         
  - Installing memio/validator (v2.0.3): Downloading (100%)         
  - Installing symfony/polyfill-ctype (v1.10.0): Downloading (100%)         
  - Installing twig/twig (v1.36.0): Downloading (100%)         
  - Installing memio/pretty-printer (2.0.3): Downloading (100%)         
  - Installing memio/twig-template-engine (v2.0.3): Downloading (100%)         
  - Installing memio/linter (v2.0.3): Downloading (100%)         
  - Installing memio/memio (v2.0.0): Downloading (100%)         
  - Installing moneyphp/money (v3.2.0): Downloading (100%)         
  - Installing phpdocumentor/reflection-docblock (2.0.5): Downloading (100%)         
  - Installing psr/cache (1.0.1): Downloading (100%)         
  - Installing predis/predis (v1.1.1): Downloading (100%)         
  - Installing phpfastcache/phpssdb (1.0.1): Downloading (100%)         
  - Installing phpfastcache/phpfastcache (5.0.21): Downloading (100%)         
  - Installing psr/container (1.0.0): Downloading (100%)         
  - Installing pimple/pimple (v3.2.3): Downloading (100%)         
  - Installing symfony/polyfill-php72 (v1.10.0): Downloading (100%)         
  - Installing symfony/polyfill-mbstring (v1.10.0): Downloading (100%)         
  - Installing symfony/var-dumper (v4.0.15): Downloading (100%)         
  - Installing psr/log (1.1.0): Downloading (100%)         
  - Installing symfony/debug (v3.0.9): Downloading (100%)         
  - Installing symfony/console (v2.8.49): Downloading (100%)         
  - Installing nikic/php-parser (v3.1.5): Downloading (100%)         
  - Installing jakub-onderka/php-console-highlighter (v0.4): Downloading (100%)         
  - Installing dnoegel/php-xdg-base-dir (0.1): Downloading (100%)         
  - Installing psy/psysh (v0.9.9): Downloading (100%)         
  - Installing ircmaxell/password-compat (v1.0.4): Downloading (100%)         
  - Installing symfony/polyfill-php55 (v1.10.0): Downloading (100%)         
  - Installing symfony/polyfill-php54 (v1.10.0): Downloading (100%)         
  - Installing symfony/http-foundation (v2.8.49): Downloading (100%)         
  - Installing tecnickcom/tcpdf (6.2.26): Downloading (100%)         
  - Installing symfony/finder (v4.2.1): Downloading (100%)         
  - Installing sebastian/version (2.0.1): Downloading (100%)         
  - Installing sebastian/resource-operations (2.0.1): Downloading (100%)         
  - Installing sebastian/recursion-context (3.0.0): Downloading (100%)         
  - Installing sebastian/object-reflector (1.1.1): Downloading (100%)         
  - Installing sebastian/object-enumerator (3.0.3): Downloading (100%)         
  - Installing sebastian/global-state (2.0.0): Downloading (100%)         
  - Installing sebastian/exporter (3.1.0): Downloading (100%)         
  - Installing sebastian/environment (4.0.1): Downloading (100%)         
  - Installing sebastian/diff (3.0.1): Downloading (100%)         
  - Installing sebastian/comparator (3.0.2): Downloading (100%)         
  - Installing phpunit/php-timer (2.0.0): Downloading (100%)         
  - Installing phpunit/php-text-template (1.2.1): Downloading (100%)         
  - Installing phpunit/php-file-iterator (2.0.2): Downloading (100%)         
  - Installing theseer/tokenizer (1.1.0): Downloading (100%)         
  - Installing sebastian/code-unit-reverse-lookup (1.0.1): Downloading (100%)         
  - Installing phpunit/php-token-stream (3.0.1): Downloading (100%)         
  - Installing phpunit/php-code-coverage (6.1.4): Downloading (100%)         
  - Installing doctrine/instantiator (1.1.0): Downloading (100%)         
  - Installing phpspec/prophecy (1.8.0): Downloading (100%)         
  - Installing phar-io/version (2.0.1): Downloading (100%)         
  - Installing phar-io/manifest (1.0.3): Downloading (100%)         
  - Installing myclabs/deep-copy (1.8.1): Downloading (100%)         
  - Installing phpunit/phpunit (7.5.1): Downloading (100%)         
  - Installing jakubledl/dissect (v1.0.1): Downloading (100%)         
  - Installing goaop/parser-reflection (1.4.1): Downloading (100%)         
  - Installing doctrine/cache (v1.8.0): Downloading (100%)         
  - Installing doctrine/lexer (v1.0.1): Downloading (100%)         
  - Installing doctrine/annotations (v1.6.0): Downloading (100%)         
  - Installing goaop/framework (2.2.0): Downloading (100%)         
  - Installing codeception/aspect-mock (3.0.2): Downloading (100%)         
  - Installing symfony/yaml (v3.3.18): Downloading (100%)         
  - Installing symfony/contracts (v1.0.2): Downloading (100%)         
  - Installing symfony/event-dispatcher (v4.2.1): Downloading (100%)         
  - Installing symfony/dom-crawler (v4.2.1): Downloading (100%)         
  - Installing symfony/css-selector (v4.2.1): Downloading (100%)         
  - Installing symfony/browser-kit (v4.2.1): Downloading (100%)         
  - Installing ralouphie/getallheaders (2.0.5): Downloading (100%)         
  - Installing psr/http-message (1.0.1): Downloading (100%)         
  - Installing guzzlehttp/psr7 (1.5.2): Downloading (100%)         
  - Installing guzzlehttp/promises (v1.3.1): Downloading (100%)         
  - Installing guzzlehttp/guzzle (6.3.3): Downloading (100%)         
  - Installing symfony/process (v4.2.1): Downloading (100%)         
  - Installing facebook/webdriver (1.6.0): Downloading (100%)         
  - Installing codeception/stub (2.0.4): Downloading (100%)         
  - Installing codeception/phpunit-wrapper (7.6.0): Downloading (100%)         
  - Installing behat/gherkin (v4.5.1): Downloading (100%)         
  - Installing codeception/codeception (2.5.2): Downloading (100%)         
moneyphp/money suggests installing ext-bcmath (Calculate without integer limits)
moneyphp/money suggests installing ext-gmp (Calculate without integer limits)
moneyphp/money suggests installing florianv/exchanger (Exchange rates library for PHP)
moneyphp/money suggests installing florianv/swap (Exchange rates library for PHP)
moneyphp/money suggests installing psr/cache-implementation (Used for Currency caching)
phpdocumentor/reflection-docblock suggests installing dflydev/markdown (~1.0)
phpdocumentor/reflection-docblock suggests installing erusev/parsedown (~1.0)
predis/predis suggests installing ext-phpiredis (Allows faster serialization and deserialization of the Redis protocol)
phpfastcache/phpfastcache suggests installing ext-apc (*)
phpfastcache/phpfastcache suggests installing ext-memcache (*)
phpfastcache/phpfastcache suggests installing ext-memcached (*)
phpfastcache/phpfastcache suggests installing ext-predis (*)
phpfastcache/phpfastcache suggests installing ext-redis (*)
phpfastcache/phpfastcache suggests installing ext-sqlite (*)
symfony/console suggests installing psr/log-implementation (For using the console logger)
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/php-code-coverage suggests installing ext-xdebug (^2.6.0)
phpunit/phpunit suggests installing ext-xdebug (*)
phpunit/phpunit suggests installing phpunit/php-invoker (^2.0)
doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver)
symfony/contracts suggests installing symfony/cache-contracts-implementation
symfony/contracts suggests installing symfony/service-contracts-implementation
symfony/contracts suggests installing symfony/translation-contracts-implementation
symfony/event-dispatcher suggests installing symfony/dependency-injection
symfony/event-dispatcher suggests installing symfony/http-kernel
facebook/webdriver suggests installing ext-SimpleXML (For Firefox profile creation)
codeception/codeception suggests installing aws/aws-sdk-php (For using AWS Auth in REST module and Queue module)
codeception/codeception suggests installing codeception/phpbuiltinserver (Start and stop PHP built-in web server for your tests)
codeception/codeception suggests installing codeception/specify (BDD-style code blocks)
codeception/codeception suggests installing codeception/verify (BDD-style assertions)
codeception/codeception suggests installing flow/jsonpath (For using JSONPath in REST module)
codeception/codeception suggests installing league/factory-muffin (For DataFactory module)
codeception/codeception suggests installing league/factory-muffin-faker (For Faker support in DataFactory module)
codeception/codeception suggests installing phpseclib/phpseclib (for SFTP option in FTP Module)
codeception/codeception suggests installing stecman/symfony-console-completion (For BASH autocompletion)
codeception/codeception suggests installing symfony/phpunit-bridge (For phpunit-bridge support)
Generating autoload files
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 1 install, 0 updates, 0 removals
  - Installing tedivm/fetch (v0.7.1): Downloading (100%)         
Generating autoload files
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 1 install, 0 updates, 0 removals
  - Installing phpoffice/phpexcel (1.8.1): Downloading (100%)         
Generating autoload files
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating autoload files
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Generated autoload files containing 14 classes

Once all the required dependencies have been installed, give proper permissions to the epesi directory with the following command:

sudo chown -R www-data:www-data /var/www/html/epesi
sudo chmod -R 775 /var/www/html/epesi

Configure Apache for EPESI

Next, you will need to create an apache virtual host file for EPESI. You can do this by creating epesi.conf file:

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

Add the following lines:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/epesi
     ServerName example.com
ServerAlias www.example.com <Directory /var/www/html/epesi/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/epesi_error.log CustomLog ${APACHE_LOG_DIR}/epesi_access.log combined </VirtualHost>

Save and close the file. Then, enable EPESI virtual host file with the following command:

sudo a2ensite epesi

Next, enable Apache rewrite module and restart Apache web server to apply all the changes:

sudo a2enmod rewrite
sudo systemctl restart apache2

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

Access EPESI CRM Web Interface

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

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

Choose your language

Choose your language, you should see the following page:

Accept license

Now, accept the License agreement and click on the Next button. You should see the following page:

Confirm error message

Now, ignore the error and click on the Ok button. You should see the following page:

Database configuration

Now, provide all the required details like, database name, database username and password. Then, click on the Next button. You should see the following page:

System check

Now, click on the Continue with installation button. You should see the following page:

Add admin user account

Now, provide your admin username and password. Then, click on the Next button. You should see the following page:

Mail settings

Now, select your Mail settings and click on the Next button. You should see the following page:

Click next

Now, click on the Next button. You should see the following page:

Date settings

Now, provide your date and time format and country. Then, click on the OK button. you should see the following page:

Company information

Now, provide your Company name, your name and address, Country and City. Then, click on the OK button. Once the installation has been completed successfully. You should see the following page:

EPESI Dashboard

Congratulations! you have successfully installed EPESI CRM on your server. You can now host your own EPESI CRM in your production environment easily.

Share this page:

0 Comment(s)