How to install PHP 7 GA on CentOs Server

One of blogger in my town came and ask me to help him with his server. Actually his server is enough to handle his wordpress blog but he don’t know what to do. I suggest him to upgrade his server or reinstall server to support latest PHP 7. I told him that newest PHP is twice fast as legacy PHP that he use. I promise to show him the steps and put it public. Maybe other blogger need and find it useful too.

Lets get start!

I use DigitalOcean VPS (1GB package) – You get free $10 if you’re new user.

Choose CentOS 6.7 64 bit with 1 GB memory.

Login to vps and install :

# curl -O && chmod 0700 && bash

Wait till you see # sign . Follow by type

# centmin More

Install PHP 7 and Apache22 on DragonFlyBSD 4.2.4

Using current machine but get faster performance by only upgrade software is a good offer. That feel happen to me when I hear about php 7 release. Being curious I decide to use latest dragonflybsd (at this moment 4.2.4) as pilot project for new hosting infrastructure platform.

Lets get start!

# uname -a

DragonFly 4.2-RELEASE DragonFly v4.2.4-RELEASE #6: Sun Aug 9 13:25:14 EDT 2015 x86_64

# pkg info

bind-tools-9.10.2P3 Command line tools from BIND: delv, dig, host, nslookup…
ca_root_nss-3.19.2 Root certificate bundle from the Mozilla Project
cdrtools-3.00_2 CD/DVD/BluRay and ISO-9660 image creation and extraction tools
curl-7.43.0_2 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
cvsps-2.1_1 Create patchset information from CVS
expat-2.1.0_2 XML 1.0 parser written in C
gettext-runtime-0.19.4 GNU gettext runtime libraries and programs
git-2.4.6 Distributed source code management tool
idnkit-1.0_5 Library to handle internationalized domain names
indexinfo-0.2.3 Utility to regenerate the GNU info page index
isc-dhcp42-server-4.2.8_1 ISC Dynamic Host Configuration Protocol server
krb5-1.13.2_2 Authentication system developed at MIT, successor to Kerberos IV
libxml2-2.9.2_3 XML parser library for GNOME
pkg-1.5.5 Package manager More

VPS run out of space after apt-get upgrade

Yes, updraft plus plugin complain about space left. Needed 24 MB but less than that available.

Quick search lead me to problem that occur after apt-get upgrade.

# df -H

Filesystem Size Used Avail Use% Mounted on
/dev/vda1 16G 15G 296M 99% /
udev 385M 13k 385M 1% /dev
tmpfs 79M 254k 79M 1% /run
none 5.3M 0 5.3M 0% /run/lock
none 393M 0 393M 0% /run/shm


