Free VPS Control Panel – Installing Virtualmin on Ubuntu 11.10 Desktop
In my time as a web developer, I have really learned that knowing how to set up your own home VPS is essential. It allows you to develop any number of websites for no costs, do it really quickly as you’re on a local LAN, and it teaches you a little server admin too.
I run anywhere between three and six virtual private server at any given time, and am currently working on my first Eucalyptus Cloud using Ubuntu Cloud Server, one netbook and one Dedicated Box all at my home network. Why? Just to see if I can do it on a small scale before attempting to build SkyNet –Muahahahahahaha!!!!
Anyway, This post are my notes for installing Virtualmin Control Panel on to Ubuntu Desktop 11.10. The regular Virtualmin .sh install script will fail every single time with out taking these steps.
I am using Ubuntu Desktop 11.10 which is, at the time of this writing, the latest released version. I am using the desktop edition because I am installing the full server on to my Toshiba Netbook so it can double as a webserver while I still use the regular user interface. This allows for a very powerful mobile development package –no internet connection needed! The N450 Processor is not capable of handling any sort of virtualization, so I had a choice of installing Xampp or a full webserver
(Did I mention that the netbook is also a Eucalyptus Cloud controller?)
So, on to the good stuff:
Become Root:
user@ubuntu:~$ sudo -s
[sudo] password for user: your-password
root@ubuntu:~#
Add Webmin/Virtualmin Repositories and GPG Keys
To install the repos and keys, add the keys to the /etc/apt/sources.list file. First make a backup, just in case. then use “nano” or another editor to insert the three repos into the sources list. read more
Ong Tao, Red Envelopes, Fever Dreams: A New Years Not My Own
On the most important of days, in a land I cannot remember, traditions and culture reach a most revered point in the year. Tet – Vietnamese New Year is a time of renewal and refresh. The quintessential aromas of traditional Vietnamese foods fill the narrow streets from street-side vendors and restaurants alike. Homes are cleaned, people wear new clothes and debts from the previous year paid. Ubiquitous red traditional decorations appear, adorning the entryways of houses, a general bustle on the streets reaches an all-time high, the stores are full of shoppers making purchases for the new year, and young children eagerly await the famed “red envelope” containing money for the new year.
Sometime in my life, I want to return to experience Tet for myself –breath the air, eat the foods and reacquaint myself with a past that is tucked away in my infant memory. What does real Pho taste like? What does a bustling Saigon marketplace feel like? What does Saigon smell like? What is it that people who’ve been there fall in love with and makes them want to return? When I do go, will I have some kind of flash-back? Will I remember some lost memory? A place or face perhaps? –clues to a past life that were locked away amidst death, destruction and untold horrors that only resurface in recurring nightmares that still haunt me? Watching children executed. Women taken into huts screaming, never to exit. Faceless ghosts from a past that can only be unlocked with fever dreams and nightmares. Jarring awake, drenched in sweat with that cold piercing fear and sorrow that is unfathomable to those who have not experienced war.
It has been 37 years since my departure. A visit is long overdue for this prodigal son. Not the first and surely not the last to wonder what life had been and what it could have been, however unlike many, it isn’t a “lost parent” searching mission. My parents are here, and for me, they always have been. I want to experience the life, smells, sounds and all that culminates to identify me as “Vietnamese”. A deep search for many of us adoptees. We are living lives between two worlds, belonging to neither — an unsettling and uncomforting feeling to be sure. Around “my people”, I am not one of them. I cannot speak or understand, yet from the outside, I look like them and am identified as one of them.
I am an adoptee.
Vietnamese / Adoption Links of Interest
- Vietnam Online -Tet
- Family Culture – Tet
- Rosemary Taylor – FFAC
- Friends For All Children
- Adopt Vietnam
- Operation Babylift (1975)
- C-5 Galaxy Crash (4/4/1975)
- Mam Non Organization (Ann Arbor, MI)
Set up MindTouch (MediaWiki Fork) on Amazon EC2 – Complete Instructions
Every now and then, there’s a situation where I’ve said,”There should be a Wiki for that!“. Sure, I could set one up at wikipedia or something, but there’s something really cool about owning your own site, and as a web developer, I should just build it right?
MindTouch is a mediawiki fork geared for social authoring.
A post over at Server Cobra has got to be one of the best tutorials I have ever seen. The blog is written by Josh Gachnang, a small business consultant with IT experience. He runs cloud servers from his house, and is an accomplished web developer in both web and mobile tech.
Read the article here:
http://www.servercobra.com/building-a-web-server-on-amazons-ec2/
Foodies, Angry Birds and Norman Rockwell
![]()
A tired man once said, “There is no greater joy than to come home.”
The greeting of family, reunited after a day’s work around the dinner table to reconnect and enjoy close company, a vision from a Norman Rockwell painting perhaps, a reality for a precious few in this era of mobile living, ultra high speed internet, and Google. For me, it was the smell of a real home cooked meal simmering in delicious anticipation of my arrival, the scent of flavorful and robust spices– sage, oregano, thyme and other subtle smells hanging delectably throughout the kitchen.

