Linux SysAdmin & DevOps

Pimcore - easy install on cPanel WHM linux server

Pimcore - An award-winning software, which delivers significant business value by breaking up data silos that exist in many enterprises. Or so they say. True or not, I don’t really care.

I recently had a project and I had to install it on a cPanel/WHM server. It was a little bit challenging but in the end it was interesting and successfully installed/configured.

So some simple basic steps. Pimcore needs PHP and Composer which comes installed by default on cPanel.

There are also a few php extensions that need to be enabled: php-exif, php-mysqlnd, php-intl, php-opcache, php-zip

It requires an empty MySQL database and a mysql users with full rights to that database.

Also there are some settings that need to be done at the server level related to MySQL (I’m using MariaDB-10.3 which can be installed from the WHM web interface with a few mouse clicks). As soon as you’ve upgrade traditional MySQL to MariaDB, edit yoru /etc/my.cnf files and at the end at these 2 lines:

innodb_large_prefix=1
innodb_file_format = Barracuda

Save file, restart MySQL service.

Then connect to your cPanel/WHM server via ssh. If you did that as root just issue a: su - cpanelusername

cd /home/cpanelusername
COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/demo-ecommerce pimcore
cd pimcore
./vendor/bin/pimcore-install

Follow the onscreen instructions and fill in your mysql username, mysql database, mysql user password. Wait for the install to finish, it takes a while

Remember, we have performed the install outside of the public_html/ folder.

Remove public_html/ folder and create a symlink like this:

ln -s /home/cpanelusername/pimcore/web public_html

And that’s it. I’ve tried different scenarios with changing the default root folder of the Apache virtual host for that specific cPanel user, adding custom include files, changing the default apache vhost template, using .htaccess redirection etc. Nothing seems to work better than the symlink configuration.