# apt-get install -f

Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
linux-headers-3.2.0-93-generic-pae linux-headers-3.2.0-88-generic-pae linux-headers-3.2.0-90-generic-pae linux-headers-3.2.0-85-generic-pae linux-headers-3.2.0-70
linux-headers-3.2.0-72 linux-headers-3.2.0-73 linux-headers-3.2.0-74 linux-headers-3.2.0-80 linux-headers-3.2.0-75 linux-headers-3.2.0-76 linux-headers-3.2.0-82
linux-headers-3.2.0-77 linux-headers-3.2.0-83 linux-headers-3.2.0-84 linux-headers-3.2.0-79 linux-headers-3.2.0-90 linux-headers-3.2.0-85 linux-headers-3.2.0-91
linux-headers-3.2.0-86 linux-headers-3.2.0-92 linux-headers-3.2.0-87 linux-headers-3.2.0-93 linux-headers-3.2.0-88 linux-headers-3.2.0-89
linux-headers-3.2.0-82-generic-pae linux-headers-3.2.0-77-generic-pae linux-headers-3.2.0-72-generic-pae libluajit-5.1-common linux-headers-3.2.0-89-generic-pae
linux-headers-3.2.0-91-generic-pae linux-headers-3.2.0-86-generic-pae libluajit-5.1-2 linux-headers-3.2.0-83-generic-pae linux-headers-3.2.0-80-generic-pae
linux-headers-3.2.0-75-generic-pae linux-headers-3.2.0-73-generic-pae linux-headers-3.2.0-70-generic-pae linux-headers-3.2.0-92-generic-pae
linux-headers-3.2.0-87-generic-pae linux-headers-3.2.0-84-generic-pae linux-headers-3.2.0-79-generic-pae linux-headers-3.2.0-76-generic-pae
Use ‘apt-get autoremove’ to remove them.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
root@install:/var/log# apt-get autoremove
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be REMOVED:
libluajit-5.1-2 libluajit-5.1-common linux-headers-3.2.0-70 linux-headers-3.2.0-70-generic-pae linux-headers-3.2.0-72 linux-headers-3.2.0-72-generic-pae
linux-headers-3.2.0-73 linux-headers-3.2.0-73-generic-pae linux-headers-3.2.0-74 linux-headers-3.2.0-74-generic-pae linux-headers-3.2.0-75
linux-headers-3.2.0-75-generic-pae linux-headers-3.2.0-76 linux-headers-3.2.0-76-generic-pae linux-headers-3.2.0-77 linux-headers-3.2.0-77-generic-pae
linux-headers-3.2.0-79 linux-headers-3.2.0-79-generic-pae linux-headers-3.2.0-80 linux-headers-3.2.0-80-generic-pae linux-headers-3.2.0-82
linux-headers-3.2.0-82-generic-pae linux-headers-3.2.0-83 linux-headers-3.2.0-83-generic-pae linux-headers-3.2.0-84 linux-headers-3.2.0-84-generic-pae
linux-headers-3.2.0-85 linux-headers-3.2.0-85-generic-pae linux-headers-3.2.0-86 linux-headers-3.2.0-86-generic-pae linux-headers-3.2.0-87
linux-headers-3.2.0-87-generic-pae linux-headers-3.2.0-88 linux-headers-3.2.0-88-generic-pae linux-headers-3.2.0-89 linux-headers-3.2.0-89-generic-pae
linux-headers-3.2.0-90 linux-headers-3.2.0-90-generic-pae linux-headers-3.2.0-91 linux-headers-3.2.0-91-generic-pae linux-headers-3.2.0-92
linux-headers-3.2.0-92-generic-pae linux-headers-3.2.0-93 linux-headers-3.2.0-93-generic-pae
0 upgraded, 0 newly installed, 44 to remove and 1 not upgraded.
After this operation, 1425 MB disk space will be freed.
Do you want to continue [Y/n]? y
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_TIME = “id_ID.UTF-8”,
LC_NAME = “id_ID.UTF-8”,
LC_PAPER = “id_ID.UTF-8”,
LANG = “en_US.UTF-8”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database … 642426 files and directories currently installed.)
Removing libluajit-5.1-2 …
Removing libluajit-5.1-common …
Removing linux-headers-3.2.0-70-generic-pae …
Removing linux-headers-3.2.0-70 …
Removing linux-headers-3.2.0-72-generic-pae …
Removing linux-headers-3.2.0-72 …
Removing linux-headers-3.2.0-73-generic-pae …
Removing linux-headers-3.2.0-73 …
Removing linux-headers-3.2.0-74-generic-pae …
Removing linux-headers-3.2.0-74 …
Removing linux-headers-3.2.0-75-generic-pae …
Removing linux-headers-3.2.0-75 …
Removing linux-headers-3.2.0-76-generic-pae …
Removing linux-headers-3.2.0-76 …
Removing linux-headers-3.2.0-77-generic-pae …
Removing linux-headers-3.2.0-77 …
Removing linux-headers-3.2.0-79-generic-pae …
Removing linux-headers-3.2.0-79 …
Removing linux-headers-3.2.0-80-generic-pae …
Removing linux-headers-3.2.0-80 …
Removing linux-headers-3.2.0-82-generic-pae …
Removing linux-headers-3.2.0-82 …
Removing linux-headers-3.2.0-83-generic-pae …
Removing linux-headers-3.2.0-83 …
Removing linux-headers-3.2.0-84-generic-pae …
Removing linux-headers-3.2.0-84 …
Removing linux-headers-3.2.0-85-generic-pae …
Removing linux-headers-3.2.0-85 …
Removing linux-headers-3.2.0-86-generic-pae …
Removing linux-headers-3.2.0-86 …
Removing linux-headers-3.2.0-87-generic-pae …
Removing linux-headers-3.2.0-87 …
Removing linux-headers-3.2.0-88-generic-pae …
Removing linux-headers-3.2.0-88 …
Removing linux-headers-3.2.0-89-generic-pae …
Removing linux-headers-3.2.0-89 …
Removing linux-headers-3.2.0-90-generic-pae …
Removing linux-headers-3.2.0-90 …
Removing linux-headers-3.2.0-91-generic-pae …
Removing linux-headers-3.2.0-91 …
Removing linux-headers-3.2.0-92-generic-pae …
Removing linux-headers-3.2.0-92 …
Removing linux-headers-3.2.0-93-generic-pae …
Removing linux-headers-3.2.0-93 …
Processing triggers for libc-bin …
ldconfig deferred processing now taking place

