Skip to content

Pimcore

Requirements

This guide assumes that you already have the following set up prior to following these instructions:

  • OpenLiteSpeed
  • MariaDB (or another SQL server)
  • PHP 8.1+

To easily set up the above requirements on a fresh server, use our ols1clk script with the --pure-mariadb option.

For more specific requirements for Pimcore please see Pimcore's documentation.

Installation

Install Composer

The easiest way to install Pimcore is from your SSH terminal using Composer. If you don't have Composer, you can install it like so:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Create Pimcore Project

We will use /var/www/html as our project location example.

cd /var/www/

Pimcore offers two different installation packages: a demo package with example blueprints, and an empty skeleton package for experienced developers. If you are experienced, create a project with the Skeleton Package:

COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/skeleton html

Otherwise, create a project with the Demo Package:

COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/demo html

For more information, please see Pimcore's official guide.

Install Pimcore

Log in to the project folder and run the pimcore-install command. During the installation, it will ask you to input some necessary values like admin password, database password, etc.

 cd html
 ./vendor/bin/pimcore-install

For advanced installation commands, see Pimcore's official guide.

Configure permissions

By default OpenLiteSpeed web server runs with www-data:www-data permissions, so apply the same permissions to the project, like so:

chown -R www-data:www-data /var/www/html

Configure Virtual Host Document Root

Since the Pimcore documents are under the public folder, update the virtual host's document root to /var/www/html/public/.

Add .htaccess file

If there is no .htaccess file, add one and insert the following content:

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]

# ASSETS: check if request method is GET (because of WebDAV) and if the requested file (asset) exists on the filesystem, if both match, deliver the asset directly
RewriteCond %{REQUEST_METHOD} ^(GET|HEAD)
RewriteCond %{DOCUMENT_ROOT}/var/assets%{REQUEST_URI} -f
RewriteRule ^(.*)$ /var/assets%{REQUEST_URI} [PT,L]

# Thumbnails
RewriteCond %{REQUEST_URI} .*/(image|video)-thumb__[\d]+__.*
RewriteCond %{DOCUMENT_ROOT}/var/tmp/thumbnails%{REQUEST_URI} -f
RewriteRule ^(.*)$ /var/tmp/thumbnails%{REQUEST_URI} [PT,L]

RewriteCond %{REQUEST_METHOD} ^(GET|HEAD)
RewriteCond %{QUERY_STRING}   !(pimcore_editmode=true|pimcore_preview|pimcore_version)
RewriteCond %{DOCUMENT_ROOT}/var/tmp/pages%{ENV:STATIC_PAGE_URI}e.html -f
RewriteRule .* /var/tmp/pages%{ENV:STATIC_PAGE_URI}e.html [L]

# cache-buster rule for scripts & stylesheets embedded using view helpers
RewriteRule ^cache-buster\-[\d]+/(.*) $1 [PT,L]

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

# Rewrite all other queries to the front controller.
RewriteRule ^ %{ENV:BASE}/index.php [L]

Restart OpenLiteSpeed

Now that Pimcore is installed and set up, we need to restart OpenLiteSpeed so it can reload the configuration and .htaccess file. This can be done by running the following command:

systemctl restart lsws

Finished!

That’s it! Navigate to your site in a browser. You should see the Pimcore welcome screen.

To access the Pimcore backend admin page, visit the admin page at http://example.com/admin