A Calvin and Hobbes reference here would have been extremely funny, but there was no big orange tiger bowling me over as I opened the door. The intensely flavorful aromas of herbs and caramelized goodness, however, had much the same effect on this tired father and husband in a most warming and pleasing way.
She looks up amidst steam and mouth watering vapors at my tired presence and waves me to the table. “Dinner’s ready.” The children, pausing momentarily from mischief and mayhem come running for hugs and kisses as I set my bag down on the floor.

The living room is being used as an epic and climatic battleground between bird and pig as the boys lob Angry Birds at green pigs on the couch. There are four “dead” birds (or the soon to be re-thrown ‘remains’ of) laying upside down on the floor. Two victorious pigs sit on the couch, having vanquished the aerial assault, which leads me to believe that they’ll be eating just as good as us tonight (Perhaps egg salad sandwiches?)
Oh, what yummy goodness are we to indulge in tonight?
It started with caramelized onions and garlic to create intense flavors I am so much in love with. Next to go in is chicken and spices. She places it on top of the bed and allows it to simmer and gain flavor while I am on the long drive home from work. It simmers in spaghetti sauce until I walk through the door. Spinach and provolone cheese are placed on top of this spectacular homage to the food gods.
A wife demonstrates her love through food, bird holocaust in the living room, and future cook watching mommy… If only Norman Rockwell could see this!
Kloxo Password Reset from SSH Command Line
This server runs Lighttpd rather than resource heavy Apache, and almost everything is config’d for a low memory situation. The box that I run this on has 220MB of Dedicated RAM through XEN virtualization. It is a CentOS5 VPS with the Kloxo “Host in a Box” (HIB) control panel. Using this deployment, the VPS sits at just 45-55MB RAM, and I run two production and three development sites here!
How to reset your Kloxo Admin password
On nearly every install that I have done when I deploy the CentOS/Kloxo HIB, the admin password is not the default “admin” as the LX Center’s support says it should be. I have no idea what the hosting company set it to in the server image, so I had to figure out how to get into my Control Panel…
Turns out, you can just open your SSH client and run the following at the command line:
/script/update –class=client –name=admin –subaction=password –v-password=YOURNEWPASS
Where YOURNEWPASS is what you want your new password to be. Now you can login without problems!
A2 Hosting out of Ann Arbor, MI has the CentOS/Kloxo HIB deployable image. Since they’re local and a reliable host, I do recommend them.
If you’re looking for a great deal on a small VPS to mess around with, Chad at A2 Hosting just informed me of the deal they’re running on the “CORE” VPS plan:
- CORE plan sign up link
- 256MB RAM
- 512MB Burst
- 10GB HDD space
- 300GB transfer
- $9.35 first month after a 33% discount if you use coupon code “2012“
The discount applies to the first month, $13.95 thereafter.
Lunch for Less than $1 that feeds a family of 5
In my quest for finding cheap, but good eats for my family, I created the ultimate Cheap Lunch today!
Ramen has always been a staple food group for our youth and bachlors. Often purchased for $0.25 per pack or less, it provides filling sustenance that lasts for a few hours.
In many cases, this diva of frugality is often joined by that oh, so quintessential “redemption in a bottle” known also as beer.
Today, however, I created this bowl of cheap goodness for Ji, the kids and I by doing the following:
Three packs of Ramen noodles- $0.15 each
Frozen mixed veggies
Green onion $0.10
Carrots and white onion
In a pot, pan or wok (whatever you have to cook in), boil six cups of water. Add 2 tsb of Soy sauce as it comes to a boil.
Next throw in the frozen veggies, onion and carrot slices along with the noodles.
Let boil for one minute and turn off heat. You’ll want to let it stand, covered for roughly three minutes more to cook well.
Serve and eat right away.
I estimate that this meal cost under a dollar given that I was reusing a lot of the foods that I previously bought and still had available. Not bad for a buck!
January in Michigan and it’s 45 degrees!
I cannot believe the nice weather we’re having this winter. Part of me is thinking that we’re going to pay for it later on, but the kids are enjoying it!
Alex is riding his new scooter he got for Christmas as I write this post. It’s really cool cause it has a skid plate that makes sparks as you brake!
Andrew is up to his favorite outdoor past time of hunting for worms, and Izzy is just trying to keep up with her older siblings.

