Installing Magento 18.104.22.168 on a Godaddy Web Hosting Account
Updated: Sun, 07/17/2013 - 00:34
Note: a reader recently informed me that Godaddy upgraded their hosting plans from Apache version 2.2 to version 2.4. While I have responded to the comment with a fix that I think might work, Magento still recommends Apache 2.2 and older versions. To see the fix, read this comment.
After reading about how difficult it is to install Magento on a Godaddy standard web hosting account, I decided to give it a shot. At first, I thought this would be a breeze, but I was amazed at how difficult it truly is due to all the files that have to be edited. This was actually my first time playing around with Magento and I was quite disappointed to say the least.
For years I have been using osCommerce and Magento is much slower because of the way the code was written. Therefore, if you are planning to run a Magento powered store on Godaddy, know that an economy web hosting plan isn't really powerful enough to handle it. Godaddy actually recommends a virtual dedicated or dedicated server for use with Magento, but that decision is of course up to you.
Either way, the video below proves that it's possible to install Magento (community edition) on an economy web hosting account from Godaddy even though many people say it's not. Please see the video below and the step by step written tutorial beneath it:
Can't view the video? Watch it on YouTube
On a side note, if you are looking to hire someone to install the software, you can find a freelancer over here (very affordable). Now, if you'd prefer to install Magento yourself but are looking for a faster way to do it, know that SiteGround and Hostgator offer quick installs -- for more information, please see this page as well as this one.
Download the files below:
Magento download the one with the tar.gz extension (You will need to create an account with them if you don't already have one).
Try to download the tar.gz file because this way we can upload just 1 single file and then unarchive.
If you are on a Mac as I am, click Safari then preferences then General and untick the Open "safe" files after downloading option.
If using Internet Explorer check whether the files are automatically unarchived upon downloading. If they do get unarchived, adjust your settings so that the file remains archived.
Now download FileZilla because Godaddy's web based FTP client will probably timeout while uploading the file.
FileZilla this is the FTP client that I use in the video. If you use a different FTP client, Dreamweaver or other web development software it's fine.
Make sure your Godaddy hosting account is running Linux because it is one of the Magento requirements.
Begin the installation process:
Now log into your Godaddy account, go to the web hosting section and choose the account that you will be uploading Magento to.
Next (once on the hosting control panel), copy the IP address in the server details section because we will need to populate the host field in FileZilla with this information.
Now install FileZilla if you haven't already. Once installed, open FileZilla and paste the IP address from the server section in the host field.
Also fill in the Username field and Password field associated with your web hosting account and then click Quickconnect.
Once logged in, find the Magento file that you downloaded and double click it so that we move it to our web hosting account.
I used the web based FTP file manager that Godaddy provides to move, create and edit files. Of course if you're using Dreamweaver or another web development program, you can use that.
Create a PHP file to check your server's specs:
Now we create a PHP file name "info.php" and paste the code below into it:
<?php echo phpinfo();?>
Next we go to your store's web address and access this file by going to:
This screen will show the server specs for your hosting account. Check whether the servers meets Magento's requirements.
Unarchive the Magento file:
Now we unarchive the Magento file that we just uploaded by ticking the box next to the Magento file and clicking the Unarchive button (icon) -- we will be unarchiving this file into the root directory of our web hosting account.
After the file has been unarchived you will see a new directory which is named "magento" -- this directory contains our Magento installation.
After you have unarchived the files, you can delete the archived file if you'd like.
Move the Magento files to the root directory:
Since we will be installing Magento into the root directory of our web hosting account, we need to move all the files from within the Magento directory to the root directory.
You can do this by going into the Magento directory and ticking every file within it and then click move.
If you do not do this, people will access your store by going to http://www.yourdomain.com/magento/ rather than http://www.yourdomain.com/
If there is a prompt asking you whether to replace some files, click yes -- double check whether these files are of importance to you.
After you have moved all the files you can delete the Magento directory.
Configure your hosting account:
Next, we copy the contents of the php.ini.sample file that is in the root directory of our hosting account and paste the contents into the php.ini file.
You can paste this information beneath the last line of code in the php.ini file.
Also change the allow_url_fopen option in the php.ini file from off to on.
Edit the upload_tmp_dir from /tmp to the path of your web hosting account with the directories /media/tmp appended to the end. In the video I show you how to find this info.
You can find it by visiting your webstore http://www.yourdomain.com/info.php and look for a path that looks something like this: /home/content/y/o/u/yourusername/html/
You can also get this path by going to Godaddy control panel and in the server details section, look for the absolute hosting path section (you may need to click show details to view this section) and copy that path.
You will basically see that the path contains the root directory of your web hosting account. In my case it was html so the new path for upload_tmp_dir looked something like: /home/content/y/o/u/yourusername/html/media/tmp
Therefore, your ini.php file would look something like:
upload_tmp_dir = /home/content/y/o/u/yourusername/html/media/tmp
Also, you might need to add cgi.fix_pathinfo = 1 to the php.ini file.
Of course, if you get any errors during the installation processes, try to remove the cgi.fix_pathinfo = 1 line, wait a few minutes for the changes to take effect and try installing again.
In the php.ini file I turned zlib.output_compression from on to off, but you can leave it on if you wish. I basically turned it off because I feel the web hosting account isn't powerful enough to handle compression.
Afterwards rename the php.ini file to php5.ini
Next, we need to wait for the changes to take effect and this can take 10-20 minutes.
A good way to check is by accessing your info.php file again by visiting http://www.yourdomain.com/info.php and looking in the upload_tmp_dir section and checking whether the output reflects the changes that we just made above.
Next we tick the box next to .htaccess file and click edit.
In the ## GoDaddy specific options section you will see the line #Option -MultViews
While many say that this line needs to be uncommented, from my experience, uncommenting creates errors. So try to leave it commented.
However, if you do experience errors during the installation process, try to remove the # (hash tag) next to Option -MultViews and try the installation process again.
Now in the section #RewriteBase /magento/
We remove the # (hash tag) and rename /magento/ to /
We do this because in this tutorial we are installing Magento in the root directory. Of course if you are installing Magento in a subdirectory, you will want to rename /magento/ to the name of the subdirectory or leave it as /magento/ if that is the name of your subdirectory.
Next we need to go back to our FTP manager and add the directory tmp within the Magento "media" directory.
Make sure that the tmp directory is writeable by ticking it and clicking the Permissions button (icon) -- make sure all the permission options in "Advanced Permissions" are ticked off and click ok.
Begin the installation process:
Now we begin the install by going to: http://www.yourdomain.com/install.php
If the installation wizard appears, we did everything correctly.
If you are getting a blank page with a "no file input specified" message, that means that either the changes to our php5.ini file haven't taken effect or our configuration is wrong.
As mentioned earlier you can try to comment or uncomment the "Option -MultViews" line in .htaccess or remove or add the cgi.fix_pathinfo = 1 line in php5.ini.
Create your MYSQL database:
Next we create a MYSQL database.
Go back to the Godaddy FTP manager and hover over Databases and click the MYSQL link.
Now we click "add one now" and populate the required fields.
Next we click "ok" and wait for the database to be setup.
Once the database has been setup, we click the actions button and then "Details" and you will see a popup. In that popup look for the hostname section and copy that URL and paste it into the host field of our Magento installation wizard.
Next fill in the "Database Name", "User Name" and "User Password" fields with your databases' information.
Resume the installation with the Magento installation wizard:
In the Web access options section I ticked off "Use Web Server (Apache) Rewrites" because I wanted search engine friendly URLs.
If you have an SSL certificate also tick off the box next to "Use Secure URLs (SSL)".
If you want the admin to run with SSL you tick off the box next to "Run admin interface with SSL".
For the "Session Storage Options" I have it setup as "File System", if you want the session data stored in your MYSQL database, you choose the "Database" option.
Of course with the "Database" option, your store might run slower if the database isn't properly maintained (optimized).
On the next screen you create an admin account for your Magento installation -- just fill in the required information.
Also read the Installation Guide which tells you which directories need to be writeable.
The URL to this guide is:
This guide basically tells us that the following directories and files need to be writeable:
- media and all the directories within the media directory
Again this can be done by ticking off the boxes next to the desired directories and clicking the Permissions button (icon), and ticking off all the boxes within the permissions section and clicking ok.
Next click continue -- at this point, everything should have been installed. Copy the encryption key and hold onto it. Now go to the admin section by clicking the "Go to Backend" button and log in.
Image error fix:
Now when you upload images you might receive an "Internal Server Error" message when you try to view any of your product images. The .htaccess file within the "media" directory is causing this issue.
You basically want to edit that file by going to the Godaddy FTP file manager and ticking off the box next to the .htaccess file within the media folder, click edit and comment out the line:
Options All -Indexes
Once commented, it should look like the example below:
#Options All -Indexes
Now click save and close.
Try to speed up Magento:
Note: This sort of contradicts what I said about turning zlib.output_compression off in the php5.ini file because by uncommenting the lines below, you are actually enabling compression.
Also if you have zlib.output_compression turned on in your php5.ini file, you don't need to uncomment the first line of code below:
Edit the .htaccess file by going to the Godaddy FTP manager, tick the box next to .htaccess file and click edit. and remove the # (hash tags) next to:
php_flag zlib.output_compression on
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0 no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
Basically, you'll want to check your store's performance with compression enabled as well as disabled. From my experience, compressing data makes the server work harder and when there are limited resources available, this can be an issue.
Now you should be good to go! Enjoy!
Ed requested that I add my php5.ini configuration so I did below:
Note: that you may need to update your upload_tmp_dir to the full path of your tmp directory as I mentioned in the "configure your hosting account" section of this article. I also left "zlib.output_compression" on because it's not necessary to turn it off. Also note that SMTP will differ from my example below based on your server settings.
register_globals = off
allow_url_fopen = on
expose_php = Off
max_input_time = 60
variables_order = "EGPCS"
extension_dir = ./
upload_tmp_dir = /tmp
precision = 12
SMTP = relay-hosting.secureserver.net
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
;Only uncomment zend optimizer lines if your application requires Zend Optimizer support
;-- Be very careful to not to disable a function which might be needed!
;-- Uncomment the following lines to increase the security of your PHP site.
;disable_functions = "highlight_file,ini_alter,ini_restore,openlog,passthru,
;phpinfo, exec, system, dl, fsockopen, set_time_limit,
;popen, proc_open, proc_nice,shell_exec,show_source,symlink"
;This file is for CGI/FastCGI installations.
;Try copying it to php5.ini, if it doesn't work
;adjust memory limit
memory_limit = 64M
max_execution_time = 18000
;disable magic quotes for php request vars
magic_quotes_gpc = off
;disable automatic session start
;before autoload was initialized
flag session.auto_start = off
;enable resulting html compression
zlib.output_compression = on
;disable user agent verification to not break multiple image upload
suhosin.session.cryptua = off
;turn off compatibility with PHP4 when dealing with objects
zend.ze1_compatibility_mode = off
;PHP for some reason ignores this setting in system php.ini
;and disables mcrypt if this line is missing in local php.ini
cgi.fix_pathinfo = 1
At this point your Magento store should be up and running. Now if you'd like to customize your new store, you may be interested in my video which shows you how to install a new theme in Magento and if you'd like to look at some themes, you can check out my list of Magento 1.7.x.x themes over here.