Drupal can run on virtually any hosting environment, from the very inexpensive shared hosting plans all the way to dedicated servers, and everything in between.
However, some of Drupal's features require specific Apache or PHP features that may or may not be available on any given hosting environment.
Normally, dedicated hosting is not an issue, since your site will have control on the software and its configuration, as well as a competent system administrator that can handle those changes. The same is true for most virtual private servers as well.
However, shared hosting is often where the most problems are encountered. Not all hosting company support all the features that Drupal requires.
So, here is a list to ask your present or prospective hosting company to make sure that you have what you need.
Software Versions
Make sure that your hosting company has current versions of PHP and MySQL. Drupal 4.7 requires PHP 4.3.3 or later. It is best if you have MySQL 4.0 or later, since future versions of Drupal will drop support for 3.23.
Apache Modules
The mod_rewrite module is needed if you want to use clean URLs. This is highly recommeneded. Not all hosts have mod_rewrite enabled
Moreover, it would be best if you can use .htaccess to allow overriding per directory.
Cron
Your host should have cron enabled, as well as the ability for you to create entries from cPanel or some other interface. If you do not have cron enabled, or it is not available to you, you have to use the poormanscron module, which only runs when someone accesses the site, and not at predefined intervals.
PHP overrides
You may need to override some PHP parameters such as how long to keep the user sessions logged in, or the memory limit . This is done either by using the .htaccess file (which requires the ability to use .htaccess in the first place), or by using a special php.ini file in your directory. Which one is available to you depends on how your host configured PHP.
PHP Type
PHP can be configured to run as an Apache module, as CGI, or Fast CGI. Each has their own pros and cons, with Apache module being fast and easy to configure, but has less security isolation, CGI being slow and resource intensive but has better security isolation, and Fast CGI being the newest mode, and still not in wide use on shared hosts.
PHP modules
Some PHP modules are needed to run certain Drupal modules, such as GD being needed for image modules, and smtp/sendmail for any module that sends email (including registration for new users).
Database limitations
Current Drupal versions require full privileges on the database. Certain hosters limit these privileges such as LOCK TABLE or CREATE TEMPORARY TABLE. Both are required for normal Drupal operations.
Resource limitations
Many hosting companies advertize fairly generous limits on disk and bandwidth, more than any normal site would ever need. However, there are often unadvertised resource limits that can severely hamper normal Drupal sites. These include killing processes that accumulate more than a certain number of CPU seconds, or take up more than a certain amount of memory. There can also be limitations on the number of simultaneous database connections, and how many user processes can run at the same time.
These limitations can result in visitors to your web site complaining about blank white screens, or cron jobs not running to completion.
So, before you signup, don't be fooled by the generous disk space or bandwidth allocation. Ask the tough questions and make sure that they are answered satisfactorily.
Comments
Visitor (not verified)
Cron is not required
Sun, 2006/07/30 - 06:05You don't really need cron on the hosting server, since cron functionality can be executed by accessing the http://[drupal site]/cron.php URL. You might for example run cron on the home server, and access that URL on a periodic base.
Khalid
That is perfectly true.
Sun, 2006/07/30 - 11:07That is perfectly true. Where the cron command runs from is not necessarily the
However, not many people run a home server that is up 24x7, specially those who have shared hosting. If you have a power outage or the PC is down for parts or upgrade then your live site is affected (e.g. if you run privatemsg, notify or simplenews then messages will not get out to the users).
In effect, your home server becomes a critical componenet for your live site.
Therefore it is better to keep the live stuff on your live server.
Another option is to use a cron service, such as hostedcron, webcron or any one of those listed here.
Still, my preferred way would be to have them all in one place.
Visitor (not verified)
Current Drupal versions
Tue, 2006/08/01 - 03:21That this mean "normal Drupal operations", what restrictions without such privileges?
Khalid
Examples
Tue, 2006/08/01 - 11:55Here are some examples:
- Creating a node, comment, user, and many others locks tables.
- Search modules uses temporary tables.
- Installing a module requires that you create a table.
If any of the above database privilige is not granted to the user, then this feature cannot be used.