webERP is a perfect web based accounting and business management system that need at most a web-browser and pdf reader to operate. Remember, webERP is an open-source software and it is accessible for free to download and use with all the PHP code written in an approachable way which you can add your own features as required. webERP also has an extensive variety of characteristics appropriate for many businesses especially dispensed businesses in manufacturing, wholesale and distribution.

In this guide, we show you how to install webERP accounting and business management system on Ubuntu 20.04.

webERP Features

The following are webERB characteristics;

  • It runs on any web-server that can serve PHP
  • It is an entirely web-based application
  • It produces reports to PDF (Portable Document Format) for accurate positioning of text
  • It support a variety of languages, each user can see the interface in their preferred language
  • It is multi-theme therefore each user can see the interface in their chosen graphical theme
  • No installation required on client PCs therefore all processing is on the web-server
  • Numbers are displayed suitably for the language selected and input is allowed in this format
  • It limit users to specific inventory locations
  • webERP pages can be encrypted using SSL encryption
  • Pricing can be set to be operative from specific dates and to finish on a final date

WebERP Accounting and Business Management System Installation Process

Follow the following steps to install webERP accounting and business management system successfully.

Step 1: Install LAMP Stack on Ubuntu 20.04

First of all, we need to install LAMP acronym for Linux, Apache, MySQL, PHP|Perl|Python.

Run the System Update

Update the System’s package repository to the latest;

$sudo apt update

Install Apache Web Server

Apache web server controls the servers for hosting web application. We can install it using the following command;

sudo apt install apache2

Once Apache web server is installed, you can check if it’s running using the following command;

$ systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-07-05 04:00:46 UTC; 16s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 3816 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 3836 (apache2)
      Tasks: 55 (limit: 2344)
     Memory: 5.2M
     CGroup: /system.slice/apache2.service
             ├─3836 /usr/sbin/apache2 -k start
             ├─3838 /usr/sbin/apache2 -k start
             └─3839 /usr/sbin/apache2 -k start

Jul 05 04:00:46 frankubuntu20 systemd[1]: Starting The Apache HTTP Server...
Jul 05 04:00:46 frankubuntu20 systemd[1]: Started The Apache HTTP Server..

According to the above output, Apache web server is active and running. In case it’s not running you can start using the following command.

sudo systemctl start apache2

Install MySQL Database server

MySQL is a database used with PHP to store and manage data. Use the following command to install MySQL;

sudo apt install mysql-server mysql-client

After installing MySQL database, you can if it’s running using the following command;

$ systemctl status mysql.service
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-07-05 04:02:37 UTC; 40s ago
   Main PID: 4635 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 2344)
     Memory: 330.4M
     CGroup: /system.slice/mysql.service
             └─4635 /usr/sbin/mysqld

Jul 05 04:02:36 frankubuntu20 systemd[1]: Starting MySQL Community Server...
Jul 05 04:02:37 frankubuntu20 systemd[1]: Started MySQL Community Server.

MySQL is active and running, if it’s stopped start using the following command;

sudo systemctl start mysql.service

MySQL Database Server Configuration

Here we will set MySQL root password and secure MySQL installation by running the following command. Answer all questions accordingly.

$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Please set the password for root here.

New password: 

Re-enter new password: 

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done! 

Login to MySQL database shell using the following command;

sudo mysql -u root -p

Now we are logged in, we need to create a database and user for webERP with the following command. Replace ‘Password‘ with your own password you set above.

create database weberp;
create user weberp@localhost identified by 'StrongPassw0rd';

Now let’s grant all the privileges to the webERP database with the following command;

grant all privileges on weberp.* to 'weberp'@'localhost';

We can now flush the privileges using the following command;

flush privileges;

Exit MySQL database;

mysql> exit;

Install PHP and required Extensions

It’s time to install PHP, let’s install it using the following command;

sudo apt install php

After installing PHP, we also install PHP extensions as follows;

sudo apt install php-curl php-mbstring php-zip php-json php-xml php-gd php-mysql libapache2-mod-php

After installing LAMP, we can install webERP.

Step 2: Install webERP on Ubuntu 20.04

Using wget command, let’s download webERP in it’s download page.

wget https://sourceforge.net/projects/web-erp/files/webERP_4.15.1.zip

Execute the following command to unpack webERP_4.15.1.zip file.

unzip webERP_4.15.1.zip

After unpacking the file above, move it to Apache web root directory and rename it to weberp.

sudo mv webERP-4.15.1/ /var/www/html/weberp