# df -H

Filesystem Size Used Avail Use% Mounted on
/dev/vda1 16G 12G 4.1G 74% /
udev 385M 13k 385M 1% /dev
tmpfs 79M 254k 79M 1% /run
none 5.3M 0 5.3M 0% /run/lock
none 393M 0 393M 0% /run/shm


Wow, huge saver :-)

Fix Crawl 404 Error on Google Search Console

I just find out that one of my blog got hacked. The intruder put a file in wp-content directory and cause 404 error .


Wow, huge one (77,630) error.

What I’ve done to fix this error :

  1. Delete the page ; xx-data.php
  2. Select all error from google search console and click ‘Mark as Fixed’
  3. Request xx-data.php removal from Google index


Let see if I see another error. Will update this post soon.

Fix MySQL 113 error

Yesterday I got 113 error code from MySQL when I try to test access it from network.

The machine have 2 lan cards ( and Both of them are active and I can ping it.

# mysql -ualam -p -h
Enter password:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘’ (113)
# mysql -ualam -p -h
Enter password:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘’ (113)

After see the post about MySQL error codes . I find out that the problem might came from firewall.

Check current firewall state :

# cat /etc/sysconfig/iptables

# Generated by iptables-save v1.3.5 on Thu Aug 13 13:13:27 2015
:OUTPUT ACCEPT [389671:206304610]
:RH-Firewall-1-INPUT – [0:0]
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 8082 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -j RH-Firewall-1-INPUT
-A INPUT -i eth0 -p tcp -m tcp –dport 3306 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp –dport 3306 -j ACCEPT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -d -p udp -m udp –dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp –dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
# Completed on Thu Aug 13 13:13:27 2015

Well, this line :

-A INPUT -j RH-Firewall-1-INPUT

is the source of problem. Edit the order of rule and restart iptables.

# mysql -ualam -p -h
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6152
Server version: 5.1.58-log MySQL Community Server (GPL) by Utter Ramblings

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.


Mission accomplish :-)

Cpanel tip : Speed up your wordpress with proper PHP version

I don’t have much money for using expensive web hosting or vps or dedicated server for my wordpress blog. Is there any way to speed it up without touch plugin or something else?

Well, using cache is the best way to achieve blazing fast wordpress but one trick I found is using proper PHP version.

Yes, using latest PHP version is dead simple way to make wordpress faster.

By default cpanel user don’t get latest version, for example in my cpanel I see this :


For latest PHP version you can refer to site :

php-cpanel2As you can see there are 3 version :

  1. PHP 5.6.11
  2. PHP 5.5.27
  3. PHP 5.4.43

Since I use cpanel I can not compile nor install latest PHP version as I used to using VPS but I can use closest version to 5.6.11.

Click “select php version” under software and services menu.


By default native php (the ones that come with server operating system) will be shown.


Choose 5.6 from drop down and click save as current.


