How to Install Craft CMS on CentOS 7
0

Craft is an open supply CMS written in PHP. Craft permits you to simply create and handle great-looking content material, and to design and construct precisely what you want. It is safe and scalable CMS with massive plugin ecosystem and the Craft supply code is hosted on GitHub. This tutorial will stroll you thru the Craft CMS set up process on a contemporary CentOS system utilizing Nginx as the online server and we are going to safe the web site with a Let’s encrypt SSL certificates.

Necessities

Craft requires the next:

  • PHP model 7.Zero or higher with the next PHP extensions: (ctype, cURL, GD or ImageMagick, iconv, JSON, Multibyte String, OpenSSL, PCRE, PDO MySQL Driver or PDO PostgreSQL Driver, PDO, Reflection, SPL, Zip, Intl, DOM)
  • MySQL 5.5+ with InnoDB, MariaDB 5.5+, or PostgreSQL 9.5+
  • Not less than 256MB of reminiscence allotted to PHP
  • Not less than 200MB of free disk house
  • An working system working CentOS 7.
  • A non-root consumer with sudo privileges.

Preliminary steps

Verify your CentOS model:

cat /and so on/centos-release
# CentOS Linux launch 7.6.1810 (Core)

Arrange the timezone:

timedatectl list-timezones
sudo timedatectl set-timezone 'Area/Metropolis'

Replace your working system packages (software program). This is a vital first step as a result of it ensures you’ve got the most recent updates and safety fixes on your working system’s default software program packages:

sudo yum replace -y

Set up some important packages which can be mandatory for fundamental administration of CentOS working system:

sudo yum set up -y curl wget vim git unzip socat

Step 1 – Set up PHP and required PHP extensions

Setup the Webtatic YUM repo:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Set up PHP, in addition to the mandatory PHP extensions:

sudo yum set up -y php72w php72w-cli php72w-fpm php72w-common php72w-curl php72w-gd php72w-pecl-imagick php72w-json php72w-mbstring php72w-mysql php72w-pgsql php72w-zip php72w-intl php72w-xml php72w-pdo

Verify PHP model:

php --version# PHP 7.2.13 (cli) (constructed: Dec 6 2018 23:18:37) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Applied sciences

Begin and allow PHP-FPM service:

sudo systemctl begin php-fpm.service
sudo systemctl allow php-fpm.service

Run sudo vim /and so on/php.ini and set memory_limit to at the least 256MB:

memory_limit = 256M

We will transfer on to the subsequent step, which is the database set up and setup.

Step 2- Set up MariaDB and create a database

Craft CMS helps MySQL/MariaDB and PostgreSQL databases. On this tutorial, we are going to use MariaDB as database server.

Set up MariaDB database server:

sudo yum set up -y mariadb-server

Verify MariaDB model:

mysql --version
# mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) utilizing  readline 5.1

Begin and allow MariaDB service:

sudo systemctl begin mariadb.service
sudo systemctl allow mariadb.service

Run mysql_secure set up script to enhance MariaDB safety and set the password for MariaDB root consumer:

sudo mysql_secure_installation

Reply every of the questions:

New password: your_secure_password
Re-enter new password: your_secure_password
Take away nameless customers? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Take away check database and entry to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Hook up with MariaDB shell as the basis consumer:

sudo mysql -u root -p
# Enter password

Create an empty MariaDB database and consumer for Craft CMS and bear in mind the credentials:

mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb> FLUSH PRIVILEGES;

Exit from MariaDB:

mariadb> exit

Change dbname, username and password with your individual names.

Step 3 – Set up acme.sh shopper and procure Let’s Encrypt certificates (optionally available)

Securing your web site with HTTPS isn’t mandatory, however it’s a good apply to safe your website visitors. With a view to receive TLS certificates from Let’s Encrypt we are going to use Acme.sh shopper. Acme.sh is a pure unix shell software program for acquiring TLS certificates from Let’s Encrypt with zero dependencies. 

Obtain and set up Acme.sh:

sudo mkdir /and so on/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
sudo ./acme.sh --install --home /and so on/letsencrypt --accountemail [email protected]
cd ~

Verify Acme.sh model:

/and so on/letsencrypt/acme.sh --version
# v2.8.0

Get hold of RSA and ECC/ECDSA certificates on your area/hostname:

# RSA 2048
sudo /and so on/letsencrypt/acme.sh --issue --standalone --home /and so on/letsencrypt -d instance.com --keylength 2048
# ECDSA
sudo /and so on/letsencrypt/acme.sh --issue --standalone --home /and so on/letsencrypt -d instance.com --keylength ec-256

