How to install Pimcore CMS with Nginx on CentOS 7

To install Pimcore CMS with Nginx on CentOS 7   

Pimcore provides free and open source enterprise content management system. It is written in PHP and uses MySQL to store its database. Pimcore CMS is fully flexible and editable, you can personalize the site the way you want. Apart from all these, it has many enterprise class features which make it capable of supplying the demand of enterprise grade website. This tutorial covers the installation procedure of Pimcore CMS on with Nginx on CentOS 7. 

 

Pre-Requisite 

As a pre-requisite for installation procedure, install Nginx, PHP 7.1 and MariaDB. Also create a database to use specifically for pimcore application. 

 

Installation procedure 

To proceed with the installation procedure, apply some configurations in PHP. Open the PHP configuration file named php.ini using vim editor. 

[root@linuxhelp11 ~]# vim /etc/php.ini

Find the following line in php.ini file, uncomment the following lines and set the timezone according to your region. 

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Kolkata

Also search for the following line named upload_max_filesize and change the value from 2M to 100M.

upload_max_filesize = 2M

 Search for the following line named post_max_size and change the value from 8M to 100M. Save the file and exit from the file

post_max_size = 8M

Open the PHP-FPM configuration file named www.conf using vim editor. 

[root@linuxhelp11 ~]# vim /etc/php-fpm.d/www.conf

Find the following lines and change the user and group value from Apache to Nginx. 

user = apache
group = apache

Now find the following lines and change the owner, group and mode to the following changes. 

;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660

Uncomment the given lines and change nobody to Nginx.

find:
listen = 127.0.0.1:9000

Comment out the above line and add the following line below it.

listen = /var/run/php-fpm/php-fpm.sock

Start the PHP-FPM service and enable it by executing the following commands. 

[root@linuxhelp11 ~]# systemctl start php-fpm
[root@linuxhelp11 ~]# systemctl enable php-fpm

Create a Symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

To install the required dependency, install following repo by executing the following command. 

[root@linuxhelp11 ~]# rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
Retrieving https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
warning: /var/tmp/rpm-tmp.9I5laL: Header V4 RSA/SHA1 Signature, key ID f5cf6c1e: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:rpmfusion-free-release-7-1       ################################# [100%]

Next install the following dependencies by running the following command and press y to continue with the installation. 

[root@linuxhelp11 ~]# yum -y install ffmpeg libreoffice libreoffice-math xorg-x11-fonts-75dpi poppler-utils inkscape libXrender ghostscript fontconfig wkhtmltopdf
Loaded plugins: fastestmirror, langpacks
rpmfusion-free-updates                                   | 3.0 kB     00:00     
rpmfusion-free-updates/x86_64/primary_db                   | 227 kB   00:02     
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
.
.
 gnome-settings-daemon-updates.x86_64 0:3.8.6.1-9.el7                          
  totem-mozplugin.x86_64 1:3.8.2-5.el7                                          

Complete!

Enter into Apache Root directory named /var/www

[root@linuxhelp11 ~]# cd /var/www

Download the pimcore package by executing the wget command followed by the download link. 

[root@linuxhelp11 www]# wget https://www.pimcore.org/download/pimcore-data.zip
--2017-09-05 12:34:29--  https://www.pimcore.org/download/pimcore-data.zip
Resolving www.pimcore.org (www.pimcore.org)... 62.138.199.172
Connecting to www.pimcore.org (www.pimcore.org)|62.138.199.172|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 117399659 (112M) [application/zip]
Saving to: ‘pimcore-data.zip’

100%[======================================>] 117,399,659  798KB/s   in 5m 8s  

2017-09-05 12:39:39 (372 KB/s) - ‘pimcore-data.zip’ saved [117399659/117399659]

Next unzip the downloaded file by running the following command. 

[root@linuxhelp11 www]# unzip pimcore*.zip -d pimcore
Archive:  pimcore-data.zip
   creating: pimcore/pimcore/
   creating: pimcore/pimcore/lib/
  inflating: pimcore/pimcore/lib/simple_html_dom.php  
   creating: pimcore/pimcore/lib/Pimcore/
   creating: pimcore/pimcore/lib/Pimcore/Video/
.
.
 inflating: pimcore/constants.example.php  
  inflating: pimcore/.htaccess       

Change the ownership of file by executing the following command. 

[root@linuxhelp11 www]# chown -R nginx:nginx /var/www/pimcore

Add the required services in the firewall and run the following command. 

[root@linuxhelp11 www]# firewall-cmd --zone=public --permanent --add-service=http
success

Reload the firewall. 

[root@linuxhelp11 www]# firewall-cmd --reload
success

Create a virtual host for pimcore named cms.linuxhelp11.com.conf using vim editor and add the following contents in the file. Save and exit the file. 

[root@linuxhelp11 www]# vim /etc/nginx/conf.d/cms.linuxhelp11.com.conf

server {
    root /var/www/pimcore;
    index index.php;
    server_name cms.yourdomain.com;
    listen 80;
    access_log  /var/www/pimcore/website/var/log/nginx_access.log;
    error_log   /var/www/pimcore/website/var/log/nginx_error.log error;
 
    set $getassets "";
    if ($uri ~* ^/website/var/assets)   { set $getassets "${getassets}A"; }
    if ($request_method = GET)      { set $getassets "${getassets}B"; }
    if ($getassets = "AB") {
        rewrite ^ $uri$args last;
    }
 
  location ~* ^(/plugins/(?!.*/static).*|^/pimcore/(?!(static|modules/3rdparty)).*|/website/var/(?!tmp|assets|areas)|/modules/(?!.*/static).*|^(vendor|tests|node_modules|phing)/.*|^(bower|package|composer|gulpfile).) {
        return 403;
    }
    
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
        index index.php;
    }
 
    location ~ .php$ {
        try_files $uri =404;
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_read_timeout 60;
    }

    location ~* .(jpe?g|gif|png|bmp|ico|css|js|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mpd)$ {
        access_log off;
        log_not_found off;
        try_files $uri $uri/ /website/var/assets$uri /index.php$is_args$args;
        expires 1w;
    }
    
  
    rewrite ^/cache-buster-d+(.*) $1 break;
    
    location /fpm-ping {
        access_log off;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    }

    location /fpm-status {
        allow 127.0.0.1;
        deny all;
        access_log off;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    }
    location /nginx-status {
        allow 127.0.0.1;
        deny all;
        access_log off;
        stub_status;
    }
}

Restart the Nginx service by running the following command. 

[root@linuxhelp11 www]# systemctl restart nginx

Switch over to  the browser and enter the machine's IP address, it will lead to the pimcore's installation page. Fill the required MySQL and admin details and click install option. 
installation procedure
Enter the required admin credentials and click login. 
admin details

The admin page is shown on the screen. Now you can use pimcore CMS for various content management works. 
admin page

The installation procedure of Pimcore CMS with Nginx on CentOS 7 is done successfully. 


Thank you! for using Linux Help.

You find this tutorial helpful? Share with your friends to keep it alive.
For more help topics browse our website www.linuxhelp.com
Be the first to comment, we value your suggestions. For further queries please comment below.

Tags: Nginx CentOS CMS tool
user image Author :  Ethan