Of course you can choose extensions. Only use the one that you use. For example if you only use mysql then you need to disable pgsql (postgresql) from extension.

How do I know if I already use PHP 5.6?

Create new file using file manager facility and save it as coba.php with these lines :




save and open from web browser. If you see like this one then your previous configuration is working well.


Testing PHP 7 on Centos 7

PHP 7 already kick the door with its beta2 while HHVM shadow it :-)

I want to test it with CentOS 7 minimal installation and $5 quick vps installation let me in.

# yum update

# yum -y install nano

# nano /etc/yum.repos.d/php7-nightly.repo

put these lines (from zend).

name = PHP7 nightly by Zend Technologies
baseurl =

# yum -y install lynx httpd php7-nightly

# cp /usr/local/php7/ /etc/httpd/modules/

# systemctl enable httpd.service

# systemctl restart firewalld.service

# echo '<?php phpinfo();?>' > /var/www/html/info.php

# systemctl start httpd.service



Update : Recommended guide for production PHP 7 on CentOS server, click here.

How to enable phalcon php in cpanel shared hosting

Long time not see you guys :-) . Being busy with new toys called Phalcon PHP . Yes, this tool is very awesome in my opinion and I use it with my vps. Since this blog also run in vps so I just surprise when I see PhalconPHP also supported in cpanel hosting that I also use.

Yes, namecheap also enable PhalconPHP in their shared hosting package.

How do I know if PhalconPHP work in my cpanel?

Create simple file :

Login to cpanel and click ‘File Manager’ -> New File


Enter these lines :


save the file and access it online.

By default you will not see PhalConPHP extension enabled.

Change PHP version and enable PhalCon PHP extension for Cpanel

Click “Select PHP version”


Select PHP 5.5 and set this version as current.

Then choose ‘phalcon’ from extension supported list.



Click save.

Then you have working Phalcon PHP support.

Current usage in my namecheap account.



Time to fly with phalcon :-)





$5/month FreeBSD VPS experience

A reader shout me an email asking if I can share my experience around FreeBSD VPS that I use. Well that topic is not a fancy thing. I think that kind of topic will give user ‘bias’ opinion but since its my blog and my other reader might be want to know too then I try my best to share it.


The purpose of FreeBSD deployment in vps is based on experiment hobby. I use FreeBSD since 4.7 for email server (qmail, djbdns stuff). Another test for web server and php stuff also included.


I never care about which technology they use. Is it Xen or KVM. I’m cheapskate. I try the cheap one :-)



RootBSD is my first FreeBSD vps provider. I use their cheapest package ($19.97/month). 512MB memory with 20GB storage. Setup is not instant. I used to get my account information in minimum 4 hours after they verify payment etc. I never use their support and that means good. Great service make me never get in touch with their technical support :-) . Reverse dns available from control panel. Payment is fix. No hourly rate and you must pay in front for their service.


Their ads show up when I open Facebook and I give them a try. They have $1/month package (round up, its 0.99 actually). 256MB memory and 10GB SSD. I use it for VPN server . They have 4 location (usa-east, usa-central, usa-west and canada-east). Email port blocked by default. You have to request to technical support to lift the restriction. Their FreeBSD limited to FreeBSD 10 at the moment. No custom iso supported.


This provider is my favorite. At the moment provide 14 location and generous specs. By default they provide mainstream distribution such as CentOS, Ubuntu, Debian, Windows, CoreOS, FreeBSD 10 and more. You’ll get more distribution under 64 bit but you can choose 32 bit too. What I really like is their custom iso option. This mean you can install and experiment with many OS which not appear by default. So far I’ve tried :

Their cheapest price is $5/month and if you in limited budget you can use it hourly. Email port blocked by default and you need to contact support to remove the barrier.

Digital Ocean

This provider is my favorite when I looking for Singapore based location. Depend on my client need. But I ever see different network performance in same region. Same wordpresss based site located in same Singapore region and different IP (i think different server too) but very slow. My friend also report same experience. I choose to move slow server to USA location and so far it work well in term of network connectivity speed. Email port is not blocked by default which is good news for newbie who want to see their Zimbra server work or not. Digital Ocean recently support FreeBSD (FreeBSD 10.1) but still no custom iso. Their price also $5/month and hourly rate for minimal server (512MB, 20GB SSD). Yes, the storage is more 5GB than Vultr but memory is less 256MB than Vultr.


