NOTE
The virtual machine is deprecated and is not available for download. We are leaving this page for reference only.
Installing Wikidot with all its software dependencies is not easy and in some cases can effectively discourage anyone from actually running or developing Wikidot. Although Debian/Ubuntu is easy to set-up, not everybody is willing to install the whole distro just to play with Wikidot. Software installation is even trickier on Windows or MacOsX machines. Fortunately virtualization is here to the rescue.
For some time we have been using virtual machines in our own development process and recently we have decided to share them with the community.
The virtual machine is ready to work under most of VMWare products, including the free VMWare Player for both Windows and Linux.
Features
Quick description of what is contained in the machine:
- Complete environment to run both Wikidot v1 and v2.
- Linux based on Ubuntu JeOs (development 8.04 Hardy Heron edition).
- By default resides behind a NAT and is accessible only from the Host OS.
- Uses Open Virtual Machine Tools.
- Basic system configuration that follow Debian/Ubuntu guide.
- Installed Java, Ant, FOP, PostgreSQL 8.3, and all other software packages required for Wikidot v2.
- PHP 5.2.4 recompiled to include required extensions and to solve some irritating bugs.
- Uses Wikidot directory from your Host OS (i.e. Wikidot is located on your real machine, not virtual).
- Workspace inside is organized so that it is easy to start with.
- Integrated DNS (dnsmasq) server that resolves wikidot1.dev, wikidot2.dev and wikidot2-build.dev to the virtual machine.
- Wikidot is accessible through *.wikidot1.dev, *.wikidot2.dev and wikidot2-build.dev directly from your browser.
Below is a short VM quickstart:
1. Get VMWare from http://www.vmware.com
2. Download the virtual machine image from oops, dead link
http://files2.wikidot.org/vm/wikidot-dev2-vm-20080220.tar.gz
3. Get Wikidot from SVN into a working dir on your computer —- read more about the repository. You can also set up your worspace with (preferably) Eclipse + PDT/PHPEclipse + Subclipse or Zend Studio Neon.
Note: If you do not have a subversion on your Host, simply create an empty dir and export it as a shared folder to the vm, you will be able to checkout the project from within the vm.
4. Unpack the virtual machine files and add the virtual machine to the VMWare.
5. Before you launch it look at the settings and configure the Shared Folders — "wikidot1" or "wikidot2" must point to the locations where you have a working copy of Wikidot.
6. Launch the machine. It should boot without any issues.
7. Log in using login: wdadmin, password: wdadmin.
8. Find out what is the IP address of the machine by doing:
ifconfig eth0
(look for inet addr:XXX.XXX.XXX.XXX)
9. Open your DNS preferences (on the Host machine) and add the IP address to the list of DNS servers. This will allow us to resolve the .dev domains to the virtual machine.
10. Point your browser to http://www.wikidot2.dev. Anything, even PHP errors, is a good sign. If you get a connection error, "host not found" — no good.
11. Now you can also SSH to your VM by doing:
ssh wdadmin@wikidot2.dev
12. On the virtual machine the shared folders with wikidot1/2 are located in /wikidot/workspace/wikidotX.
13. You can quickly run a few tests to see if everything is working properly:
cd /wikidot/workspace/wikidot2/build
ant generate-site
This will run all the tests and generate a "Build Information Site".
When the process completes (a few minutes) point your browser to http://www.wikidot2-build.dev
14. To try the transformations tools for Wikidot 2 go to http://www.wikidot2.dev/_web/demo.Transform
15. If you are interested in Wikidot v1, checkout the project, set up the "wikidot1" shared folder and point your browser to http://www.wikidot1.dev
Using this for production
At Wikidot we have been successful in using VM images such as above for production. To make the Wikidot installation visible to the outer world (by default the VM gets an IP address behind a NAT) you can:
- change network interface from NAT to Bridged in VMWare Machine preferences. Machine will get a IP address in the same network that your Host machine is. But you would have to change the wdadmin password for security reasons.
- OR play with nat settings in VMWare's config files.
- OR set up an SSH tunnel or port forwarding that forwards some port (most likely 80 for www)
Troubleshooting:
If there are problems with network not being initialized, try to relaunch network:
/etc/init.d/network restart
/etc/init.d/dnsmasq restart
Using image with Virtual Box
Virtual Box (http://www.virtualbox.org) is a virtualization software that works very much like VMWare — it does "full hardware virtualization". As opposed to VMWare, it is free and open-source and eventually we are likely to move from VMWare to Virtual Box at some point.
But even now it looks like one could use the disk image (file is called Wikidot Dev2 Machine-IDE.vmdk) with Virtual Box. We have successfully started a virtual machine but were not able (yet) to use shared folders and we could not get network working. Here is a way that we think should work (please try and update it!):
1. Get Virtual Box from http://www.virtualbox.org or get it as a package for your Linux distribution.
2. Create a new Machine
3. When asked about the HDD storage for it, instead of creating a new one use Wikidot Dev2 Machine-IDE.vmdk from our image.
4. Simply run it. It works out-of-the-box.
Things that should be done:
1. The current image uses Ubuntu JeOs that was created with VMWare in mind so it has problems with any network device that is not vmnet. Try to install a "normal" kernel instead of the "-virtual" one. You might need net connection to do it so you could try it VMWare before you start.
2. To get shared folders working you have to install VirtualBox Guest Additions. It mounts as a cdrom, run the installer and see if it works. Kernel headers are needed for it.
3. /etc/fstab would need to be changed to work with shared folders (vboxfs is a new type of mount).
If anyone can confirm this works and you get a stable working image we will most likely move to Virtual Box too.