In this tutorial, we will learn how to install Qloapps on the AWS EC2 server.
Qloapps
Qloapps has been designed according to the latest hospitality technology in the world. It delivers a unique guest experience with an intuitive and user-friendly website.
Prerequisites –
1- Ubuntu-20.04 instance
2- SSH access of the root users or any user with full privileges is mandatory.
Step 1 – Log in to your EC2 instance
Take the SSH access of the EC2 instance with the below command
1 |
ssh -i pem.key ubuntu@IP_address |
Step 2 – Install the Apache web server
Log in to the root user to update the packages and then install the APACHE web server:-
1 2 3 |
sudo -i apt update -y apt install apache2 -y |
Step 3 – Install the PHP 8.1 version
To install the PHP 8.1 version, follow the below commands:-
However, Make sure all the packages are updated or upgraded on the server:-
1 2 |
apt update -y apt -y upgrade |
Add Ondřej Surý PPA repository
1 |
apt install lsb-release ca-certificates apt-transport-https software-properties-common -y |
1 |
add-apt-repository ppa:ondrej/php |
Note – Further, this command will ask for input. Just press <Enter> to continue.
Update the repository with the below command:-
1 |
apt update -y |
Now install PHP 8.1 on Ubuntu. Run the below command:-
1 2 |
apt install php8.1 |
Install all PHP extensions and dependencies with the below command:-
1 2 |
apt install php8.1-{bcmath,xml,fpm,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi} |
Further, Check the PHP version and PHP modules with the below commands:-
1 |
php -v |
1 2 |
php -m |
Now, make some changes in the PHP variable values with the below commands:
1 |
sed -i "s/memory_limit = .*/memory_limit = 1024/" /etc/php/8.1/apache2/php.ini |
1 |
sed -i "s/post_max_size = .*/post_max_size = 1024M/" /etc/php/8.1/apache2/php.ini |
1 |
sed -i "s/max_execution_time = .*/max_execution_time = 1024M/" /etc/php/8.1/apache2/php.ini |
1 2 |
sed -i "s/upload_max_filesize = .*/upload_max_filesize = 500M/" /etc/php/8.1/apache2/php.ini |
After the PHP changes, make sure to restart the Apache service.
1 |
systemctl restart apache2 |
Step 4 – Installation of MariaDB Database server
Note- We have two options for managing the Database service with our website.
case1:- we can manage the database service from the localhost with the following commands:-
Run the below command for the Maraidb server installation:-
1 |
apt install mariadb-server mariadb-client -y |
Then, Check the status of the MariaDB server with the below commands:-
1 |
systemctl status mariadb |
Start and stop the MariaDB server with the below commands:-
1 |
systemctl stop mariadb |
1 |
systemctl start mariadb |
Once MariaDB is installed, run the below command to configure the database configurations:-
1 |
mysql_secure_installation |
Note – Choose the default option and set the MariaDB root password.
When prompted, answer the questions below by following the guide.
- Enter current password for root (enter for none): Press Enter
- Set root password? [Y/n]: Y
- New password: Enter the new password
- Re-enter new password: Enter the new password
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove the test database and access it. [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
Restart the MariaDB service after the configurations:-
1 |
systemctl restart mariadb |
case2:- Or, We can also use the AWS RDS service for managing the database service.
Amazon RDS makes it easy to use replication to enhance availability and reliability for production workloads.
Amazon’s Relational Database Service is a cloud-native database platform that is truly awesome and a real opportunity to save time, eliminate the hassle, and improve performance.
Firstly you have to launch an RDS and then configure it with your Ec2 instance.
The below command is used for connectivity with the RDS database:-
1 2 |
mysql -u username -p -h [endpoint] CREATE DATABASE shopware; |
Step 5 – Create the database and DB user:-
First, go to the MySQL Shell and run the below commands:-
1 |
mysql |
1 2 |
create database qloapp; |
Further, create the DB user for Qloapps
1 2 |
CREATE USER 'admin'@localhost IDENTIFIED BY 'admin@123'; |
Then, grant the privileges to the user for managing the database.
GRANT ALL PRIVILEGES ON qloapp.* TO ‘admin’@localhost IDENTIFIED BY ‘admin@123’;
Now, save all the changes and exit from the MySQL shell with the below command:-
1 |
FLUSH PRIVILEGES; |
1 |
EXIT; |
Step 6 – Download the latest release v1.5.2 Qloapp:-
For installation of Qloapps, we need to install git with the below commands:-
1 |
apt install git -y |
Now, Go to the default document root folder to download the project of Qloapp.
Follow the below steps:- Before Downloading, make sure the unzip command is installed on the Server.
1 |
cd /var/www/html |
1 |
git clone -b v1.5.2 https://github.com/webkul/hotelcommerce |
Provide the default permission for normal functions:-
1 |
chown -R www-data:www-data /var/www/html/hotelcommerce |
1 |
chmod -R 755 /var/www/html/hotelcommerce |
Step 7 – Configure the Virtual host of apache 2:-
Now, we have to set the apache2 virtual host for managing the Qloapps content with the below commands:-
1 2 3 4 5 6 7 8 9 10 11 12 13 |
vi /etc/apache2/sites-available/qloapp.conf <VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www/html/hotelcommerce ServerName your_domain_name <Directory /var/www/html/hotelcommerce/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Now, exit from the vi editor and run the below command:-
1 |
a2ensite qloapp.conf |
1 |
a2enmod rewrite |
Restart the Apache2 webserver service with the following command:-
1 |
systemctl restart apache2 |
Now, your Qloapps is configured successfully, open the browser and check with the domain URL.
http://your_domain_name
Need Support?
Thank You for reading this Blog!
For further more interesting blogs, keep in touch with us. Also if you need any kind of support, simply raise a ticket at https://webkul.uvdesk.com/en/.
For further help or queries, please contact us or raise a ticket.