Hello,
In this week’s feature highlight, we look at How to Install Bagisto on Ubuntu 23.10
Bagisto is an eCommerce ecosystem designed for all to build and scale your business. It’s a free and open-source eCommerce framework that offers you a wide range of functionality and lets you have total control of your store. Built on top of the Laravel stack, it is coupled with easy product information management and fast time to market the product. Besides, the framework is very flexible and easy to use even for non-tech savvies. In this article, we are going to learn how to install Bagisto on Ubuntu 23.04. So, let’s get started.
Pre-requisites :
- A system with Ubuntu 23.10 installed and running.
root
access to the system.
Login to the Ubuntu 23.10 server and update the package repository information.
apt update
apt upgrade
Install Apache
You can install and configure Apache web server using the following command.
apt update
apt install apache2
systemctl start apache2
systemctl enable apache2
Install PHP 8.2
You can install PHP 8.2 using the following command.
apt-get install -y php8.2 php8.2-{common,gmp,curl,soap,bcmath,intl,mbstring,xmlrpc,mysql,gd,xml,cli,zip} libapache2-mod-php8.2
To Enable the Apache php8.2 module, run the following command and restart the Apache Web server
a2enmod php8.2
a2enmod rewrite
systemctl restart apache2
Install Node.js
To install nvm, you can use the following command in your terminal:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.39.3/install.sh | bash
Output:
root@ubuntu23:~# wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.39.3/install.sh | bash
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 360, done.
remote: Counting objects: 100% (360/360), done.
remote: Compressing objects: 100% (306/306), done.
remote: Total 360 (delta 41), reused 167 (delta 28), pack-reused 0
Receiving objects: 100% (360/360), 220.29 KiB | 2.16 MiB/s, done.
Resolving deltas: 100% (41/41), done.
* (HEAD detached at FETCH_HEAD)
master
=> Compressing and cleaning up git repository
=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
root@ubuntu23:~#
Update your shell ~/.profile by running following command
source ~/.profile
List out the all available Node.js versions. you can see all Node.js versions from the first version to the latest version.
nvm ls-remote
To install a specific Node.js version, use the following command. Here, we are installing v21.0.0. If you want to install another version, replacing v21.0.0 with the version number you want:
nvm install 21.0.0
And check the version of the Node.js once the installation is done
node -v
Output:
root@ubuntu23:~# node -v
v21.0.0
root@ubuntu23:~#
Install the Composer
apt install composer
composer -V
output:
root@ubuntu23:~# composer -V
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes
Composer version 2.5.8 2023-06-09 17:13:21
root@ubuntu23:~#
SSH User creation
Add the user using the following command that will run the bagisto application.
adduser bagisto
You will receive a prompt to input a new “password” after executing the provided command. Enter a password, your complete name, and any necessary details. Then, confirm by selecting “Y” for verification.
After that, we will add the recently created user “bagisto” to the “sudo” group using the “usermod” command:
usermod -aG sudo bagisto
Now Switch to bagisto
su - bagisto
Download Bagisto
You can downlaod Bagisto, using the following command.
composer create-project bagisto/bagisto
cd bagisto/public
Apache configuration
Now, we need to configure Bagisto with Appache web server by updating `000-default.conf’ configuration file.
sudo nano /etc/apache2/sites-enabled/000-default.conf
You will find the following lines as shown below, after executing the above command.
Now, change this to
DocumentRoot /home/bagisto/bagisto/public/
Configure the envvars
sudo nano /etc/apache2/envvars
Configure file apache2.conf
sudo nano /etc/apache2/apache2.conf
Change it to the following code :
<Directory/home/bagisto/bagisto/public/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Create Database
Now Switch to root user back,
su root
Intall MySQL server using the following command if it is not installed on your server
apt-get install mysql-server
Access mysql server using the following command,
mysql -u root
Create database,
CREATE DATABASE bagisto;
Create database user with secure password,
CREATE USER 'bagistouser'@'localhost' IDENTIFIED BY 'YOUR-PASSWORD-HERE';
Replace YOUR-PASSWORD-HERE with a Secure Strong Password
Assign a required permission to created database user
GRANT ALL ON bagisto.* TO 'bagistouser'@'localhost' WITH GRANT OPTION
FLUSH PRIVILEGES;
EXIT
Make some changes to php.ini file.
nano /etc/php/8.2/apache2/php.ini
Edit the file using below config
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago
Bagisto configuration
Go to the root directory for bagisto
cd /home/bagisto/bagisto
Now Edit the .env file with the mysql database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bagisto
DB_USERNAME=bagistouser
DB_PASSWORD=testuser@123
DB_PREFIX=
Replace the database password with your set database password.
Access the MySQL and run the following command
mysql -u root -p
SET GLOBAL log_bin_trust_function_creators = 1;
Install Bagisto
php artisan bagisto:install
Once it is succefully installed, you will get the following message in last with username and password details.
Output:
-----------------------------
Congratulations!
The installation has been finished and you can now use Bagisto.
Go to http://localhost/admin and authenticate with:
Email: admin@example.com
Password: admin123
Cheers!
Setting up File Permissions
chmod -R 755 /home/bagisto/bagisto
chown -R bagisto:bagisto /home/bagisto/bagisto
systemctl restart apache2
Install SSL Certificate
Let us install the SSL Certificate from Let’s Encrypt. For this, you will need to install certbot
via snapd
.
To installing snapd,
apt install snapd
Check the snapd for updates,
snap install core; sudo snap refresh core
Install Certbot
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
Since we’re using Apache web server, run the below command to get the certificate,
certbot --apache
The Certbot will take care of your renewal automatically before they expire, you would have to run the certbot again only if you make changes to your configuration.
You can perform a test run with below command,
certbot renew --dry-run
Next, reload the page on the browser and it should then redirect and load the HTTPS site https://bagisto.domainhere.info
.
Accessing Bagisto
You can manage the Bagisto through the admin panel from the following URL
https://bagisto.domainhere.info/
Replace the
bagisto.domainhere.info
with the actual IP or domain configured on the server.
Enter the username and password which you have got at installation time.
You can access and view Bagisto using the following URL,
https://bagisto.domainhere.info/
Replace the
bagisto.domainhere.info
with the actual IP or domain configured on the server.
Now you have successfully installed Bagisto on Ubuntu 23.10.