Introduction
PIMCore is a free and open-source enterprise Content Management System (CMS) based on PHP. It has both on-premise and cloud installation options with a wide open-source tech stack. It provides multiple integrated applications such as product information management, e-commerce, digital asset management, multi-channel publishing, marketing management and so on. It has an intuitive user interface that is fully responsive and runs on all devices. This article explains how to install PIMCore on a CentOS 8 server.
Prerequisites
Perform the following steps first:
SSH into the server you deployed.
Server Requirements
Apache >= 2.4
PHP >= 8.0
MySQL >= 8.0 or MariaDB >= 10.3
Step 1. Install Packages
Update the system packages.
$ yum -y install epel-release
$ yum -y update
Install Apache, MySQL server, and other packages.
$ sudo yum -y install httpd mysql-server wget unzip
Start Apache service and enable it to start on boot.
$ sudo systemctl start httpd
$ sudo systemctl enable httpd
Install PHP version 8.0. Add the repositories.
Add Remi repository, a third-party repository that provides PHP versions.
$ sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Install Remi module.
$ sudo dnf module install php:remi-8.0 -y
Install PHP version 8.0 and other modules.
$ sudo dnf -y install php yum-utils php-{cli,fpm,mysqlnd,zip,devel,gd,mbstring,curl,xml,pear,bcmath,json,common,intl,opcache,imagick}
Edit the PHP configuration file.
$ sudo nano /etc/php.ini
Find the following lines and change the values like below. Finally, save and close the file.
memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M
Restart Apache service.
$ sudo systemctl restart httpd
Step 2. Create PIMCore Database
Start MySQL service and enable it to start on boot.
$ sudo systemctl start mysqld
$ sudo systemctl enable mysqld
Run mysql_secure installation
script to ensure MySQL database server is secure from 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 pimcore
.
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 yum -y install curl git
Install Composer.
$ sudo yum -y install 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 apache:apache -R /var/www/pimcore
Change the access permissions.
$ sudo chcon -R -t httpd_sys_content_rw_t /var/www/pimcore/var
$ sudo chmod -R 777 /var/www/pimcore/var
Step 4. Configure Apache Server
Allow port 80
through the firewall.
$ firewall-cmd --permanent --zone=public --add-port=80/tcp
Reload firewall service.
$ firewall-cmd --reload
Create a new Apache configuration file, pimcore.conf
.
$ sudo nano /etc/httpd/conf.d/pimcore.conf
Add the following lines of code to the file. Then, 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 "/var/log/httpd/example.com-error_log"
CustomLog "/var/log/httpd/example.com-access_log" combined
</VirtualHost>
Restart Apache service for changes to take effect.
$ sudo systemctl restart httpd
Step 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 CentOS 8 server. You can now access the administrator portal by logging in with your set credentials.
You can now check the official documentation to learn more on how to use PIMCore.