At the moment the uptime is great for all provider. The longest one located in Digital Ocean server :

# uptime
03:38:37 up 366 days, 23:37, 1 user, load average: 0.00, 0.00, 0.00

While Vultr follow

# uptime
03:39:53 up 51 days, 56 min, 1 user, load average: 0.16, 0.10, 0.08


# uptime
22:43:37 up 39 days, 19:04, 1 user, load average: 0.06, 0.03, 0.05

Yes, all of the server uptime currently match their deployment date.

In general my view about ‘cheap’ vps changed. I can deploy many server with low budget and spare the rest for balancing or backup purpose and Yes, it might use my favorite os ‘the power to serve’ :-)

WordPress and Cpanel main domain

Last Cyber Friday 2014 I got chance to try namecheap hosting. Its shared hosting package that normally priced $9,88/year . The price is only for 1st year but worth to try since I only got it for $0,98. The price is very good but since people often neglect it I prefer to act vice versa. I’ll use this hosting package for my family blog.

Domain and Sub Domain

The blog itself consist from :

1. Main domain

2. 4 sub domain but my wife told me to only activate 3 sub domain.


Size of family blog (main domain + all sub domain is around 500 MB) in zip format.

$ du -sh zip
508M    zip


The traffic is not big :

– less than 100 uv (unique visitor) for main domain

– less than 1000 uv for all sub domain (my wife blog is more famous than my blog hahaha). More

How to resolv looping error after change server

Hostingformula currently switch to cheap vps server. Old hosting provider using cpanel and everything went fine . Almost perfect in migration process except one thing.

I forgot about cloudflare.


Yes. I forgot if I enable cloudflare for this domain and the result is bad. Looping error caused by www mapping that set automatically by cloudflare kill this blog.

Solution for this kind of error is simple :

1. Disable cloudflare for your domain by visit cloudlfare or

2. Visit cpanel, click Simple DNS setting and ‘delete’ any entry related to cloudflare (see picture above for example).

How to test if the problem disappear?

Problem left after this action is dns propagation. You can install vpn software like hotspotshield or related to try visit your blog / website again.

3. Use intodns to verify the dns change. If intodns told you right ip address then you’re on right track.

4. Patient. Other problem left is client dns. Since you can not force client to use google or opendns for resolve your new server the only option is be patient.

How to move Joomla website to VPS

A friend of mine that not seen for years contact me. He had problem with his school website. Headmaster give him order to take care their website that seem to abandoned by current holder. Every time they (school) contact him. No respond and no email. He ask me to see it and if possible solve it immediately.

After ask the website hosting representative we have clues where do we must start.

  1. Create official letter from school about domain ownership.
  2. Scan the letter and send it to hosting company

The process itself is not straightforward as current holder respond to hosting company email and the phone but not respond to us. After a month the progress finally move to right direction. Current holder not paid for hosting fee and that’s the reason for my friend. Contact hosting company and finally they approve account moving and switching.

Since the hosting company suspend the account for its late payment then the website is not accessible anymore and only display ‘account suspended’ message. My friend ask me if I can give him temporary place for their school. I agree to give him a space with exchange. I must do the transfer process myself. I like to see how to transfer joomla based website to vps.

Lets get start!

Backup Joomla Website

Fortunately my friend already download the backup file. Its tar.gz file (backup-11.15.2014_11-29-19_domain.tar.gz ).

Send Joomla backup file to vps

After copying the file to my laptop I initiate transfer using scp.

scp backup-11.15.2014_11-29-19_domain.tar.gz root@ipaddress:/root

the process depend on internet speed and file size. For my case, it took around 1 hour to upload 132MB of file.

Creating New Domain on VPS

I use Easyengine that I use in previous post for host wordpress. Joomla also created with php and utilize mysql. So I choose php+mysql website.

