Magento Hosting Requirements for Installation
Before you begin installing Magento, these Magento hosting requirements will need to be met. Make sure that you have installed all of the necessary PHP modules:
Magento also has a simple PHP file you can download to check if your server is compatible and have met the Magento hosting requirements.
If you are new to Magento, this will really come in handy.
Finally make sure that the Magento media and var folders are writeable.
1) Create Magento Database
Create a MySQL database that will be used for your Magento installation. Also create a database user and assign full permissions to use the database.
2) Download Magento
Download the latest version of Magento and place it in your webserver root directory
3) Browse to Install
Open a browser and enter the IP of your webserver. For example, if you are installing from your webserver enter “http://localhost”
4) Install Wizard
Page 1: Agree to Terms and Conditions
Page 2: Set Localization
Page 3: Configuration
Here you will set the connection info to your Magento database. Specify a username/password that has proper permissions to the database.
You will also set the web access options such as your store URL and admin location.
There are a four checkboxes on this page. Make sure to Skip Base URL Validation and Use Web Server (Apache) Rewrites. You most likely do not have an SSL certificate yet so leave that option unchecked.
The final option is to choose where to store session information. If you are unsure of this then choose File System. You will be able to modify any of these options after the install.
5) Create Admin Account
Enter your personal and login info that you will use for the Admin.
For encryption key, you can leave this blank and retrieve it on the next page.
6) Install Complete
The final page will display your encryption key. Copy this into a test file for safe keeping.
You can now login to your admin and start creating your new Magento site!
POST INSTALL ITEMS
There are some post install procedures that will help improve the performance and functionality of your Magento store.
Enable compression in .htaccess
Setting your site to use compression will help your pages load faster as well as conserve bandwidth. Magento has this option disabled by default but it is simple to enable. Simply open the .htaccess file found at the root of your website in a text editor. This is a hidden file so if you do not see it in your FTP client or on the server, make sure to allow hidden files to be seen. Find the line below and uncomment by removing the #.
php_flag zlib.output_compression on
Setup Cron Jobs
Magento has several cleanup tasks that will run on a schedule. However you will need to enable these to run from the server first by having your crontab on a schedule to check the Magento cron file. There are several ways to achieve this, one of which is by editing the /etc/crontab file and adding the following entry for your store:
*/5 * * * * root /path/to/your/magento_install_directory/cron.sh
I also like to have visualization on what is happening with the cron so I always install the Aoe_Scheduler Magento extension. This will create a configurable cron section in your admin.
Once you have cron running it is important to setup Magento to clean out your log files on a regular basis. You can find that setting here in your admin:
System > Configuration > Advanced >System Log Cleaning
If you do not enable this feature, several log database tables will continue to grow and could eventually slow down your store.
Apply Magento Patches
Periodically Magento releases security and bug patches that are available for download at:
Review the available patches for your specific version and download. To apply the patch, upload the patch file to the root of your Magento store and run the following command:
You should see a message that is was successfully installed. If you need to revert the patch for any reason simply rerun the same command only with the option –R at the end. For example:
#sh patch_file_name.sh –R
If for some reason the patch will not apply or you run into an error please check the following:
- You are using root permissions to run the command
- Compilation is turned off
- You are running the command in the root Magento directory
Create a robots.txt file
The robots.txt file is a file at the root of your website that tells bots and crawlers what they can and cannot index. By default Magento does not have a robots.txt file in place so search engines will index everything they can in your site. During the development stage of your website you will not want your site to be indexed or show up in search results. It’s possible that someone will try to place an order on your site before it is ready for business. In this case you can add a robots.txt file that will stop all search engines from indexing your website. Create a file with the following text:
Save the file as robots.txt and place it in the root of your site. Make sure that you modify this file after your website goes live or else your website will never get indexed. I recommend that you add disallow statements to areas of your website that do not need to be indexed such as configuration files or logs. For example:
- User-agent: Googlebot-Image
- User-agent: *
- Disallow: /404/
- Disallow: /app/
- Disallow: /cgi-bin/
- Disallow: /downloader/
- Disallow: /errors/
- Disallow: /includes/
- Disallow: /magento/
- Disallow: /pkginfo/
- Disallow: /report/
- Disallow: /scripts/
- Disallow: /shell/
- Disallow: /skin/
- Disallow: /stats/
- Disallow: /var/
- Disallow: /index.php/
- Disallow: /catalog/product_compare/
- Disallow: /catalog/category/view/
- Disallow: /catalog/product/view/
- Disallow: /catalogsearch/
- Disallow: /checkout/
- Disallow: /control/
- Disallow: /contacts/
- Disallow: /customer/
- Disallow: /customize/
- Disallow: /newsletter/
- Disallow: /poll/
- Disallow: /review/
- Disallow: /sendfriend/
- Disallow: /tag/
- Disallow: /wishlist/
- Disallow: /catalog/product/gallery/
- Disallow: /cron.php
- Disallow: /cron.sh
- Disallow: /error_log
- Disallow: /install.php
- Disallow: /LICENSE.html
- Disallow: /LICENSE.txt
- Disallow: /LICENSE_AFL.txt
- Disallow: /STATUS.txt