Archive for May, 2009

Magento Error: It is not safe to rely on the system’s timezone settings

Ok, that’s not a really good post title, because it’s actually a PHP error, nothing to do with Magento as such. You’ll only see it on certain systems when PHP is set to report warnings like this (E_STRICT). I’m bundling this into the Magento category because it happened to me when installing Magento on a reasonably simple Ubuntu 8.04. I thought it might be handy to quickly document the solution for other Ubuntu users.

The problem will look like this in Magento:

It is not safe to rely on the system's timezone settings error in Magento

It is not safe to rely on the system's timezone settings error in Magento

Which spews out a whole lot of stuff, the most important of which is the message ‘It is not safe to rely on the system’s timezone settings’ and later the suggested timezone, in my case ‘Pacific/Auckland’:

There has been an error processing your request.
Strict Notice: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Pacific/Auckland' for 'NZST/12.0/no DST' instead  in /var/www/magento/app/code/core/Mage/Core/Model/Locale.php on line 498
Trace:
#0 [internal function]: mageCoreErrorHandler(2048, 'date() [storeTimeStamp('1')
#3 /var/www/magento/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php(318): Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection->_joinPriceRules()
#4 /var/www/magento/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php(779): Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection->_beforeLoad()
#5 /var/www/magento/app/code/core/Mage/Catalog/Block/Product/List.php(151): Mage_Eav_Model_Entity_Collection_Abstract->load()
#6 /var/www/magento/app/code/core/Mage/Core/Block/Abstract.php(642): Mage_Catalog_Block_Product_List->_beforeToHtml()

The fix is in your php.ini file for Apache. You’ll need to have the permissions required to edit the php.ini file, on Ubuntu that means you’ll probably need sudo access, or root access on systems where you actually log in as root. You can edit the file using this command:

sudo vi /etc/php5/apache2/php.ini

Or if you prefer a slightly less convoluted text editor (but much less powerful):

sudo gedit /etc/php5/apache2/php.ini

The change you need to make is to find the line like this:

; Defines the default timezone used by the date functions
; date.timezone =

To this:

; Defines the default timezone used by the date functions
date.timezone = "Pacific/Auckland"

Of course you may want your timezone, not mine, in which case you should substitute "Pacific/Auckland" for you timezone!

Hopefully that helps others who encounter this problem. The tricky thing is it won’t manifest itself on the CMS homepage, so you might do an install and think everything is fine, only to find that when you finally add categories and actually view one of them, Magento breaks (well… PHP does). So be wary.

Simple Helix Magento Hosting Review

Right, so after over a month of putting this off I’m finally going to start writing some Magento Hosting reviews. The first is for Simple Helix. You might remember way back in April when I said I would be reviewing a few Magento hosts, and also running a free Magento hosting competition.

The competition is now over and I will be announcing the winners shortly, thanks to everyone who entered! I’ll compile the list of hosting annoyances you sent in and post it here shortly too. Just to re-iterate my thanks to the two hosting companies that put up prizes, A2 Hosting and Nexcess Hosting.

Enough about the competition, on to the Magento hosting review of Simple Helix hosting. I look at an installation from the point of view of someone doing them all the time. There are a few things I really like about hosting providers in general, the first is SSH access, especially the kind that’s granted by default when signing up. Simple Helix thankfully provide simple clean SSH access (not the ugly cPanel style java applet), which is something that I really appreciate. The other thing I find really helpful is the welcome email – hosting providers always send a welcome email. From a technical point of view I just love it when hosts lay out all of the hosting information in plain text, so I can easily copy paste it, without trawling through screens of fluff. Simple Helix scores points on both of these factors. But I’m sure if you don’t sign up for hosting every month, these kind of things are one off and you don’t really care!

I bet what you do care about is speed, disk space and bandwidth (and possibly support?). So here’s my take on those factors. My initial reaction to the speed question was wow, good – their server pulled the Magento install down at 6MB/s – that’s close over a 10Mbps pipe, so I can tell right away that they have decent internet facing bandwidth. Another indicator of speed is the unzip of the Magento package. If it’s almost instantaneous then you know the hardware is modern, with Simple Helix this was the case. So I knew they had a decent connection and decent modern hardware. The only other question is: how many people do I have to share with! Because that really decides what kind of performance I will get.

Being in New Zealand it’s always difficult to judge exactly how quickly a page will load for users in the Northern Hemisphere. That said, I found the Simple Helix pages loaded really quickly even way down under, and I know there are reports of that not being the case for everyone. One thing to consider is that some users may forget to enable caching for Magento, which is a sure fire way of slowing it down 3-4x, so always enable caching on production installations!

Database setup was incredibly easy, they do not use the standard cPanel style interface, so the usually 3 step process was made simpler and much easier, probably really helpful for people doing their own installations that are not familiar with hosting panels.

The last thing I noted was that Apache mod_rewrite was enabled by default, which I know may seem like an absolutely obvious thing for a hosting company, but I have been surprised by the number of them who do not do this! It is important for Magento SEO to have the rewrites enabled, and to use them, it’ll mean your URL’s can be of the form yourdomain.com/my-keyword-loaded-product-name.html which will help (hopefully).

The price and specs of their plans; $20 for 50GB bandwidth and 5GB of storage and $50 for 100Gb of bandwidth and 25GB of storage are definitely at the upper end of the shared hosting spectrum. In fact for $75 per month you can actually get an Amazon EC2 server, which is what I do personally and highly recommend. I am working on an EC2 AMI for a pimped out version of Magento (with extremely high performance, data security and ease of use) – details to follow in the next couple of weeks.

So what’s my conclusion, Simple Helix Hosting seems professional, modern, speedy and well configured for Magento. Their plans are $20 or $50, which is on the higher side, but it seems to me they’re worth it. If you’re in the market for Magento Hosting, Simple Helix are well worth trying out.

Update: I just want to add that this review and my recommendation of Simple Helix is based on the short time I spent setting up and testing Magento on their platform. I have since read a fair bit of negative feedback about the stability of their hosting and I can’t really comment on this because I didn’t experience it. So please keep this in mind when you are considering my review. Also, I will add that I’d always recommend doing your own backups and not relying on your hosts backup support.

Sporadic Tweeting...

  • My Top 3 Weekly #lastfm artists: The Black Keys (86), Mos Def (9) and Foo Fighters (8) http://bit.ly/c6eW5I 4 days ago
  • Finally beaten the 'Invalid package.xml format' fluff when trying to upload to Magento Connect - latest SMTP finally available there - yah! 4 days ago
  • My latest post includes a guide to making a basic extension too, so if you're just starting out with Magento extensions, check it out. 5 days ago
  • More updates...

What I'm listening to

  • The Black Keys - Brothers
  • Mos Def - Black On Both Sides
  • Foo Fighters - Skin and Bones
  • The Black Keys - Chulahoma
  • The White Stripes - Icky Thump
  • The Naked and Famous - This Machine
  • The Black Keys - The Moan
  • Red Hot Chili Peppers - Blood Sugar Sex Magik
  • Fat Freddys Drop - Based on a True Story