I have decided to set up a web for my wider family, as a place to chat and share information. I’ve had some experience with Drupal 6, but knowing how tough it can be to upgrade between versions of Drupal, I decided to opt for Drupal 7.
Drupal is great for one main reason – it is extendible to the n’th degree – a Drupal site can be a blog, a forum, a static site, a database application. In fact there is very little you can’t do with a Drupal site. There is a price to be paid for all the functionality, I do see Drupal as being something of a jack of all trades and yet a master of none, but, if you want flexibility without the need to host multiple services, then Drupal is it.
Installing Drupal was very simple, providing you know how to configure mysql (or another database). The instructions are clearly laid out in the tar.gz; although newer users would probably be best advised to find a howto.
Having googled for a decent link for you, I have found nothing, so here goes a brief howto – from memory (you have been warned ;):
- Install prerequisites (hopefully I haven’t missed any that won’t be brought in anyway):
$ sudo apt-get install apache2 php5-common php5-mysql \ libapache2-mod-php5 php5-gd
- Visit Drupal 7 page and copy the link to the tar.gz file for Drupal 7 and download to a suitable directory on the server:
$ wget http://ftp.drupal.org/files/projects/drupal-7.0.tar.gz
- Extract contents and change into the Drupal directory:
$ tar -xvvzf drupal-7.0.tar.gz $ cd drupal-7.0
- Read the INSTALL.txt file and follow the steps to move the installation to its proper home (under debian /var/www):
$ cd .. $ sudo mkdir /var/www/drupal $ sudo mv drupal-7.0/* drupal-7.0/.htaccess /var/www/drupal/
- Set the ownership and group on the new directory:
$ sudo chown -R www-data:www-data /var/www/drupal $ sudo chown root:root /var/www/drupal/.htaccess $ sudo chmod 644 /var/www/drupal/.htaccess
- Read the INSTALL.mysql.txt file (or alternatives) and follow the steps to create the database and database user. The following is more or less what I did:
$ mysql -u root -p mysql> use mysql; mysql> INSERT INTO user (Host,User,Password) VALUES('%','drupal',PASSWORD('drupalpassword')); mysql> create database drupaldb; mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON drupaldb.* TO drupal@localhost IDENTIFIED BY drupalpassword;
- Return to the INSTALL.txt file and continue the remaining steps.
- I cloned /etc/apache2/sites-available/default to /etc/apache2/sites-available/drupal and modified it as appropriate, and then enabled it with:
$ sudo a2ensite drupal
- Alternatively you could probably just edit the default to have:
- I found that I needed to enable mod_rewrite to get the clean urls working:
$ sudo a2enmod rewrite $ sudo /etc/init.d/apache restart
Once installed Drupal 7 looks very attractive and feels a very slick product. I was particularly impressed by the ability to paste a link to a Drupal module tar.gz file and click Install. Doubtless this is not the recommended way to install modules, but it worked fine.
On the downside, I am struggling to find all the modules that I need. As in previous versions of Drupal, there are a great many that have still not updated for Drupal 7. In particular, I would like an instant messaging module, but cannot find such a thing. I would imagine this issue will get easier over time, and I would rather be on the current version now and be able to add features later, than be on the old version now with all features and have the worry about how I am ever going to upgrade!