45 in Michigan!
It’s Live! – Setting Up a WordPress Blog
I have been trying to figure out a good way to make my notes for WordPress site building accessible anywhere I’m at. Sure, Evernote works great, but why keep all that good information to myself? I decided to share it with the world. What better way than on a WordPress site?
I built the site from the ground up in a little under an hour with three initial posts completed. For you who are interested in the nuts and bolts, I run WordPress 3.3.1 on a very small RackSpace Cloud Server (256MB RAM, 10GB HDD, 100mbps Uplink, Cloud redundancy)
These are (and will be) mostly my notes that I have saved through out my time as a Web Developer, and many of the notes were created while I was making the “Sunset at the Zoo” site.
Go to Setting up a WordPress Blog now.
Configure Server Time to your Local Time
When you purchase a new Virtual Private Server (VPS), chances are that it might have a different time than the time zone you are located in. You can check this by typing “date” into the SSH client’s command line.
Having the server time match your location time zone is extremely important for a number of reasons:
- Timed tasks on the server level (cronjobs)
- Future scheduling of blog posts
- server backup synchronization through rsync…
Basically anything to do with a time sensitive process.
Assuming that you are using either Debian or Ubuntu, you can download a small sync file that will take care of making sure you’re times are synchronized for your timezone, but first we must set the server time.
In the command line, type:
# sudo aptitude install tzdata -y
TZdata will now download and install itself.
Next, to set your server’s time zone, enter the following on the command line:
# dpkg-reconfigure tzdata
This will take you to a really simple selector where you chose first region, then country, and finally stat/providence/location.
It’s that easy!
Synchronization with the NTP servers
First, install NTPDate:
# sudo aptitude install ntpdate –y
Check to see if you have the synchronization file needed for auto sync
# ls /etc/ntp.conf
If you get an error that the file cannot be found, follow these two steps:
# touch /etc/ntp.conf
# nano /etc/ntp.conf
The nano command will open a blank page. cut and paste the following into the window:
driftfile /var/lib/ntp/ntp.drift
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server pool.ntp.org
Now do the update:
# ntpdate pool.ntp.org
or one of the servers in the pool you just created in the ntp.conf file.
# ntpdate 0.pool.ntp.org
Lighttpd – WordPress URL Rewrite Rules
How to get rid of “index.php” from your WordPress URLs
I had an interesting situation while I was building another WordPress site on a low memory VPS. The Virtual Private Server had only 192MB of ram, so in order to maximize resources, I used Lighttpd rather than Apache. I also optimized MySQL for the same reason.
The interesting thing was that I was seeing “index.php” thrown into my URL structure. So instead of seeing something like http://sonkoral.com/post-title-here, I was getting http://sonkoral.com/index.php/post-title-here.
Although it really doesn’t harm the way the site works, I really wanted a “pretty url” structure for the site.
WordPress, I found out does not supply the rewrite rules for Lighttpd as it does for Apache and Apache2, so you have some extra configuration to accomplish the same thing.
First, enter the lighttpd folder and create the /etc/lighthttpd/wpmu-rewrite.conf file required.
# cd /etc/lighttpd
# touch /etc/lighttpd/wpmu-rewrite.conf
# nano /etc/lighthttpd/wpmu-rewrite.conf
Paste this into the file:
server.error-handler-404 = “/index.php”
url.rewrite-once = (
“^/(.*/)?files/$” => “/index.php”,
“^/(.*/)?files/(.*)” => “/wp-content/blogs.php?file=$2?,
“^(/wp-admin/.*)” => “$1?,
“^/([_0-9a-zA-Z-]+/)?(wp-.*)” => “/$2?,
“^/([_0-9a-zA-Z-]+/)?(.*\.php)$” => “/$2?,
)
Save the file by entering in sequence: ctrl-x, Y, enter key.
Now, edit /etc/lighttpd/lighttpd.conf, by placing the following at the end of the file. Note to change “domain\.com and domain.com to your domain name.
# nano /etc/lighttpd/lighttpd.conf
$HTTP["host"] =~ “domain\.com” {
simple-vhost.default-host = “domain.com”
include “wpmu-rewrite.conf”
}
Save the file by entering in sequence: ctrl-x, Y, enter key.
Finally you have to copy /etc/lighttpd/conf-available/10-fastcgi.conf to /etc/lighttpd/conf-enabled and restart lighttpd.
# cp /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-enabled
# /etc/init.d/lighttpd restart
At this point, go to the wordpress dashboard, to settings, permalinks and choose custom. if /index.php shows up in the text field, remove it: /index.php/%year%/%monthnum%/%day%/%postname%/ to /%year%/%monthnum%/%day%/%postname%/.
That’s it! You now have pretty URLs for your WordPress website on a Cheap VPS running Lighttpd and MySql!
Cheers!

skoral








