Thanks to some fantastic work by Erik Bernhardson[0], MediaWiki-Vagrant can now run MediaWiki on HHVM. The setup runs HHVM behind Apache using FastCGI, which is a close match to how we think we'll be running it in production. It uses the 'hhvm-nightly' packages from Facebook, so you can test MediaWiki core and extensions against cutting-edge builds.
To switch MediaWiki from PHP to HHVM, simply run 'vagrant enable-role hhvm', followed by 'vagrant provision'. To switch back to PHP, run 'vagrant disable-role hhvm' and reprovision.
Please try it out and FILE BUGS for any issues you encounter. This includes not only provisioning failures (which should be reported under the MediaWiki-Vagrant product in Bugzilla) but also any instances of PHP code breaking under HHVM. There is now an 'hhvm' keyword in Bugzilla you can use to tag your report.
Three cheers for Erik B., and for Facebook's Paul Tarjan, whose recent packaging work makes this possible.
[0]: https://gerrit.wikimedia.org/r/#/c/105834/
--- Ori Livneh ori@wikimedia.org
Do you know where I can find these hhvm-nightly packages if I want to try them out on my own?
Last time I tested hhvm on translatewiki.net, there were fastcgi parameter passing problems which blocked further testing there. -Niklas
On Sun, Jan 19, 2014 at 5:39 PM, Niklas Laxström niklas.laxstrom@gmail.comwrote:
Do you know where I can find these hhvm-nightly packages if I want to try them out on my own?
Last time I tested hhvm on translatewiki.net, there were fastcgi parameter passing problems which blocked further testing there. -Niklas
It's part of the package repository provided by Facebook @ http://dl.hhvm.com/ubuntu/ If you're running Precise you can simply add this entry to sources.list:
deb http://dl.hhvm.com/ubuntu precise main
I also forgot to mention in my previous e-mail that if you aren't sure which interpreter is running, you can simply check under "Installed software" (or localized equivalent) in Special:Version. HHVM appears as '5.4.999-hiphop (srv)'.
On Sun, Jan 19, 2014 at 1:38 PM, Ori Livneh ori@wikimedia.org wrote:
To switch MediaWiki from PHP to HHVM, simply run 'vagrant enable-role hhvm', followed by 'vagrant provision'
I did this and `vagrant provision` failed with
err: /Stage[main]/Hhvm/Package[hhvm-nightly]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install hhvm-nightly' returned 100: Reading package lists... Building dependency tree... Reading state information... Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation:
The following packages have unmet dependencies: hhvm-nightly : Depends: libmemcached6 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
("you have held broken packages in your arms", so poetic :-) )
The issue might be old version of php5-memcached using libmemcached10 which conflicts with libmemcached6. I ran `sudo apt-get install php5-memcached` which updated to libmemcached11 and then `vagrant provision` worked fine. I didn't file a bug.
(I normally run `sudo unattended-upgrade` to update MW-Vagrant with security updates but don't otherwise upgrade packages, which AIUI is similar to how puppet updates labs instances. I added "Update system software?" to https://www.mediawiki.org/wiki/MediaWiki-Vagrant#How_do_I....3F , Be Bold.)
if you aren't sure which interpreter is running, you can simply check under
"Installed software" (or localized equivalent) in Special:Version. HHVMappears as '5.4.999-hiphop (srv)'
My Special:Version says "PHP 5.3.10-1ubuntu3.9 (fpm-fcgi)" :-( I've tried killing php5-fpm, restarting apache2, ` sudo /etc/init.d/hhvm start` etc. More details in https://bugzilla.wikimedia.org/show_bug.cgi?id=60384
-- =S Page Features engineer
wikitech-l@lists.wikimedia.org