Static Blog

We are in 2015 but we still have problems with blogging, at least I have problems. What I am looking for:

  • Simple WYSIWYG editor to write posts
  • Simple GUI to manage current posts
  • Different themes to select or at least easily customize a theme
  • To get static html version of whole blog
  • Html version should work seamless in a simple server (no PHP, or database support required)
  • A bonus feature, automatically update web site when I change local version (auto export and deploy)

Unfortunately, I couldn’t find any product/service satisfying these conditions. There are lots of Jekyll like products but obviously they are failing to match first two conditions. They are not user friendly, I don’t want to deal with technical things to write a simple blog post. At the other side of spectrum, there are lots of easy web site generator services. However mostly they are closed and I don’t want to depend on a closed service. After trying lots of service/product I settled on again WordPress with HTML Output plugin. It is an old plugin but it is working.


Install a local WordPress in your PC, install HTML Output plugin, customize your theme, write your posts, export, update to server. It is not that complicated. In future, I will try to automatize export and update process, but for now lets follow the “simple is better” principle.

Rediska Instance Problem

I am building a task module, to do time consuming jobs in background. A worker instance is constantly pooling redis db for a new task. However after first connection, somehow rediska (a php redis client) closes connection, and when I make query to db, it automatically creates a new connection using default settings. At this point new connection is not using the settings in the configuration. It is using hard coded default values. I don’t know why it is doing this but here is the solution.

Whenever you use a rediska key, explicitly tell the instance name you want to use.
$option = array("rediska"=>"use_this_instance_name");
$pointer = new Rediska_Key("job:$index:pointer",$option);

To define aforementioned rediska instance:

$options = array (
                    'addToManager' => true,
                    'name'         => "use_this_instance_name",
                    'namespace'    => '',
                    'servers'      => array(
                            'host'   => Rediska_Connection::DEFAULT_HOST,
                            'port'   => Rediska_Connection::DEFAULT_PORT,
                            'weight' => Rediska_Connection::DEFAULT_WEIGHT,
$redis = new Rediska($options);

Changing Centos Console Resolution

If you are using centos in a virtual machine or a local machine you may want to change to console resolution so that you see more than 80×25 screen. For this, you need to modify the kernel line.

vi /boot/grub/grub.conf

add/change vga parameter

kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ vga=0x31A

That will set the resolution to 1280×1024. For a list of possible vga codes see

Vi Color

Default vi that comes with fresh Centos 5 install may not have color support. Adding color support is easy.
Install necessary libraries.

yum install vim-common vim-enhanced

Add an alias to use vim for vi command.
Open bash file

vi ~/.bashrc

add following line

alias vi=vim

restart shell

source ~/.bashrc

That is it!

Nginx 1.010 + PHP 5.3.8 (on Centos 5.7)

Installing nginx is straightforward, so I will not go into details, just check the nginx documentation for more.

First create a repo file.

vi /etc/yum.repos.d/nginx.repo

and add following content to repo file:

name=nginx repo

To install php 5.3.8 we need extra repos (source article).

## Remi Dependency on CentOS 5 and Red Hat (RHEL) 5 ##
rpm -Uvh
## CentOS 5 and Red Hat (RHEL) 5 ## 
rpm -Uvh

Install using added repos.

yum --enablerepo=remi install nginx php php-fpm php-common

Install necessary php modules for you.

yum --enablerepo=remi install php-pear

Start Nginx

/etc/init.d/nginx start ## use restart after update
## OR ##
service nginx start ## use restart after update


/etc/init.d/php-fpm start ## use restart after update
## OR ##
service php-fpm start ## use restart after update

Autostart Nginx on boot

chkconfig --add nginx
chkconfig --levels 235 nginx on
#Autostart PHP-FPM on boot
chkconfig --add php-fpm
chkconfig --levels 235 php-fpm on

Now it is time to configure nginx to work with php.

vi /etc/nginx/conf.d/test.conf

put these lines into file.

server {
    access_log /var/logs/nginx/example.access.log;
    error_log /var/logs/nginx/example.error.log;
    root /var/www/example;
    location / {
        index index.html index.htm index.php;
    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/example$fastcgi_script_name;

restart nginx

service nginx restart

create an index file to test.

vi /var/www/example/index.php
<?php phpinfo(); ?>

Easy Install Mercurial on Centos 5

Mercurial may not be present in default repo that comes with a fresh Centos 5 install. Adding RPMForge repo should solve the problem. I will copy paste necessary section from Centos wiki:

Download the rpmforge-release package. Choose one of the two links below, selecting to match your host’s architecture. If you are unsure of which one to use you can check your architecture with the command uname -i

for i386 :


for x86_64:


The preferred rpmforge-release package to retrieve and to install in order to enable that repository is one of the two listed above.

Install DAG’s GPG key

rpm --import

Verify the package you have downloaded

rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm

Security warning: The rpmforge-release package imports GPG keys into your RPM database. As long as you have verified the md5sum of the key injection package, and trust Dag, et al., then it should be as safe as your trust of them extends.

Install the package

rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm

This will add a yum repository config file and import the appropriate GPG keys.
Then try to install something like this

yum install mercurial

it is done.