Configure OpenCart with Facebook Business Extension on FreeBSD 12
Introduction
This tutorial shows how to perform the end-to-end installation of Opencart 3.0.3 with the FaceBook BE plugin. Opencart is one of the most popular e-commerce solutions and has thousands of plugins and extensions available. This tutorial uses the FAMP stack, consisting of FreeBSD 12.2, Apache 2.4, MySQL 5.7, and PHP 7.4. All components of the FAMP stack are available in the FreeBSD-12.2-RELEASE packages. This guide assumes you have a DNS record for yourhostname.example.com
that resolves your FreeBSD server's IP address.
1. Install the FAMP Stack and OpenCart
You must have root privileges to install the packages, and we recommend using sudo for security.
Install Apache.
$ sudo pkg install -y apache24
Enable Apache in /etc/rc.conf
.
$ sudo service apache24 enable
Start the Apache web-server.
$ sudo /usr/local/etc/rc.d/apache24 start
Install MySQL.
$ sudo pkg install -y mysql57-server
Install PHP 7.4 and the required dependencies for OpenCart.
$ sudo pkg install -y php74 mod_php74 php74-json php74-dom
Install Opencart.
$ sudo pkg install -y opencart
PHPMyAdmin is optional, but it's useful for MySQL administration.
$ sudo pkg install -y phpMyAdmin-php74
2. Configure the Software
Configure Apache
Verify that the PHP module is loaded in /usr/local/etc/apache24/httpd.conf
. It should look exactly like this:
$ sudo cat /usr/local/etc/apache24/httpd.conf | grep php
LoadModule php7_module libexec/apache24/libphp7.so
Open /usr/local/etc/apache24/httpd.conf
in an editor.
$ sudo ee /usr/local/etc/apache24/httpd.conf
Add the following lines to enable PHP in Apache.
#PHP Configuration
DirectoryIndex index.php
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
Add the following lines to create the OpenCart alias. The example shown sets the OpenCart URL to http://yourhostname.example.com/opencart
.
#OpenCart Alias
Alias /opencart /usr/local/www/opencart/
AcceptPathInfo On
<Directory /usr/local/www/opencart>
AllowOverride None
Require all granted
</Directory>
Save the file and exit the editor.
Configure PHP
Change to the /usr/local/etc/
directory.
$ cd /usr/local/etc/
Copy the production template to php.ini
.
$ sudo cp php.ini-production php.ini
Edit php.ini
.
$ sudo ee /usr/local/etc/php.ini
Change the upload_max_filesize
default value of 2M to 999M.
upload_max_filesize = 999M
Save the file and exit the editor.
Configure MySQL
Configure the root password for MySQL. Start the server without authentication.
$ sudo sysrc mysql_args="--skip-grant-tables"
$ sudo service mysql-server enable
$ sudo service mysql-server start
$ mysql -u root
Set the root password.
> FLUSH PRIVILEGES;
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'insertrootpasswordhere';
Exit MySQL and remove the --skip-grant-tables
argument to re-enable authentication.
> exit
$ sudo service mysql-server stop
$ sudo sysrc -x mysql_args
$ sudo service mysql-server start
Create a dedicated user to manage the Opencart database. The example database is mystoredb
, and managed by the mysql
user:
$ mysql -u root -p
> CREATE USER 'mysql'@'localhost' IDENTIFIED BY 'mysqluserpassword';
> create database mystoredb;
> GRANT ALL ON mystoredb.* TO 'mysql'@'localhost' IDENTIFIED BY 'mysqluserpassword';
> exit
This fulfills all the dependencies for OpenCart. Restart Apache to test the configuration.
$ sudo /usr/local/etc/rc.d/apache24 restart
The output should look like this:
Performing sanity check on apache24 configuration:
Syntax OK
Stopping apache24.
Waiting for PIDS: 1313.
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.
3. Configure OpenCart
Log in to the Opencart URL, for example, http://yourhostname.example.com/opencart
.
Check that folders are writable and all the requirements are fulfilled as shown in the images below:
Configure the MySQL data with mysql
user, mysqluserpassword
password, and mystoredb
database defined in Section 2.1.
Configure the admin
user and opencartadminpasswd
that will be used for accessing the Opencart administration section, also configure the contact email address for the store.
The configuration part for Opencart is complete. The next section will focus on additional steps required to run Opencart securely and properly on FreeBSD-12.2.
4. Secure the OpenCart Directories
Change the owner of the OpenCart web directory to the user and group www
.
$ sudo chown -R www:www /usr/local/www/opencart
Remove the /usr/local/www/opencart/install
directory.
$ sudo rm -rf /usr/local/www/opencart/install
Move the location of /usr/local/www/opencart/system/storage
sub-directory to /usr/local
.
$ cd /usr/local/www/opencart/system
$ sudo cp -R storage /usr/local/
$ sudo rm -rf storage
Make sure /usr/local/storage
is owned by the www
user and group as well.
$ sudo chown -R www:www /usr/local/storage
Edit /usr/local/www/opencart/config.php
.
$ sudo ee /usr/local/www/opencart/config.php
Change the line containing the DIR_STORAGE
directive to the one shown below.
define('DIR_STORAGE', '/usr/local/storage/');
Perform the same changes in /usr/local/www/opencart/admin/config.php
.
$ sudo ee /usr/local/www/opencart/admin/config.php
define('DIR_STORAGE', '/usr/local/storage/');
5. Configure Facebook for OpenCart
Obtain the Facebook Business Extension Plugin
Download the FaceBook Business Extension for OpenCart plugin here Link1 or here Link2. Registration is required.
5.2 Install the Facebook Plugin
Log in to the Openart URL. In this example, we have called it http://yourhostname.example.com/opencart/admin/ with admin
user and opencartadminpasswd
configured in Section 3. Locate the Extensions/Install sub-menu, and proceed to upload the facebookadsextension.ocmod.zip
file.
After uploading the file, enter the **Extensions/Modifications **sub-menu.
Press the Refresh button, the Facebook Business Extension should now be visible in the Navigation Bar.
Go to System/Users/User Groups, select the Administrator group
Now proceed to select the permissions to access and modify the Facebook-related extensions.
Once the permssions have been modified, go to the Facebook Business Extension Menu and press the Get Started button, log in with your Facebook account.
Conclusion
Congratulations! You have sucessfully installed Opencart+ Facebook Business extension plugin in FreeBSD-12.2.
Further Steps
Before putting your e-commerce site into operation, it is highly recommended to enable HTTPS with a valid SSL certificate. In this way, all the communication will be encrypted, and customers will feel safe when they shop in your e-store.