# ee site schooldomainname --mysql

The command will generate all required files including database plus its credentials at /var/www/schooldomainname/ee-config.php

To see database name, database user database password and database host created by easyengine you can use :

cat /var/www/schooldomainname/ee-config.php

Extract Joomla Backup on VPS

I use same VPS that powered by Vultr for WordPress. Time for extract backup file.

# mv backup-11.15.2014_11-29-19_schooldomainname.tar.gz /var/www/schooldomainname/

# cd /var/www/schooldomainname/

# tar xvzf backup-11.15.2014_11-29-19_schooldomainname.tar.gz

# ls
addons     cron          fp              httpfiles  meta  mysql             pds              psql_users.sql    resellerpackages  shell      sslkeys      userdata  vf
bandwidth  digestshadow  has_sslstorage  locale     mm    mysql-timestamps  proftpdpasswd    quota             sds               ssl        suspended    va
counters   dnszones      homedir         logaholic  mma   mysql.sql         psql             resellerconfig    sds2              sslcerts   suspendinfo  vad
cp         domainkeys    homedir_paths   logs       mms   nobodyfiles       psql_grants.sql  resellerfeatures  shadow            ssldomain  userconfig   version

Looks like this backup file created by my friend taken from cpanel backup wizard.

I just need to find out where joomla files and its database located.

Finding Joomla Files + Database

After search for while I can see where is the location of Joomla files. Its in :


Database file located in :


Move Joomla folder to Easyengine public folder

Next step is move joomla folder found from previous step to easyengine folder.

#cd /var/www/schooldomainname

# mv backup-11.15.2014_11-29-19_schooldomainname/homedir/public_html .
# mv tes/backup-11.15.2014_11-29-19_schooldomainname/mysql/schooldomainname.sql .

Edit configuration file of Joomla

The configuration file located in configuration.php . Edit $user, $password and $db .

#nano htdocs/configuration.php

save the file.

Import Joomla Database File

# mysql -udb_user -p db_name < schooldomainname.sql
Enter password:

Make Joomla website live

# ee site enable schooldomainame

Thats it. Try to reload it via web browser and everything load fine so far.

My friend happy with the migration process. The load speed is incredible and they can add their content again and if they like it then they can make their own server with Vultr.

Lesson learned :

  1. Never use personal email address as contact, billing etc for school domain. Always use school email address. Beside this touch make everything official also prevent future problem like my friend case.
  2. If possible use the longest period for registering school domain. Yearly renewed domain is not suitable for a school.

How to move wordpress to easyengine based vps

Its almost the end of year. Many offer came and out include hosting. My friend just have her hosting account expire and the reason why she not continue her hosting plan is cost. She got her hosting package last year for $10 (from facebook group). The package cover free domain + 12 month of hosting and when renewal process came she can afford it. Its $104 now. Ten times from previous invoice. She already knew it and try to find other solution to keep her blog alive.

She already red my post about utilize vps. Her blog is using wordpress and she want to try it after she see my other blog that load blazing fast. I told her about Vultr and she could try it for cheapest package.

I promise her to help the migration process in exchange she let me share the process for reader (I won’t reveal domain name). Hope this useful for others.

Lets get start!

Backup WordPress

In general WordPress is PHP and MySQL application. To backup wordpress the step is quite simple.

1. Backup database

To see all database credentials see wp-config.php content and write it down to notepad or other equal application. I’m lucky the host provide ssh access. So I can use command line for quick access :-)

# cat wp-config.php

This command will display the content of wp-config.php . If you just want to extract the database essentials use this command : (my assumptions that you already log in with ssh). More

How to Install FreeBSD 10 32 bit on VPS

A reader send me an email. He ask about possibility of install FreeBSD 32 bit on VPS. He just confuse why Vultr not provide custom iso under 32 tab. He think Vultr not support it. I replied to him that he could test it himself. Upload iso file as usual and continue with installation. He not sure and ask me to try and if possible show the process in single post.

