The following guide assumes your're using a typical LAMP environment, if you're using a different setup (eg. Nginx) or facing a problem, please visit the Installation Guide section.
1. System Requirements
Please have a look at System Requirements and ensure your system is ready for Pimcore.
2. Install Pimcore Sources
The easiest way to install Pimcore is from your terminal using our installer package. We additionally provide a Composer based install guide and of course you can install Pimcore also without the help of the command line using your favorite tools (SFTP, ...).
Change into the root folder of your project (please remember project root != document root):
Pimcore is offering 2 installation packages for different use-cases:
|Latest Release||The latest release version of Pimcore. Good choice for all purposes ;-)|
|Nightly Build||Daily released version. Shouldn't be used in production but ok for development.|
Download a Package:
wget https://pimcore.com/download-5/pimcore-latest.zip -O pimcore-install.zip
Unzip the installer package into the current folder (project root):
Point the document root of your vhost to the newly created
/web folder out of the ZIP archive (eg.
Keep in mind, that Pimcore needs to be installed outside of the document root.
Specific configurations and optimizations for your webserver are available here:
Pimcore requires write access to the following directories (relative to your project root):
3. Create Database
mysql -u root -p -e "CREATE DATABASE project_database charset=utf8mb4;"
For further information please visit out DB Setup Guide
4. Launch Pimcore and Finish Installation
Finish the Pimcore installation by accessing the URL (eg.
https://your-host.com/install) in your web browser.
- Fill in the required fields (database + admin user)
- Press Check Requirements to check if your system is ready for Pimcore
- Click Install Now!
- Remove the file
web/install.phpas it isn't needed anymore
Alternatively, you can use the CLI installer to install pimcore. The installer will guide you through the installation interactively.
Every parameter can be set as option to make the install automated. The
--no-interaction flag will avoid any interactive
$ bin/install --profile demo-basic \ --admin-username admin --admin-password admin \ --mysql-username username --mysql-password password --mysql-database pimcore5 \ --no-interaction
To avoid having to pass sensitive data (e.g. DB password) as command line option, you can also set each parameter as env
bin/install --help for details. Example:
$ PIMCORE_INSTALL_MYSQL_USERNAME=username PIMCORE_INSTALL_MYSQL_PASSWORD=password bin/install --profile demo-basic \ --admin-username admin --admin-password admin \ --mysql-database pimcore5 \ --no-interaction
Please also remove the
web/install.php file after the installation is complete.
Debugging installation issues
The installer writes a log in
var/installer/logs which contains any errors encountered during the installation. Please
have a look at the logs as a starting point when debugging installation issues.
5. Maintenance Cron Job
*/5 * * * * /your/project/bin/console maintenance
Keep in mind, that the cron job has to run as the same user as the web interface to avoid permission issues (eg.
5.1 Add some randomness (optional)
In case you've got multiple Pimcore Projects on one (Development-)Server, you can add some randomness to the start times of the cron Jobs to mitigate the risk of multiple tasks starting in parallel.
# We need bash since RANDOM is a bash builtin SHELL=/bin/bash */5 * * * * sleep $[ ( $RANDOM % 120 ) + 1 ]s ; /your/project/bin/console maintenance
6. Additional Information & Help
If you would like to know more about installation process or if you are having problems getting Pimcore up and running, visit the Installation Guide section.
7. Further Reading
Next up - Directories Structure