Technical considerations
You have assessed the technical knowledge and experience of yourself and others with whom you may be working, now it is important that you understand the technical requirements of installing and managing a Magento installation.
Hosting provider
If you're new to Magento, I certainly recommend that you find a capable hosting provider with specific Magento experience. There are many hosting companies that provide hosting suitable for Magento, but far fewer who invest resources toward supporting their clients with specific Magento-related needs. Keep these points in mind as you research possible hosting candidates:
- Do they provide specific Magento support for installing and optimizing? (You'll learn how to do that in this book, but if you're hesitant to do it yourself, find a provider who can help.)
- Can they provide PCI compliance? (If you're going to accept credit cards online, you'll be asked by your merchant account provider to be "PCI" compliant. We'll cover this in Chapter 5, Configuring to Sell.)
- Are they a Magento Partner? (The Magento website lists companies who they have designated as "Solution Partners." While this is a good place to start, there are many other hosting providers who are not official partners, but who do an excellent job in hosting Magento stores.)
- Do they have links to client sites? (If Magento stores are properly optimized, and the servers are fast, the websites will load quickly.)
In-house hosting
You may already be hosting PHP based websites, have a robust server setup, or manage racked servers at a hosting facility. In these instances, you might well be capable of managing all aspects of hosting a Magento installation. In this book, you will find considerable information to help you configure and manage the server aspects of your Magento installation. We do repeat the advice that if you're new to Magento, an experienced hosting provider could be your best friend.
Servers
Due to Magento's complex architecture, your servers should be powerful. The architecture, indexing, and caching schemas of Magento require considerable resources. While we will attack these issues in Chapter 9, Optimizing Magento, the more horsepower you have, the better your store will perform.
To host your own Magento installation, your server must have the following minimum requirements:
- Linux x86-64 operating system.
- Apache 2.2 or 2.4, or nginx 1.8+. The apache
mod_rewrite
module must be enabled. - MySQL 5.6 (Oracle or Percona).
- PHP 5.5.10-5.5.16 or 5.6.0, with these extensions:
- PDO_MySQL
- Mbstring
- Mcrypt
- Mhash
- SimpleXML
- Curl
- Xsl
- gd, ImageMagick 6.3.7+, or both
- soap
- intl
- bc-math (only for Enterprise Edition)
- openssl
- SSL Certificate for secure administration access on production servers. Self-signed certificates are not supported.
- Mail transfer agent (MTA) or an SMTP server.
Magento 2 can also use Redis 3.0 or Varnish 3.5/4.x for page caching and memcached for session storage.
The best of both worlds
Most Magento Community users we know (and there are lots!) opt for a hosted solution. Even with our own experience managing web servers, we too use a third-party hosting provider. It's easier, safer, and in most cases, far less expensive than duplicating the same degree of service in-house.
However, we do enjoy installing and testing open source platforms in-house, rather than setting up another hosting account. This is especially true when working with new platforms. Setting up an in-house installation can also allow you to test modifications, extensions, and updates before installing them on your live production server.
Setting up a local test installation
You can set up a complete Magento environment with PHP and MySQL on your own desktop computer or a local server in your office. In Chapter 10, Advanced Techniques, we'll provide detailed instructions for several different methods that can be used to install Magento on a local machine.