MySQL

Comment Relish Plugin + High CPU Usage – Fixed The Right Way

How The Problem Started Christmas Eve have just started at about 12:03 AM, when I logged on and saw that dreaded message: Your Account Has Exceeded Its CPU Quota So I did what all normal people do at first: I ignored it. Actually, I had a very good reason to at the time. Since it was 12:03 AM, I assumed that my nightly backup job (backup and compress files and databases) was causing the issue.

Finally We’ve Moved To DreamHost – Quality Web Hosting

MovingThis has been a long time in the making, but I’ve finally decided to move this blog (and a few other things I’m hosting) to DreamHost. Why DreamHost? Because they offer a great package, what can I say? I’ve been hosting at 1and1 for over a year, but after a few bad experiences, I’ve decided to move to something a bit more robust.

Although it’s not really fair to compare DreamHost to 1and1 Hosting, let’s give it a shot:

Cron Jobs

I use these for my MySQL backups. Download a nice PHP script and set up a cron job to run said script at a scheduled time. Without cron jobs, I have to go through the hoopla of running some PsuedoCron stuff, which basically runs a script if a user visits your website after the script has been scheduled to run. This is fine for small scripts, but didn’t really fly much for my database backups, since the poor sap that happened to trigger the script would have to sit and wait for it’s completion, as it would appear to be something the website was loading.

Ruby On Rails

After working so much with CakePHP, I can’t help but be curious. I really doubt that I’m going to jump ship, but it’s good to have an environment to play with.

Space and Bandwidth

You got 500 GB of disk space to play with, and 5.0 TB of monthly bandwidth. This is enough to host at least a few good sized sites under one account. The unlimited Domains makes this a breeze.

Web Development 2.0 Carnival – September 8, 2007

I am proud to present the first edition of Carnival of Web Development 2.0. This is my first time hosting one of these things, so enjoy: General Doug Boude presents DEMYSTIFYING JSON posted at Doug Boude (rhymes with ‘loud’) sylv3rblade presents Stages of Software Development posted at Atma Xplorer, saying, “My take on the process of software development” prakash presents A2Z Informative-Technology, Software, Internet, Tips, Ideas posted at A2Z Informative, saying, “Identifying the color code of an image on the screen is not an easy task.

XAMPP Lite on USB Disk – Benchmark PHP and MySQL by Slowing Down Your Server

To develop PHP and MySQL on a Windows machine, I usually use WAMP. I had tried XAMPP before, but I found that it was a bit bloated, with the OpenSSL and FTP Server, etc. So WAMP it was. But lately, I decided to give XAMPP another try and I like what I’ve got so far. For the past three weekends, I’ve been away from my personal computer. The only life line I’ve had is my stock of Portable Apps on my 512MB USB disk.

CakePHP Installation Guide: Just Add Water and 2 Medium Eggs

Introduction As you guys know, I’ve recently discovered the marvels of rapid web development with CakePHP. This shall be the first in a long serious of CakePHP related material coming from me since I’ve now veered off on a slightly different focus. After a short analysis, I’ve picked CakePHP as my framework of choice. I’ve been struggling through it for a few months now, but it’s by far better than the alternative of coding by hand (Yeah, I know I’m lazy).

New Domain: WebDevelopment2.com, New Focus: Frameworks, CakePHP, Javascript, Web 2.0

New Domain I has finally occurred to me that I should have gotten my own domain name a long time ago. Really, I don’t know what I was waiting for, but it was about time. Since my focus is Web 2.0, WebDevelopment2.com was an obvious choice. I’ve already written about moving wordpress to a different domain, so moving to this domain was walk in the park. I loaded up PhpMyAdmin and exported my database.

FeedBurner + Google search cache = Instant Blog Back Up

Recently, I’ve had a problem with a blog that I manage. Due to a server issue, the database was totally screwed up. It was weird. The first thing I noticed is that the posts for the last five (5) or so days were gone. I thought that some absent minded tech had inadvertently restored a previous backup. Then I noticed that not only posts were gone, but some settings reverted back to their original values.

Moving WordPress To A Different Domain

No, I’m not moving, not yet anyway. But Lava is. She scored a domain name which describes her blog so perfectly, that she couldn’t help but nab it up: HowISaveMoney.net. Now what are the odds that this domain would still be lying around?

Lava finally made the big step and “moved into her own place”. Moving domains is always such a hassle, but there are a few things that make the process a little bit easier. I was the Administrator during this move and I must say it was a little bit involved, but I think I got it done.

The Domain

The domain was purchase at 1and1.com. Why not NetSolutions, Yahoo, GoDaddy? Because they all have great promotional deals but then it’s upward of $8 to renew every year. 1and1 has a nice flat rate of $5.99 every year.

