drupal installation requirements and options
Drupal, like any software applications needs to be installed in a computer in order to run. You probably familiar from installing software from a desktop or laptop computer, however Drupal runs on a webserver. This is where the installation process is somewhat different. In this tutorial, we will review the requirements for installing Drupal and provide some hints to ensure your installation runs well. Webservers runs a set of services that put together to produce webpages.
Services and Requirements
The services that runs on a particular environment are collectively called the server stack. Drupal has 4 core services that are needed in order to run it all. But there are several other services that you would likely want as a part of your stack in order to support all of Drupal's features and to make managing your site easier. Now Drupal server stack might sound complex, but don’t worry, all of these services are pretty standard and readily available on common webserver packages. However, it doesn’t hurt to know the specifics. The four core services are:
- The first requirement is the operating system. While your personal computers probably run Windows or Mac OS, servers tend to run on specialized operating systems. While the preference here is for Linux or some other variants of UNIX, Windows server OS may also be used.
- The next service you'll need is a webserver. I realize that this term can be a little bit confusing; what I am referring to is the webserver software, not the computer that the software is running on (which is also commonly called the webserver). Apache is the recommended webserver application, but Microsoft Internet Information Server and others can also be used.
- The next service you'll need is the database engine for Drupal to store data. MySQL (My sequel) is the recommended engine, but PostgreSQL is also popular. Starting with Drupal 7, Drupal uses a new database connection layer called PDO. Theoretically, Drupal will work with any PDO-compliant database including Microsoft SQL server and Oracle.
- Finally you need an interpreter to run Drupal's code, PHP (the programming language that Drupal is written in). PHP is very common and is the most popular language for open source web apps. For this installation, you'll need PHP version 5.2.5 or higher. There are some additional requirements that are important to keep in mind. The main one of these is that you'll need a method for getting Drupal's files onto the server. There are two primary ways of doing this: FTP and command line. FTP is generally the easier mechanism for non-technical people to use. The ways this works is by using an FTP client to logon to your webserver; then you will be able to see both your files on your local computer and on the webserver itself. You can then simply drag and drop files to transfer from one to the other. You can also use the command line interface (such as SSH) to transfer files. This method also gives you greater control of the server and gives you access to dense controls that you might find helpful. If you're unfamiliar with command line, don't worry! Most websites can get by just fine by using just FTP. I should note that there are specialized post installations that provide other alternatives for uploading files, and many of these work pretty well.
Additional Services & Programs
Drupal's primary means of messaging is email. A folder arranges Drupal to use a server's mail transfer agent to deliver email; you'll need one of these if you want to send emails from your webserver. Mail agents such as Sendmail, Qmail or XM are fairly standard on webservers but it doesn't hurt to check when you look for hosting.
The last requirement is that you'll need some way of doing database admin. Mainly, you'll have to set up databases; each installation of Drupal will require one new database. It also might help if you have some ways of visualizing that database. While you likely won't use this very often, as you get into more advanced Drupal development you'll want some ways to see what's going on inside your database.
I know it sounds like we covered a lot of different pieces for getting our Drupal site up and running, but don’t worry too much. There are many solutions that can give you everything you need in a single package.
Web Hosting Solutions
Let's take a look to some of the web hosting solutions that we can use for our site.
Running Drupal Locally
The first one is to run Drupal on your local personal computer. You actually can run an entire webserver stack under Windows or Mac PC. There are several packages that you can use to do this, including one that was specifically created for running Drupal websites called Acquia Damp. We'll show you how to use this solution in our next video. Installing Drupal on your local machine is a great way to develop and play around of Drupal. For much of this course we'll be working with our local machines. Of course, running locally is not an appropriate way to run a website that is live on the web. For that, we need hosting.
Hosting with Aquia
Here we have several options: the simplest of this is the software-to-service model where Drupal is the software. This is also called the host to Drupal service. SAAS is the easiest way to get up and running because all the technical stuff is taken care of for you (even the file uploading and ongoing maintenance). The best known solution for hosting Drupal is Aquia's Drupal Gardens. However, there are some drawbacks to this SAAS model; the main one is that you're often limited as to how you can extend Drupal, particularly which module you can use.
Hosting On Your Own
This is why most people host their own websites. When I say that they host their own, I don't mean that they have servers in their home or office. Most people use commercial hosting with their leasing resources that reside on a managed data center. The most affordable option for web hosting is "shared hosting," where your site is put on a server with many other websites. The advantage of this arrangement is that it is very affordable. Some services even cost less than 10 dollars a month! The main disadvantage is performance. Oftentimes, these servers are oversold, and other websites in the server hog the resources, causing your site to slowdown. Another disadvantage is that you're often limited to the changes that you can make on the server.
For basic Drupal site that might not be a problem but if you're looking to do more advance websites where you want to use more advance admin tools, you might be blocked from doing so on a shared host.
Hosting with a Server
There is another option to get a dedicated server. you can get a dedicated server with all the server software you need pre-installed; if you have the administrative skills, you can build it from the ground up. Modern dedicated servers will provide great performance for most websites. Dedicated servers do cost considerably more than shared hosting, often costing several hundred dollars a month. Oftentimes a dedicated server is over-kill for smaller organizations, yet shared hosting might not be enough.
A great solution between these two is virtual hosting. Virtual hosting allows you to share a slice of a server - this helps keep cost down but your resources are better controlled giving you better and more predictable performance. You also have full control of how the server slices are configured.
But what is at the end of this spectrum? What if sites need more than what a single dedicated server can handle? The traditional solution is to use a farm of dedicated servers with sophisticated load balancing. But over the last couple of years, another more flexible solution has matured: cloud hosting. Cloud hosting is similar to virtual hosting; instead of having a slice on a single server, the resources that you're using are actually fluid across multiple servers. A great feature of cloud hosting is that it is scalable without having to physically add servers. Additionally, you only pay for what you need. This is particularly ideal if you have seasonal spikes of traffic. Reliable cloud hosting for typical websites with moderate traffic range from 40 dollars to a few hundred dollars a month. So which one is right for you? That's a great debate with no simple answer.
I would recommend Aquia Damp for developing and testing Drupal sites on your local machines, but for your live websites it often comes down to budget.
- Cloud hosting is a great place to start.
- If you really have a tight budget, your only choice might be shared hosting.
- For a high traffic websites you might want to look towards dedicated servers or high capacity cloud solutions.
There are few more pointers that you should be aware of:
- First beware of cheap hosting; most budget level solutions meet Drupal minimum requirements. This means they can technically can run Drupal, but should they? While the performance might be fine for basic Drupal site, as you add modules and complexity you most likely notice the significant drop off on speed. One hard limitation of many budget level hosting providers is the amount of memory they allow for PHP. Drupal states the minimum of 32 megabytes but what you found in practice that 96 to 128 is more appropriate. If you're going to use cheap hosting, make sure that you can set the memory limit to at least 128 megs.
- Search engines love fast loading websites, so if traffic from search engines like Google are important for your site then be doubly aware of cheap hosting. It’s highly unlikely that cheap hosting will help you on rankings.
- Many hosting providers offer control panels of one-click installs. Drupal is recommending you do not use this as they often lag on their updates and your site might develop security or other issues.
- Drupal is great for video, however most web servers (even the more expensive solutions) are not. If you do plan to host video that will be viewed by a significant number of people, you should look into hosting your video & other high bandwidth files on a content delivery network or CDN. Content delivery network essentially take your files and host them all around the world so you're always assured to have high bandwidth availability.
In this tutorial we covered the basic requirement from installing Drupal. I hope to host in your peers the recommendations will help you find the right solutions for your Drupal websites. In later videos, we'll actually look at how to install Drupal both on a local computer and a live webserver.