Well, I just remember myself when first time I learn install Redhat 6. I loss 4 month of worrying and afraid if fail. In reality it took 2 days for install FreeBSD 4.7 ( one day for download iso and burn it to CD and second day for read installation manual and applied it). I think Vultr is great one. They provide very flexible infrastructure and if I want to back to FreeBSD 4 I can do that too.

My student also free to experiment with their task only by using small 11 inch netbook. Remote to Vultr and free to test the configuration. Fast network and good CPU.

Lets get start!

Choose FreeBSD 10.1 Iso File

FreeBSD 10.1 was released and I want to try install FreeBSD 10.1 32 bit for this experiment.

There is two options available :

Since I’ll have a lot of bandwidth I use DVD version for upload it to custom isos list.

FreeBSD 10.1 iso in Vultr

Connect iso file in virtual iso section More

Cheap Forex VPS Do it Yourself Server

One of my reader shout me an email about his problem. He get free forex vps from his broker after he met required deposit amount but he got disappointed with the quality. Its low end vps that running Windows 2003 and restrict him on EA usage. He don’t know how his broker monitor his vps but when he try to use his VPS running EA for another broker the connection get worst and he got warning. He must utilize the server only for the broker who give him vps not for others. He already search for cheap forex vps but still not sure which one he must choose. Lightweight vps he ever try is not run anti virus and very minimal installation. Only Windows 2003 with built in IE browser. To many networking problem and maintenance force him to abandon his server.

Another consideration is Windows Server 2003 end of life that will happen on July 14, 2015. While newer version need more requirement that mean more money when you deploy newer Windows server. Yes, according to Microsoft Technet the requirement for Windows 2003 server is quite low (x86 based computer need 256 MB recommended minimum and 512 MB minimum for x64 based computer). I think that the only consideration why many forex vps provider out there still deploy this version.

Since he only need stable and cheap vps server for his forex activity he want me to give my opinion. Is he can build his own forex vps server that also easy to use like Windows. I agree to answer and promise him to make a post for his question when time permit. After 2 weeks when I have time I start test possibility of using other operating system other than Windows as Forex vps. I came with conclusion : Yes, he can. He can build his own server and I think the server is stable too. More

How to install Oracle Linux in VPS using custom iso

I used to use CentOS for linux based server, second option is Ubuntu server. Both option taken with consideration about their support. CentOS is free and always came out after Linux Redhat. Ubuntu also free and have their LTS policy that make feel confident deploying it to my server. The problem with CentOS is me actually. I must wait for long time till I get it released but it’s worth. Today, my friend who study in Europe ask me about Oracle Linux. I never know about it and I feel curious. Beside official support of software that required specific OS like HHVM that support Ubuntu server that make me choose Ubuntu server for smooth installation of HHVM then I’ll use CentOS first.

Same principle applied for Oracle Linux. Since Oracle own this OS then I think they have great support related to their product such Oracle database. Other sight I get from their release is not long after Linux Redhat released I see it (Oracle Linux) also come with their version.

In this post I’ll explore how to install oracle linux in vps using custom iso. Oracle linux version 6.6 that released on Oct 21 2014.


Upload oracle linux iso

I use vultr for this post. They provide custom iso facility that enable me for use iso link.

Using oracle linux iso file from here and upload it to Vultr.

How to install Oracle Linux in VPS using custom iso : upload custom iso of Oracle linux


How to recover email service (google apps) after downtime

One of our friend domain is down due to web hosting problem. Main domain of hosting service is not renewed at proper time and the contact person is not responding. Two things that need to get recovered:

1. Domain and email service

2. Website file and database

Since we don’t know where is the main host reside then nearest option we have is recover email service that fortunately using google apps. Another fortune we have is domain access is in my control so I can recover it quickly. Here the steps :

Update name server to new one

Since the domain registrar is namecheap I can easily use namecheap nameserver. Simply by click :

Domain Name -> Transfer DNS to Us

Change MX record to Google Apps setting

Click Host Management -> Mail Settingssetting google apps record on namecheap

Pick “User” and Choose “automatically set MX records necessary for Google Apps Email.

