Installing Ushahidi on a Wamp Server

Download PDF

A repeat of some notes I left on the Ushahidi wikisite, just in case they’re useful to anyone who wants to play with Ushahidi on an Windows machine offline.

Yes, yes, I know, it’s Windows, it’s WAMP, it’s difficult… but I want to run an Ushahidi instance offline, on the Windows machine that I take everywhere with me. And that Windows machine is a 64-bit Windows 7 machine which just adds that little bit more complexity to the process. Here’s what I know so far.

The process:

  • Install a WAMP server on your PC. For my 64-bit machine, I have the 64-bit php5.3 version from http://www.wampserver.com/en/. Because I’m using the 64-bit version, I also have to install Visual C++ libraries, e.g. “Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)” from http://www.microsoft.com/en-us/download/details.aspx?id=13523
  • Fix the Curl problem. This is a 64-bit issue: the Curl files that were included in WAMP don’t work properly on 64-bit machines. Go to this blogpage, look for “fixed Curl extensions” (you need this – not the Curl files above them), and find the file for your WAMP’s version of PHP. There are 2 of these: get the one without nts in its title, e.g. for my WAMP server using PHP 5.3.13, that’s php_curl-5.3.13-VC9-x64.zip. Unzip that file, and you’ll see a file called “php_curl.dll” in it. Move php_curl.dll into directory c:/wamp/bin/php/php5.3.13/ext/ (you’ll overwrite the existing copy of php_curl.dll, but that’s okay). You also need to enable Curl by uncommenting a line in two WAMP files (for reference, these are c:/wamp/bin/php/php5.3.13/php.ini and c:/wamp/bin/apache/apache2.2.22/php.ini in my copy of WAMP).
  • Put Ushahidi into the WAMP directories. You can’t just download Ushahidi from http://download.ushahidi.com/ because the git command for updating the submodules (below) won’t work: you have to use git. Luckily, there’s a Windows version of git that makes this easier: http://windows.github.com/. Wamp will have created a directory c:/wamp (unless you told it to put the directory somewhere else); the place to put packages is in c:/wamp/www. Go to c:/wamp/www, and use git to install the web version of Ushahidi into it: I have the command-line version of git on my machine, and type “git clone https://github.com/ushahidi/Ushahidi_Web” into my terminal window from directory c:/wamp/www to do this. NB: In the notes below, I assume that your Ushahidi directory is called c:/wamp/www/ushahidi
  • Update Ushahidi submodules. Open a windows command prompt, and go to the Ushahidi directory (e.g. type ‘cd c:\wamp\www\ushahidi’ in the command prompt). Type “git submodule update –init” in the command prompt (or you’ll see ui_main.alerts etc instead of labels on the ushahidi main page). Note that this takes a while…
  • Log out of Skype. You need to do this because Skype interferes with the WAMP server, i.e. WAMP’s “W” icon will go orange, but not green. You can restart Skype once you’ve started up WAMP…
  • Start WAMP.  In Windows7, that’s start menu->all programs->wamp server->start wamp server. You’ll see a little red “W” symbol appear on your toolbar (look at the bottom right hand side of your screen). Click on it, to see the WAMP menu.
  • Create the Ushahidi database. Click ‘phpmyadmin’ on the WAMP menu. Click the “databases” tab, then put you database name (make one up) after “create database” and click “create”.
  • Make the Ushahidi URLs work.  Ushahidi typically uses clean addresses like “http://www.yourushahidi.com/reports” rather than php addresses like “http://www.yourushahidi.com/index.php?kohana_uri=reports”.  You need to: click ‘Apache’ on the WAMP menu, then ‘apache modules’.  This gives you a list of modules.  Scroll down, find “rewrite_module” and click on “rewrite_module” to get a tick next to it.
  • Install Ushahidi. Click ‘localhost’ on the WAMP menu, select ‘ushahidi’ under “Your Projects”, and follow the Ushahidi install instructions.
  • Make the Ushahidi work with localhost. Edit file wamp/www/yourushahidi/application/config/config.php – change the line “$config[‘site_domain’] = ‘yourushahidi’;” to “$config[‘site_domain’] = ‘localhost/yourushahidi’;”.

Things that can go wrong:

  • Wamp says ‘Aestan Tray Menu has stopped working’. This is a 64-bit problem. Fix: either install the 32-bit version of WAMP instead, or install the 64-bit version and the “Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)”.
  • Wamp starts, but the little “W” won’t go green. Wamp fights Skype for a port. Fix: log out of Skype and try again. You can log back into Skype once the W has gone green.
  • Ushahidi install window says “the Curl extension is disabled”. Fix: replace the curl .dll file, as described above; check that curl is uncommented in both WAMP php.ini files (see above).
  • Labels on ushahidi front page look wrong, e.g. Ui_main.alerts. Fix: type “git submodule update –init” in a command window in the ushahidi directory.
  • “Not Found. The requested URL /yourushahidi/reports was not found on this server.” appears when you try to access http://localhost/yourushahidi/reports, but address http://localhost/Ushahidi_Web-wvspeed/index.php?kohana_uri=reports works fine. Fix: follow the instructions above to “make the ushahidi urls work”.
  • Your Ushahidi homepage looks wierd – you can’t see the map, and the text is all on the left-hand side.  Fix: follow the instructions above to “make the Ushahidi work with localhost”.
  • Other things go wrong. Fix: see Ushahidi wiki or post on the Ushahidi forum.