In this post, I am going to guide you through the process of installing Drupal on a Linux box. I believe the best distribution for Drupal to be Ubuntu Server, the main reason for this is because we are going to use the Drupal Acquia Stack Installer, and its for Ubuntu, they recommend it. The Acquia Stack Installer is a package that includes Apache, MySQL and PHP all optimized for Drupal.
We are going to do everything from scratch so you need to have two things to start:
A server with nothing installed on it, this can be a box or a virtual private server (VPS). Your server must have at least 1Ghz Processor, 10GB of disk space and, 1GB of RAM. Technically Drupal can run with less disk space, RAM and with a slower processor, but for everything to run smooth lets go with the rule of 1101G (1Ghz processor, 10GB in disk space, 1GB RAM). You should know that these specs are not the ones you should use for a production server, for that you would want more than one processor, more disk space and more RAM depending on the amount of traffic you expect on your site. If you are going to host a high traffic site you should also consider scaling your infrastructure, this means getting a more than one web server, move the database to a separate server and using a load balancer to delegate the requests equally between the web servers. The purpose of this post is to guide you through the process of installing Drupal on Ubuntu. So let's get going!
First if you don't already have it, you will need the latest Ubuntu Server installation CD. At the time of this post, the latest Ubuntu Server Edition is 9.10. Make sure you download the right version for you, depending on your server architecture; you may need the 32-bit or 64-bit version. In my case I will use 32-bit on my VPS.
Burn the image to a CD and turn your server on with the CD inside, or load it as the ISO image on your VPS and you should get the Ubuntu Server installation screen when the server boots.
Select English as your language, and choose Install Ubuntu Server on the next screen:
The GUI installer will load and you will need to choose the language you want for the installation process, choose English again and hit Enter. Choose your country or territory in the next screen then Ubuntu will want to detect your keyboard layout, choose Yes and hit Enter. The detection process will start and you will have to follow a set of simple instructions, once that is over you can confirm your keyboard layout and continue with the installation. The next screen will load all the installer components and do various detections of your system. After that completes you will be asked to enter your hostname, go ahead and do that, if you are just installing a test server or development server you leave the name at "ubuntu".
Next you will be asked to enter your timezone and then you the installer will ask you what partitioning method you would like to use:
Go ahead and choose "Guided - use entire disk and setup LVM" and verify your selection in the next screen. Do note that all the data in the disk of your server will be erased. Choose the default settings on all screens until you get to the confirmation screen:
Then go ahead and choose Yes to start the partitioning of the disk and to start the installation of the base system.
After the base system installation is complete, you will be required to enter the full name of the admin user (not root user). Ubuntu uses an additional admin user account. Go ahead and enter the full name of the owner of the admin account, then type in a username for that same account. Then type in a password, make sure it's a safe password (mixture of letters, numbers and punctuation), the next screen will ask you to retype the same password. Then you will get the following screen:
It is completely up to you if you want your home directory encrypted, i will choose No for this to keep it simple. The next screen will ask you to enter the proxy information if your server is behind one, in my case my server isn't so I'm going to leave it blank and choose "Continue". The installer will continue to configure your settings, and will ask you how to manage the updates:
I recommend you choose to install the security updates automatically.
The next screen is very important, its where you choose what type of server you want, the options include: a Mail server, a LAMP server, a DNS server. I know it seams like we should choose "LAMP server" but we are going to choose "Manual Package Selection".The reason for this is because we don't want apache, mysql and php to be installed for us now, we are going to use the Acquia Drupal Stack Installer and that includes everything we need and its optimized for Drupal! So lets move on with that option selected:
Since you chose to manually install packages, you will get this screen:
We wont install anything from here so just type "q" and and Enter and the installation should continue and completed:
When this happens make sure you remove the CD or unload the ISO image before rebooting.
You have completed the installation of Ubuntu Server 9.10! Now we can move on to the stack installation, once you reboot your server you will be prompted to login, go ahead and use the username and password you provided during installation.
Once you are logged in create a folder called "installers":
name@ubuntu:~$ mkdir installers
name@ubuntu:~$ cd installers
Download the Drupal Acquia Stack Installer for Ubuntu using the wget command.
so the command you will run is
After the file has downloaded, use the following command to install the package:
name@ubuntu:~$sudo dpkg -i acquia-drupal6_18.104.22.16898.11712_all.deb
You will be prompted for your password, type in and if you see a list of errors like this:
dpkg: dependency problems prevent configuration of acquia-drupal6:
acquia-drupal6 depends on apache2 | httpd; however:
Package apache2 is not installed.
Package httpd is not installed.
acquia-drupal6 depends on dbconfig-common; however:
Package dbconfig-common is not installed.
acquia-drupal6 depends on exim4 | mail-transport-agent; however:
Package exim4 is not installed.
Package mail-transport-agent is not installed.
dpkg: error processing acquia-drupal6 (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
Don't panic! Just type in the following command to resolve these dependencies:
name@ubuntu:~$ sudo apt-get -f install
The dependencies will continue installing and you will be prompted to setup the root password for MySQL. Type in a password that you will remember and type it again in the next screen. Then you will get the Acquia Drupal configuration screen:
Choose yes in this screen and you will be prompted for the MySQL password you typed in before. Then you will be asked to type a password for the MySQL administrative account that Acquia-Drupal creates, type in any new password, I'm just going to type the same password as MySQL to keep things simple:
Confirm the password on the next screen and then the dependencies installation will be completed:
The next step is to execute the package installation command again:
name@ubuntu:~$ sudo dpkg -i acquia-drupal6_22.214.171.12498.11712_all.deb
The package will be completely installed and at the bottom you will read:
"To setup your Acquia Drupal site please browse to http://ubuntu/acquia-drupal6/install.php"
So from a computer in the same network, lets navigate to that page but replace the ubuntu name on the url for the ip address of your server. You can get that ip address by looking at the results of the ifconfig command:
Then open that url with the ip address replaced and the Acquia Drupal will configure some components and display the following screen:
All we need to do now is configure, go ahead and fill in the fields using the following guideline:
Site name: The name of your site
Site e-mail address:: The email address that will be displayed to users when they receive emails from the site
Skip the Acquia Subscription fields since we don't have an Acquia subscription at the moment.
Administrator Account - Username: The name of the super user account that will administer the site.
Administer Account - Email Address: The password for the super user account, verified in the next field.
Administer Account - Password: The password for the super user account, verified in the next field.
The rest of fields you can leave as they are, the timezone will be detected automatically and it is recommended to leave the Check Updates checkbox selected.
Click "Save and Continue"
Thats it! You will see the installation completed screen and you can go and visit your new Drupal site! Congratulations!
Check out Oshyn's white paper on Drupal Multisite Installation.
Download the Performance Tuning Drupal ebook.