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 apache24Enable Apache in /etc/rc.conf.
$ sudo service apache24 enableStart the Apache web-server.
$ sudo /usr/local/etc/rc.d/apache24 startInstall MySQL.
$ sudo pkg install -y mysql57-serverInstall PHP 7.4 and the required dependencies for OpenCart.
$ sudo pkg install -y php74 mod_php74 php74-json php74-domInstall Opencart.
$ sudo pkg install -y opencartPHPMyAdmin is optional, but it's useful for MySQL administration.
$ sudo pkg install -y phpMyAdmin-php742. 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.soOpen /usr/local/etc/apache24/httpd.conf in an editor.
$ sudo ee /usr/local/etc/apache24/httpd.confAdd 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.iniEdit php.ini.
$ sudo ee /usr/local/etc/php.iniChange the upload_max_filesize default value of 2M to 999M.
upload_max_filesize = 999MSave 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 rootSet 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 startCreate 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';
> exitThis fulfills all the dependencies for OpenCart. Restart Apache to test the configuration.
$ sudo /usr/local/etc/rc.d/apache24 restartThe 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/opencartRemove the /usr/local/www/opencart/install directory.
$ sudo rm -rf /usr/local/www/opencart/installMove 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 storageMake sure /usr/local/storage is owned by the www user and group as well.
$ sudo chown -R www:www /usr/local/storageEdit /usr/local/www/opencart/config.php.
$ sudo ee /usr/local/www/opencart/config.phpChange 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.