Tuesday, 26 October 2010

Quickly configure hellaVCR on Windows XP

If you're looking for a very easy way to install hellaVCR on Windows without the hassle of running Apache then this guide is for you.  These notes are from my test install on Windows XP; I expect them to apply equally to Windows 7 which is the ultimate goal for this install.

This install will be done entirely without using installers so it should be possible to move the top-level directory between machines without issues.  Since there are a number of steps to get this installed, this should mean you never need to do it again if you keep a backup.  I'll be installing everything into c:\hellavcr but this path is entirely up to you.
  • Download and extract hellaVCR to c:\hellavcr\hellavcr http://code.google.com/p/hellavcr/downloads/list
    • Rename sample.tv.xml and sample.hellavcr.config.php to not have sample. prefixed
    • Configure hellavcr.config.php
  • Download and extract PHP to c:\hellavcr\php http://windows.php.net/download/
    • Try and run php-cgi.exe.  If you get any errors then install Microsoft Visual C++ 2008 Redistributable (from microsoft.com or msdn.com, nowhere else)
    • If further errors are seen use Dependency Walker to determine which DLL is missing and install it (all beyond the scope of this blog post) http://www.dependencywalker.com/
  • Download Mongoose (a lightweight Windows web server with CGI support) to c:\hellavcr\mongoose.exe http://code.google.com/p/mongoose/downloads/list
    • Enable PHP CGI support by creating mongoose.conf (at the date of writing the sample mongoose.conf from the mongoose page is inconsistent with the mongoose configuration directives specified in the manual):
document_root c:\hellavcr\hellavcr
listening_ports 80
error_log_file c:\hellavcr\mongoose_error_log.txt
access_log_file c:\hellavcr\mongoose_access_log.txt
cgi_interpreter c:\hellavcr\php\php-cgi.exe
index_files index.php,index.html,index.htm
  • Configure PHP, cURL and OpenSSL
    • Copy c:\hellavcr\php\php.ini-production to c:\hellavcr\php\php.ini
    • Edit php.ini and replace ";extension=php_curl.dll" with "extension=./ext/php_curl.dll"
    • Also replace ";extension=php_openssl.dll" with "extension=./ext/php_openssl.dll"
  •  Start Mongoose
    • It creates a system tray icon which allows you to install a Windows service
  • Visit http://127.0.0.1/ and check everything works correctly
    • Hopefully it does, if not see the mongoose_access_log.txt and mongoose_error_log.txt logs
    • Try running php-cgi.exe -v to see if any errors are listed