HowtoForge

How to Install Akeneo PIM on Ubuntu 18.04 LTS

Akeneo is a free, open source and enterprise Product Information Management platform based on the Symfony2 framework. It is simple, easy to use and highly customizable that allows us to collaborate and automate engaging experiences with customers and partners acrose multiple devices. Akeneo PIM comes with a simple yet extensible import engine that greatly simplifies data onboarding from virtually any source. You can easily edit your data. Define the attributes you need, complete product sheets, translate your information into as many languages as you want, add your media files, and keep track of any modifications directly in the product history.

In this tutorial, we will learn how to install Akeneo product management system (PIM) on Ubuntu 18.04 LTS (Bionic Beaver).

Prerequisites

Install LAMP Server

Before starting, you will need to install Apache, PHP, and MariaDB to your system.

First, install Apache and MariaDB using the following command:

sudo apt-get install apache2 mariadb-server -y

Once Apache and MariaDB are installed, start Apache and MariaDB service and enable them to start on boot using the following command:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql

By default, the latest version of PHP not available in Ubuntu 18.04. So you will need to add PHP repository to your system. You can install Ondrej PHP repository using the following command:

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php

Once the repository is installed, update the repository and install PHP7.1 using the following command:

sudo apt-get update -y
sudo apt-get install php7.1 libapache2-mod-php7.1 php7.1-apcu php7.1-bcmath php7.1-common php7.1-mbstring php7.1-xmlrpc php7.1-soap php7.1-gd php7.1-xml php7.1-intl php7.1-mysql php7.1-cli php7.1-mcrypt php7.1-ldap php7.1-zip php7.1-curl -y

Once PHP is installed, you will need to modify php.ini file. You can do this with the following command:

sudo nano /etc/php/7.1/apache2/php.ini

Make the following changes:

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 120M
max_execution_time = 300
max_input_vars = 1500
date.timezone = Asia/Kolkata

Save and close the file, when you are finished.

Configure MariaDB

By default, MariaDB installation is not secured. So you will need to secure it first. You can secure it by running the following command:

sudo mysql_secure_installation

Answer all the questions as shwon below:

Enter current password for root (enter for none): 
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

Once the MariaDB is secured, log in to MariaDB shell with the following command:

mysql -u root -p

Enter your root password when prompt, then create a database and user for Akeneo:

MariaDB [(none)]> CREATE DATABASE akeneodb;
MariaDB [(none)]> CREATE USER 'akeneouser'@'localhost' IDENTIFIED BY 'password';

Next, grant all privileges to Akeneo using the following command:

MariaDB [(none)]> GRANT ALL ON akeneodb.* TO 'akeneouser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Next, flush the privileges using the following command:

MariaDB [(none)]> FLUSH PRIVILEGES;

Finally, exit from the MariaDB shell with the following command:

MariaDB [(none)]> exit

Install Akeneo

First, you will need to download the latest version of Akeneo from their official website. You can download it with the following command:

wget wget http://download.akeneo.com/pim-community-standard-v2.2-latest-icecat.tar.gz

Next, create a directory in Apache web root and extract the downloaded file inside it:

sudo mkdir /var/www/html/akeneo
sudo tar -xvzf pim-community-standard-v2.2-latest-icecat.tar.gz -C /var/www/html/akeneo

Next, change the directory to the akeneo and install Akeneo using the following command:

cd /var/www/html/akeneo/pim-community-standard
sudo php -d memory_limit=3G ../composer.phar install --optimize-autoloader --prefer-dist

Output:

Trying to install assets as relative symbolic links.

 --- ------------------------ ------------------ 
      Bundle                   Method / Error    
 --- ------------------------ ------------------ 
  ?   FOSJsRoutingBundle       relative symlink  
  ?   OroAsseticBundle         relative symlink  
  ?   OroConfigBundle          relative symlink  
  ?   PimNavigationBundle      relative symlink  
  ?   PimUserBundle            relative symlink  
  ?   PimAnalyticsBundle       relative symlink  
  ?   PimDashboardBundle       relative symlink  
  ?   PimDataGridBundle        relative symlink  
  ?   PimEnrichBundle          relative symlink  
  ?   PimImportExportBundle    relative symlink  
  ?   PimNotificationBundle    relative symlink  
  ?   PimReferenceDataBundle   relative symlink  
  ?   PimUIBundle              relative symlink  
 --- ------------------------ ------------------ 

                                                                                
 [OK] All assets were successfully installed.                                   
                                                                                

> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installRequirementsFile
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::removeSymfonyStandardFiles
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::prepareDeploymentTarget
> @php bin/console fos:js-routing:dump --target=web/js/routes.js
Dumping exposed routes.

[file+] web/js/routes.js

Next, clear the cache using the following command:

sudo php bin/console cache:clear --no-warmup --env=prod

Output:

 // Clearing the cache for the prod environment with debug false                                                        

                                                                                                                        
 [OK] Cache for the "prod" environment (debug=false) was successfully cleared.
sudo php bin/console pim:installer:assets --symlink --clean --env=prod

Next, give proper permissions to the akeneo directory:

sudo chown -R www-data:www-data /var/www/html/akeneo/
sudo chmod -R 755 /var/www/html/akeneo/

Configure Apache for Akeneo

Next, you will need to create an apache virtual host file for akeneo. You can do this with the following command:

sudo nano /etc/apache2/sites-available/akeneo.conf

Add the following lines:

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/akeneo/pim-community-standard/web
     ServerName example.com

     <Directory /var/www/html/akeneo/pim-community-standard/web>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/akeneo_error.log
     CustomLog ${APACHE_LOG_DIR}/akeneo_access.log combined

</VirtualHost>

Save and close the file, when you are finished. Then, enable Akeneo virtual host file and Apache rewrite module using the following command:

sudo a2ensite akeneo.conf
sudo a2enmod rewrite

Finally, restart Apache service to apply all the changes:

sudo systemctl restart apache2

That's it!. Now open your web browser and type the URL http://example.com and complete the required step to install Akeneo.

How to Install Akeneo PIM on Ubuntu 18.04 LTS