After working the above instructions, your certificates and keys will probably be in:

  • For RSA: /and so on/letsencrypt/instance.com listing.
  • For ECC/ECDSA: /and so on/letsencrypt/instance.com_ecc listing.

Step 4 – Set up and Configure Nginx

Craft CMS can work fantastic with many standard net server softwares. On this tutorial, we chosen Nginx. 

Obtain and set up newest mainline launch of Nginx from the official Nginx repository.

With a view to verify a signature it’s essential to obtain Nginx signing key and import it to the rpm program’s keyring:

wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key

To arrange the yum repository for CentOS, create the file named /and so on/yum.repos.d/nginx_mainline.repo with the next contents:

[nginx]
 title=nginx repo
 baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
 gpgcheck=1
 enabled=1

Set up the most recent mainline Nginx packages:

sudo yum set up -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt

Begin and allow Nginx service:

sudo systemctl begin nginx.service
sudo systemctl allow nginx.service

Verify the Nginx model:

nginx -v
# nginx model: nginx/1.15.8

Configure Nginx for Craft CMS by working:

sudo vim /and so on/nginx/conf.d/craft.conf

And populate the file with the next configuration:

server {

  pay attention 80;
  pay attention [::]:80;
  pay attention 443 ssl;
  pay attention [::]:443 ssl;

  server_name instance.com www.instance.com;

  root /var/www/craft/net;

  index index.php;

  ssl_certificate /and so on/letsencrypt/instance.com/fullchain.cer;
  ssl_certificate_key /and so on/letsencrypt/instance.com/instance.com.key;
  ssl_certificate /and so on/letsencrypt/instance.com_ecc/fullchain.cer;
  ssl_certificate_key /and so on/letsencrypt/instance.com_ecc/instance.com.key;

  location / {
    try_files $uri/index.html $uri $uri/ /index.php?$query_string;
  }

  location ~ [^/].php(/|$) {
    try_files $uri $uri/ /index.php?$query_string;
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    embrace fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTP_PROXY "";
  }

}

Change instance.com with your individual area title within the above file.

NOTE: For full and manufacturing prepared Nginx config for Craft go to https://github.com/nystudio107/nginx-craft. The config is deliberately simplified to maintain config dense and easy.

Take a look at Nginx configuration:

sudo nginx -t

Reload Nginx:

sudo systemctl reload nginx.service

Step 5 – Set up Composer

Set up Composer, the PHP dependency supervisor globally:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"

sudo mv composer.phar /usr/native/bin/composer

Verify the Composer model:

composer --version
# Composer model 1.8.0 2018-12-03 10:31:16

NOTE: Composer set up instructions will change sooner or later, so verify https://getcomposer.org/download/ for the hottest instructions if the above instructions does not work.

Step 6 – Set up Craft CMS

Craft CMS might be downloaded with Composer or by manually downloading a .zip or tar.gz archive. On this tutorial we are going to use Composer to obtain Craft CMS.

Create a doc root listing the place Craft CMS ought to reside in:

sudo mkdir -p /var/www/craft

Navigate to the doc root listing:

cd /var/www/craft

Change possession of the /var/www/craft listing to {your_username}.

sudo chown -R {your_username}:{your_username} /var/www/craft

To create a brand new Craft mission, run this command:

composer create-project craftcms/craft .

Change possession of the /var/www/craft listing to nginx:

sudo chown -R nginx:nginx /var/www/craft

Run sudo vim /and so on/php-fpm.d/www.conf and set the consumer and group to nginx. Initially, they are going to be set to apache:

sudo vim /and so on/php-fpm.d/www.conf
# consumer = nginx
# group = nginx

Create /var/lib/php/session/ listing and alter possession to nginx.

sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session

In your net browser, go to http://<Hostname>/index.php?p=admin/install (substituting <Hostname> together with your net server’s host title). In the event you’ve completed all the things proper thus far, try to be greeted by Craft’s Setup Wizard.

Step 7 – Full the Craft CMS setup

After opening your set up URL the web page like beneath ought to seem. Click on “Install Craft” button:

Start craft installation

Settle for the license by clicking on the “Got it” button:

Accept the license

Fill in database particulars and click on on the “Next” button:

Connect to database

Create Craft account and click on on the “Next” button:

Create a user

Setup your website and click on on the “Finish up” button:

Add site information

After this try to be redirected to the Craft admin web page:

Craft CMS Dashboard

How To Set up YunoHost on Debian 9

Previous article

Web Design Development: Massive and Daring Typography

Next article

You may also like

Comments

Leave a Reply

More in Apache