Save changes.

Click Save changes one more time.

choose mx record to point only for google apps

At this time namecheap will update mx record and user can relax now. Waiting for propagation time (maximum 3 x 24 hours).

You also able to verify setting by using intodns service.

Enter domain name and click report button. Pay attention for result, specially on MX section. If you also see like this one then everything is fine.

mx record result viewed from intodns side

Another work to do after this work is pointing A record to my vps for temporary service.

Fix hatom error (missing author, entry-title and updated) in live-wire wordpress theme

Another theme is need to fix after emphaino case. This time hatom error came to live-wire theme.

Quick fix for error :

1. Open Admin dashboard

2. Click Appearance -> Editor

Choose content.php

Fix missing:updated error and missing:author

find :

<?php echo apply_atomic_shortcode( ‘byline’, ‘<div class=”byline”>’ . __( ‘Published by [entry-author] on [entry-published] [entry-comments-link before=” | “] [entry-edit-link before=” | “]’, ‘live-wire’ ) . ‘</div>’ ); ?>

change into :

<span class=”vcard author post-author “><span class=”fn”><span class=”post-date updated”><?php echo apply_atomic_shortcode( ‘byline’, ‘<div class=”byline”>’ . __( ‘Published by [entry-author] on [entry-published] [entry-comments-link before=” | “] [entry-edit-link before=” | “]’, ‘live-wire’ ) . ‘</div>’ ); ?></span></span></span>

Fix missing:entry title error

find :

<?php echo apply_atomic_shortcode( ‘entry_title’, ‘[entry-title]’ ); ?>

change into :

<span class=”entry-title”><?php echo apply_atomic_shortcode( ‘entry_title’, ‘[entry-title]’ ); ?></span>

Click Update File.

Testing again via google webmaster snippet tools and voila, everything fine now.

How to fix hatom error in google webmaster tools : emphaino theme case

I used to visit google webmaster tools for checking error related to my blog. Update new theme, changing hosting, domain propagation sometime went bad after sometime. Google webmaster tools is my friend to detect such error.

When I log in to google webmaster tools I found “exclamation mark” next to “search appearance” of this domain.


Further click lead me to structured data error.

Wow, 191 item with error.


Click the number give me ore detail error about blog post that affected with that error.


Further check using richsnippets tools give me exact error.


Its seem that I only need to fix ‘updated’ error section. Raymondware give great explanation about other error that might encounter.

Solution :

Login to wordpress admin page :

1. Click Appearance -> Editor

By default you need to look for single.php and see the content.

Looking for ‘date’ section and wrap it with class “post-date-updated”. Unfortunately in my case ( I use Emphaino theme) I must digging more to find relevant php file that contain the target. Its in ‘content-single.php”.


Change :

<?php emphaino_posted_on(); ?>

Into :

<span class=”post-date updated”><?php emphaino_posted_on(); ?></span>

Save and retry look it up from richsnippet tools.


The error is gone now :-)

Softaculous Tips for WordPress Installation

wordpress_tips1Common problem that exist for ‘hack attack’ on wordpress are :

1. Old wordpress version

2. Using old theme

3. Using old plugins

Those 3 factors combined together and lead to ‘unstable’ self hosting wordpress.

Newest wordpress offer automatic upgrade for the version but you must do the rest (upgrading theme and plugins).

Those issue corrected by Softaculous. If you want to install new blog I suggest you to use these settings :

1. Database name : enter your blog name as component. ex, if your blog is about flower then fill flowerdb or mydbflower. It will save you from headache in the future.

2. Table prefix : enter shortname of your blog, ex: flo_ . Don’t use wp_ .

3. Use strong password. You can click ‘key’ icon next to admin password input.

4. Use advanced option. Make sure to check 3 options (auto upgrade, auto upgrade wordpress plugin and auto upgrade wordpress theme).

Using that setting will give you ‘health’ wordpress that give you long run blogging platform without worrying about late update action.

How about existing blog?

I’ll create separate post to explain it in step by step mode.

stay tune!