Using a Different System?
-
Installing Pagekit CMS on Ubuntu 16.04 LTS
Pagekit is an open source CMS written in PHP. The Pagekit source code is publicly hosted on GitHub. This guide will show you how to install Pagekit CMS on a fresh CentOS 7 Vultr instance.
Requirements
Make sure your server meets the following requirements.
- Apache 2.2+ or NGINX.
- MySQL Server 5.1+ or SQLite 3.
- PHP Version 5.5.9+.
- Required PHP extensions: JSON, Session, ctype, Tokenizer, SimpleXML, DOM, mbstring, PCRE 8.0+, ZIP and PDO with MySQL or SQLite drivers.
- Optional PHP extensions: cURL, iconv and XML Parser, as well as APC or XCache for caching.
Before you begin
Check the OS version.
cat /etc/centos-release
# CentOS Linux release 7.4.1708 (Core)
Create a new non-root
user account with sudo
access and switch to it.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
NOTE: Replace johndoe
with your username.
Set up the timezone.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Ensure that your system is up to date.
sudo yum update -y
Install required and useful packages.
sudo yum install -y wget vim unzip bash-completion
Step 1 – Install NGINX
Pagekit CMS will work fine with Apache or NGINX. In this tutorial, we will use latest NGINX software.
Become a root
user for a moment,
sudo su - root
Create a new file nginx_mainline.repo
in the /etc/yum.repos.d/
directory.
cat > /etc/yum.repos.d/nginx_mainline.repo
Then copy/paste the following lines to your terminal window and hit CTRL + D
.
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1
Logout from root
user.
logout
Download the NGINX repository PGP key.
wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key
Install NGINX.
sudo yum install -y nginx
Start and enable NGINX.
sudo systemctl enable nginx.service && sudo systemctl start nginx.service
Step 2 – Install MySQL or MariaDB
Pagekit supports MySQL and SQLite databases. In this tutorial, however, we will be using the MariaDB database which is a drop in replacement of MySQL.
Create MariaDB YUM repository for CentOS.
sudo vim /etc/yum.repos.d/MariaDB.repo
Copy/paste the following into it.
# MariaDB 10.2 CentOS repository list - created 2017-12-11 23:19 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
After the file is in place, install MariaDB.
sudo yum install -y MariaDB-server MariaDB-client
Start and enable MariaDB.
sudo systemctl enable mariadb.service && sudo systemctl start mariadb.service
Run the mysql_secure_installation
script to improve the security of your MariaDB installation and to set root
user password.
sudo mysql_secure_installation
The last step is to create new database and user for Pagekit CMS.
Login to MariaDB.
mysql -u root -p
Create database and user.
CREATE DATABASE db_name;
GRANT ALL ON db_name.* TO 'user' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Exit from MariaDB.
exit
Step 3 – Install PHP and required PHP extensions, MySQL and NGINX
CentOS does not provide the latest PHP version in its default software repositories. We’ll need to add a Webtatic YUM repo. Follow this Vultr guide for instructions on that.
Download and install PHP 7.1 and required PHP extensions. We will also install optional PHP extensions.
sudo yum install -y php71w-cli php71w-fpm php71w-common php71w-mbstring php71w-zip php71w-mysql php71w-sqlite3 php71w-curl php71w-simplexml php71w-xml
Check the PHP version.
php --version
# PHP 7.1.11 (cli) (built: Oct 29 2017 17:26:51) ( NTS )
# Copyright (c) 1997-2017 The PHP Group
# Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
Enable and start php-fpm.service
.
sudo systemctl enable php-fpm.service && sudo systemctl start php-fpm.service
Step 4 – Configure NGINX
Run sudo vi /etc/nginx/conf.d/pagekit.conf
and copy/paste the following.
server {
listen [::]:80;
listen 80;
server_name example.com;
index index.php index.html;
root /var/www/pagekit;
# PHP setup with query string support
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ /.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000; # Instead of TCP connection, you can listen on unix socket
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param HTTP_MOD_REWRITE On;
}
}
Test the NGINX configuration.
sudo nginx -t
Reload NGINX.
sudo systemctl reload nginx.service
Step 5 – Download and install Pagekit CMS
Create a document root directory.
sudo mkdir -p /var/www/pagekit
Change ownership of the /var/www/pagekit
directory to johndoe
.
sudo chown -R johndoe:johndoe /var/www/pagekit
Navigate to the document root.
cd /var/www/pagekit
Download the latest stable release of Pagekit CMS from the command line.
wget https://github.com/pagekit/pagekit/releases/download/1.0.13/pagekit-1.0.13.zip
Unzip Pagekit CMS and remove downloaded zip file.
unzip pagekit-1.0.13.zip
rm pagekit-1.0.13.zip
Change ownership of the /var/www/pagekit
directory to nginx
.
sudo chown -R nginx:nginx /var/www/pagekit
Open /etc/php-fpm.d/www.conf
file and set user and group to nginx
.
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Save the file and restart php-fpm.service
.
sudo systemctl restart php-fpm.service
The final step is to open your domain/IP in the web browser and follow the Pagekit CMS installation wizard.
You now have Pagekit installed on your CentOS 7 server. To access the admin area of Pagekit CMS just append /admin
to your site’s IP/URL.
Want to contribute?
You could earn up to $300 by adding new articles
Suggest an update
Request an article