PHP/HHVM
The PHP engine runs the MediaWiki source code. However, rather than using the conventional PHP engine, this configuration will use Facebook’s HHVM for significantly higher performance. Follow these instructions to set up the HHVM package:
- Debian/Ubuntu: https://docs.hhvm.com/hhvm/installation/linux
- RHEL/CentOS: https://github.com/facebook/hhvm/wiki/Prebuilt-Packages-on-Centos-7.x
First, edit the HHVM configuration file, and in line 7, replace the server port line with the following to activate the UNIX socket:
/etc/hhvm/server.ini
;hhvm.server.port = 9000 hhvm.server.user = nginx hhvm.server.file_socket = /var/run/hhvm/hhvm.sock
Systemd Service
Then, create a customized Systemd configuration file for HHVM, which will provide Nginx with the ability to read and write to the UNIX socket:
/etc/systemd/system/hhvm.service
[Unit] Description=HHVM HipHop Virtual Machine (FCGI) After=network.target nginx.service mariadb.service [Service] User=nginx Group=nginx ExecStart=/usr/local/bin/hhvm --config /etc/hhvm/server.ini --user nginx --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/hhvm.sock [Install] WantedBy=multi-user.target
Now, reload the systemd services. You only need to do this whenever you edit the systemd service files.
sudo systemctl daemon-reload
Finally, start HHVM.
sudo systemctl start hhvm
If it works out, enable the hhvm service.
sudo systemctl enable hhvm