How to Install PrestaShop with LAMP Stack and Let’s Encrypt SSL on Ubuntu 21.10
PrestaShop is a commonly used PHP-based CMS (Content Management System). For small & large businesses PrestaShop can be a good fit. In this article, we are going to learn how to install PrestaShop on Ubuntu 21.10. So, let’s get started.
Pre-requisites :
-
A system with Ubuntu 21.10 installed and running.
-
root
access to the system. - LAMP Stack installed and running, for this, you can refer to one of our guides on installing the LAMP Stack (Apache, MariaDB, and PHP).
Once you're all set, we'll proceed with PrestaShop installation and configuration.
Create Database
Let us begin with creating a Database and a user. We will then grant the required privileges to the user so it can interact with the Database.
mysql -u root
CREATE DATABASE ccpresta;
CREATE USER 'ccpresta'@'localhost' IDENTIFIED BY 'UYGVc%$#Erfgt*&^%4';
GRANT ALL PRIVILEGES ON ccpresta.* TO 'ccpresta'@'localhost';
FLUSH PRIVILEGES;
quit
The above commands will give complete access to ccpresta Database to the user
ccpresta
.We would suggest using a strong and long password.
Configure PHP Settings for PrestaShop
Configure PHP Memory Limit, Post max size, and Upload max filesize. You can change the limit as per your need.
sed -i 's/memory_limit = .*/memory_limit = 256M/' /etc/php/7.4/apache2/php.ini
sed -i 's/post_max_size = .*/post_max_size = 64M/' /etc/php/7.4/apache2/php.ini
sed -i 's/upload_max_filesize = .*/upload_max_filesize = 64M/' /etc/php/7.4/apache2/php.ini
Enable Apache module if not already enabled then restart the Web Server.
a2enmod php7.4
systemctl restart apache2
Configuring Apache vHost
Now, create a new Apache configuration file dev.domainhere.info.conf
for PrestaShop with the following command. Replace dev.domainhere.info
with the domain name of your own for all the below code examples:
vi /etc/apache2/sites-available/dev.domainhere.info.conf
Now, press i
to go to INSERT
mode and type in the following lines of codes in the dev.domainhere.info.conf
file.
<VirtualHost *:80>
ServerName dev.domainhere.info
ServerAlias dev.domainhere.info
ServerAdmin admin@dev.domainhere.info
DocumentRoot /var/www/html/dev.domainhere.info
ErrorLog ${APACHE_LOG_DIR}/dev.domainhere.info_error.log
CustomLog ${APACHE_LOG_DIR}/dev.domainhere.info_access.log combined
<Directory /var/www/html/dev.domainhere.info>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Now make directory for PrestaShop files:
mkdir -p /var/www/html/dev.domainhere.info/
Enable SSL and Rewrite:
a2ensite dev.domainhere.info
a2enmod rewrite ssl
Restart Apache:
systemctl restart apache2
Install Let’s Encrypt SSL Certificate
Let's issue an SSL certificate for the domain for this we will need a snap package for Debian operating system.
We will update and install the snap package on the system:
apt update
apt install -y snapd
snap install core && sudo snap refresh core
Next, with the help of snap, we will install the certbot client which is used to create Let's Encrypt certificates:
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
Install SSL Certificate
Use the certbot command to issue a Let's Encrypt certificate. The command will auto-detect the domains available or configured in the vHost configuration:
certbot --apache
SSL certificates are valid for 90 days. The renewal process is now automated, you do not have to renew this manually.
Enable http and https ( 80/443 ):
To enable http and https connection through the firewall, follow the commands:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Download PrestaShop
Let's download PrestaShop:
cd /etc/www/html/dev.domainhere.info
Check PrestaShop Latest Versions Here.
wget https://www.prestashop.com/en/system/files/ps_releases/prestashop_1.7.8.2.zip
unzip prestashop_1.7.8.2.zip
unzip prestashop.zip
rm prestashop_1.7.8.2.zip
rm prestashop.zip
chown -R www-data:www-data /var/www/html/dev.domainhere.info/
Configuring PrestaShop
Now open the IP address from your browser, this will redirect you to configuring the final parts of PrestaShop installation.
https://dev.domainhere.info
Replace the
dev.domainhere.info
with the actual IP or domain configured on the server.
Now we should remove the installtion directory using below commad:
sudo rm -rf /var/www/html/dev.domainhere.info/{install,docs,README.md}
Input the Database details which was configured earlier. Follow the below steps:
Now you have successfully installed PrestaShop with LAMP Stack and Let’s Encrypt SSL on Ubuntu 21.10.