Set the ownership and permission of weberp to Apache user, www-data and 755 respectively.

sudo chown -R www-data:www-data /var/www/html/weberp
sudo chmod -R 755 /var/www/html/weberp

Step 3: Configure Apache Web Server

Create an Apache virtual host configuration file  to host the weberp.

sudo vim /etc/apache2/sites-available/weberp.conf

Add the following lines to the created file above;

<VirtualHost *:80>
  ServerAdmin [email protected]
  DocumentRoot "/var/www/html/weberp/"
  ServerName weberp.hirebestengineers.com
  ServerAlias www.weberp.hirebestengineers.com
  <Directory "/var/www/html/weberp/">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>
  ErrorLog /var/log/apache2/weberp-error_log
  CustomLog /var/log/apache2/weberp-access_log common
</VirtualHost>

Replace:

  • [email protected] with your web master admin email address
  • weberp.hirebestengineers.com with ERP installation domain name
  • www.weberp.hirebestengineers.com for Domain alias (This can be handled at DNS level)

Then save and exit the file.

Once the virtual host is configured, we can enable with the following commands.

First disable the default virtual host;

sudo a2dissite 000-default.conf

Then enable weberp.cong virtual host;

sudo a2ensite weberp.conf

Lastly enable rewrite module;

sudo a2enmod rewrite

restart the Apache service to apply the changes using the following command.

sudo systemctl restart apache2

Let’s verify if the Apache is running once more;

$ systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-07-05 04:24:22 UTC; 17s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 15539 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 15560 (apache2)
      Tasks: 6 (limit: 2344)
     Memory: 13.0M
     CGroup: /system.slice/apache2.service
             ├─15560 /usr/sbin/apache2 -k start
             ├─15561 /usr/sbin/apache2 -k start
             ├─15562 /usr/sbin/apache2 -k start
             ├─15563 /usr/sbin/apache2 -k start
             ├─15564 /usr/sbin/apache2 -k start
             └─15565 /usr/sbin/apache2 -k start

Jul 05 04:24:22 frankubuntu20 systemd[1]: Starting The Apache HTTP Server...
Jul 05 04:24:22 frankubuntu20 systemd[1]: Started The Apache HTTP Server.

Step 4: Securing webERP with Let’s Encrypt SSL

To secure webERP, we will use Certbot tool to install Let’s Encrypt SSL and generate a free SSL certificate. So we need to enable universe repository to install Certbot using the following commands.

sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update

Install Certbot package using the command below:

sudo apt install certbot python3-certbot-apache

After installing Certbot, let’s now generate Free Let’s Encrypt SSL certificate for Apache.

sudo certbot --apache

You will be prompted to enter your email address, do so and answer series of questions according.

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

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: weberp.hirebestengineers.com
2: www.weberp.hirebestengineers.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Obtaining a new certificate
Created an SSL vhost at /etc/apache2/sites-available/weberp-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/weberp-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/weberp-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
Redirecting vhost in /etc/apache2/sites-enabled/weberp.conf to ssl vhost in /etc/apache2/sites-available/weberp-le-ssl.conf

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

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

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

As highlighted above, we have successfully Secure webERP with Let’s Encrypt SSL.

Step 5: Accessing webERP Web Interface

Let’s now access webERP in our browser using https://weberp.hirebestengineers.com/ link to proceed our installation. We will see the webERP Installation Wizard as shown below. Select your preferred language and click ‘NEXT STEP‘ to continue.

Provide the database information as set above in MySQL and click ‘NEXT STEP‘ to continue.

Fill in the company info and set your time zone.

Provide the Administrator info, here you can change the admin password and click ‘INSTALL‘ to install the system.

After successful installation, you will be prompted with webERP login page. Provide correct login credentials and click ‘Login‘ to login.

After Successful Login you will see webERP dashboard as follows.

Conclusion

In this guide, we have showed you how to install webERP accounting and business management system on Ubuntu 20.04, you have also learned how to secure webERP with Let’s Encrypt SSL. Feel free to ask any question in the comment below and we will reach as soon as possible. Enjoy using webERP accounting and business management system.

Cool guides;

Setup CTparental Parental Control Software on Ubuntu

Install Plesk Control Panel on Ubuntu | Debian

Install Ampache Music Streaming Server on Ubuntu | Debian

Fix “mkfs.xfs: No such file or directory” on CentOS/Ubuntu/Debian

LEAVE A REPLY

Please enter your comment!
Please enter your name here