Install Pagekit CMS on an Ubuntu VPS

[(none)]Today we will go through the process of installing Pagekit CMS on an [(none)] VPS with [(none)] and MariaDB. Pagekit is a modern CMS, written in PHP on top of Symfony components and modern open source libraries. Pagekit uses its own templating engine called Razr and Markdown formatting.
This should work on other Linux VPS systems as well but was tested and written for [(none)] 14.04.


Update the system and install necessary packages.

[email protected]:~# apt-get -y update && apt-get -y upgrade
[email protected]:~# apt-get install software-properties-common python-software-properties git curl

Install PHP and Nginx

apt-get install nginx php5-fpm php5-cli php5-mysql php5-curl

Install Composer

[email protected]:~# curl -sS | php
[email protected]:~# mv composer.phar /usr/local/bin/composer

Clone the git repository

Create a root directory for your web site and clone the git repository from github

[email protected]:~# mkdir -p /var/www/{public_html,logs}
[email protected]:~# git clone git:// /var/www/
[email protected]:~# cd /var/www/
[email protected]:~# composer install

Install MariaDB and create a database.

[email protected]:~#  apt-key adv --recv-keys --keyserver hkp:// 0xcbcb082a1bb943db
[email protected]:~# add-apt-repository 'deb trusty main'
[email protected]:~# apt-get -y update
[email protected]:~# echo -e "Package: *nPin: origin ftp.osuosl.orgnPin-Priority: 1000" | tee /etc/apt/preferences.d/mariadb
[email protected]:~# apt-get install mariadb-server
[email protected]:~# mysql -uroot -p
MariaDB [(none)]> create database pagekit;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON pagekit.* TO 'pagekit'@'localhost' IDENTIFIED BY 'pagekitPassword';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> q

Nginx configuration

Create a new [(none)] server block with the following content

[email protected]:~# cat <<'EOF' > /etc/nginx/sites-available/
server {
    listen 80;
    root /var/www/;
    access_log /var/www/;
    error_log /var/www/;
    index index.php;
    location / {
        try_files $uri $uri/ /index.php?$args;
    location ~* .(?:ico|css|js|gif|jpe?g|png|ttf|woff)$ {
        access_log off;
        expires 30d;
        add_header Pragma public;
        add_header Cache-Control "public, mustrevalidate, proxy-revalidate";
    location ~ .php$ {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_keep_conn on;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    location ~ /.ht {
        deny all;

Symlink it and restart the server

[email protected]:~# ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/
[email protected]:~# /etc/init.d/nginx restart

Set the correct permissions

[email protected]:~# chown -R www-data: /var/www/

Finally, open your browser and run the Pagekit installation process.

For more information about how to manage your Pagekit installation, please refer to the Pagekit website.


Leave a Reply