The host remained the same, since this particular hosts allows up to 10 domains pointing to it. All the files are simply dumped in a different sub folder. I both love and hate the idea of one consolidated host. It’s easier to manage: one login one set of administration and maintenance, cheaper than several different hosts. But if one sight goes down, they all go down. If a hacker gets into one, he damn well gets into all of them. The load on all of the sites is still very small and way under the allotted bandwidth limit. Most of them are blogs using WordPress and we all know what a small physical footprint WordPress leaves behind. If any one site seems to out grow things little family what it turns 18 or something, it will definitely be kicked out of the nest onto it’s on hosting package.

Copy Files

Now this should be the simple part. You copy everything into the folder that is going to house your new blog. There are a few minor changes that you might need to make. Depending on your previous setup you may need to edit the .htaccess file and change the RewriteBase option. But I do think that WordPress will configure it for you when you set up your permalink stuff.

One change that is necessary is editing your wp_config.php file. If you’re changing databases, you need to make the changes here. If you’re not changing databases you still need to make the changes to the table prefix. I forgot to mention that we still need to keep the old database active (details to come later).

Importing Large MySQL Databases – When phpMyAdmin Let’s You Down – Get BigDump

phpMyAdmin

phpMyAdmin is a beautiful tool. It let’s you administer a MySQL Database without all the messy commands. Also, some host don’t even allow you access to those messy commands. So, once again, it’s a beautiful tool. You can pull up a window and run individual SQL commands on the database or you can run an entire SQL script. It’s really great. There is a wonderful export tool that allows you to back up your Database as plain text SQL file or a file in GZip format. I have seen exported files get up to 10 MB compressed, which is over 100 MB decompressed, given that it’s just a plain text file.

Importing MySQL Database

But one thing that is lacking is a proper import procedure. Currently, you can import a database by pasting the SQL statements in a form and clicking submit, or by uploading an SQL file through your browser. Now that’s all well and good, but there are some problems with this method. The main problem is with timeouts. Of these there are two kinds, there are browser timeouts and server timeouts. The second problem is file size. Another limit, which you don’t often read about, is the phpMyAdmin configuration limit.

Browser TimeOuts

Browsers have a limited time that they can be busy waiting for response from the server and when doing a database import this is exactly what is happening. Your browser does a little work of uploading the file. After that it’s up to the server. So while your browser says it’s busy it really isn’t. It’s just waiting for the PHP script (phpMyAdmin) to get back to it and say it’s done. With large databases, this can take a time.

There are a couple ways to get around this. In Firefox you can go to about:config and look for the setting that deals with the browser timeouts. Honestly, I even forget what the exact property is. If you use Internet Explorer (well maybe you need to be punished) you’re out of luck, because as far as I know (which is not much about IE) I think you need to go into registry to do this. If you’re browser times out, it simply stops and kills the connection. With no active connection there script on the server comes to a halt.

Server PHP Script TimeOuts

Now let’s say you’ve gotten over the problem of the browser timeout. Good for you. Now you’re hit with something you may not have control over. A lot of shared hosts don’t allow you to modify their PHP configuration settings, for good reason. And a lot of servers have very fixed limits on the length of time that a script can run for. If this is less than what you’re file needs to run, then you’re once again out of luck. There is no work around for this though, sorry.

File Size Limit

Servers have a fixed limit with respect of the size of file that can be uploaded through the browser. Back in the day, it was stuck at 2 MB. Right now, I’ve seen them maxing out at about 8 MB on average. So what do you do if your export file is 10.5 MB? You’re out of luck, that’s what. Now why don’t they modify their export utility to break files up into multiple sizes that can be handled through import? well, it’s too much work. It’s not their problem, get a better server I guess. Once again, you’re out of luck.

phpMyAdmin Limit

phpMyAdmin has a limit in their configuration file that limits the actual number of SQL commands that can be executed. It’s that simply. If your database goes beyond this, then once again, you’re out of luck.

Well not really. You could install your own version of phpMyAdmin on the server and configure it as you like. If this works for you, great. But if your problem is also one of those mentioned above, then again, you’re out of luck.

What Are Your Options?

Content Management Systems

What is a Content Management System? Here’s a little background. Lots of websites have dynamic content. Meaning, the content is located in a database, usually MySQL, and they are simply dumped into a web template when the page is viewed. That way, if you decide to change the structure or template of your website, the content need not be changed. You wouldn’t really have to mess with anything. Since you have one main template, a change in the template is propagated throughout all the pages because all the pages are created dynamically and use the same template.