Install PIMCore on Ubuntu 20.04
Introduction
PIMCore is a free and open-source Enterprise Content Management System based on PHP. It has simple and flexible user and administrator interfaces for ease of use. Some important features of the platform are:
- Data management capabilities to distribute large amounts of data for multi-channel publishing and solve data challenges such as data quality management.
- Personalized digital experience management to deliver content to any output channel and device.
- Web content management to manage multi-site, multi-lingual, and mobile-friendly content.
- Multi-channel delivery to automate publishing processes across devices and channels for consistency and accuracy.
- Personalization & analytics to deliver a positive brand experience and build customer loyalty.
- Print publishing (Web2Print) for creating product catalogs, price sheets, and personalized marketing.
Some products of the PIMCore platform are:
- Product Information Management (PIM). Manage, and distribute product data.
- Master Data Management (MDM). Offer the right data on the right channel.
- Digital Asset Management (DAM). Manage, merge, share and transform digital media assets.
- Customer Data Platform (CDP). Watch your customer activities for personalized marketing.
- Digital Experience Platform (DXP). Manage personalized, headless digital experiences on any channel.
This article guides you on how to install PIMCore on Ubuntu 20.04 server.
Prerequisites
Perform the following steps first:
- Deploy a Vultr Ubuntu 20.04 Server.
- SSH into the server you deployed.
- Update the server.
- Create a non-root user with sudo access.
Server Requirements
- Apache >= 2.4
- PHP >= 8.0
- MySQL >= 8.0 or MariaDB >= 10.3
Step 1. Install Required Packages
Update system package list to update all packages to the latest available versions.
$ sudo apt update
The latest versions of PIMCore only support PHP version 8.0. Ubuntu 20.04 does not contain PHP 8.0 in its default repository list. To install it, add the PHP repository to the APT.
Add ppa:ondrej/php
repository.
$ sudo apt -y install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
Update system package manager.
$ sudo apt update
Install PHP 8.0 and more modules.
$ sudo apt install apache2 mysql-server php8.0 libapache2-mod-php8.0 php8.0-mysql php8.0-curl php8.0-xml php8.0-zip php8.0-mbstring php8.0-intl php8.0-opcache php8.0-imagick php8.0-gd php8.0-cli php8.0-fpm libapache2-mod-fcgid wget unzip -y
Edit the PHP configuration file.
$ sudo nano /etc/php/8.0/fpm/php.ini
Find the following lines and change the values like below. Save and close the file.
memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M
Enable Apache2 with PHP-FPM.
$ sudo a2enmod proxy_fcgi setenvif
$ sudo a2enconf php8.0-fpm
Restart Apache service.
$ sudo systemctl restart apache2
Step 2. Create PIMCore Database
Start the MySQL service on system startup.
$ sudo systemctl enable mysql
Run mysql_secure installation
script to ensure MySQL database server is secure form breaches.
$ sudo mysql_secure_installation
When prompted, answer the questions as shown below:
- Setup VALIDATE PASSWORD plugin? Press N, then Enter.
- Remove anonymous users? Press Y, then Enter.
- Disallow root login remotely? Press Y, then Enter.
- Remove test database and access to it? Press Y, then Enter.
- Reload privilege tables now? Press Y, then Enter.
Run MySQL shell login command and enter your password to continue.
$ sudo mysql -u root -p
Create a database named elefant
.
CREATE DATABASE pimcore charset=utf8mb4;
Create a database user pimcoreuser
with a password MySecurePassword
. Change the value of MySecurePassword
to your own secure password.
CREATE USER 'pimcoreuser'@'localhost' IDENTIFIED BY 'MySecurePassword';
Grant the database user full access to the database.
GRANT ALL ON pimcore.* TO 'pimcoreuser'@'localhost' WITH GRANT OPTION;
Save all the changes to take effect.
FLUSH PRIVILEGES;
Exit MySQL shell.
exit;
Step 3. Install PIMCore
Install required dependencies.
$ sudo apt install curl git
Install Composer.
$ curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Change to document root.
$ cd /var/www/
Set up the project using composer.
$ sudo COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/skeleton pimcore
Change to the installation directory.
$ cd /var/www/pimcore
Run the installer to create an administrator account, and enter your database credentials.
$ sudo ./vendor/bin/pimcore-install
Set the ownership of the directory to the web-root user and group.
$ sudo chown www-data:www-data -R /var/www/pimcore/
Change the access permissions.
$ sudo chmod -R 755 /var/www/pimcore/
Step 4. Configure Apache Server
Allow port 80
through the firewall.
$ sudo ufw allow 80
Create a new Apache configuration file, pimcore.conf
.
$ sudo nano /etc/apache2/sites-available/pimcore.conf
Add the following lines of code to the file. Save and close the file.
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/pimcore/public
ServerName example.com
<Directory /var/www/pimcore/public/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enable Apache rewrite mode.
$ sudo a2enmod rewrite
Enable the new Apache configuration file.
$ sudo a2ensite pimcore.conf
Disable Apache default configuration file.
$ sudo a2dissite 000-default.conf
Restart Apache service for changes to take effect.
$ sudo systemctl restart apache2
5. Access PIMCore Web Platform
To access the PIMCore administrator web platform, go to your browser and visit http://myServerIp/admin/
. For example:
http://192.0.2.11/admin/
Conclusion
You have installed PIMCore on your Ubuntu 20.04 server. You can now access the administrator by logging in with your administrator credentials.
You can now check the official documentation to learn more on how to use PIMCore.