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)

Continue reading

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(
                        array(
                            'host'   => Rediska_Connection::DEFAULT_HOST,
                            'port'   => Rediska_Connection::DEFAULT_PORT,
                            'weight' => Rediska_Connection::DEFAULT_WEIGHT,
                            'db'=>2,
                            'persistent'=>TRUE,
                            'timeout'=>0
                            
                        )
                    )  
                );
$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

reboot
That will set the resolution to 1280×1024. For a list of possible vga codes see http://wiki.antlinux.com/pmwiki.php?n=HowTos.VgaModes

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:

CentOS
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

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

## Remi Dependency on CentOS 5 and Red Hat (RHEL) 5 ##
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
 
## CentOS 5 and Red Hat (RHEL) 5 ## 
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

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

Start PHP-FPM

/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 {
    server_name example.net;
    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_pass  127.0.0.1:9000;
        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 :

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

for x86_64:

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

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 http://apt.sw.be/RPM-GPG-KEY.dag.txt

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.