En los últimos meses, HHVM ha conquistado a la comunidad de PHP. Desde que se lanzó WordPress 3.9, HHVM ahora es 100% compatible con WordPress.
Desafortunadamente, HHVM no está del todo listo para su uso en producción en entornos autohospedados. En mi experiencia, HHVM falla aproximadamente una vez al día, lo que hace que no sea viable para un sitio donde la alta disponibilidad es importante. Recientemente, WP Engine ha lanzado el proyecto Mercury que permite que HHVM falle sin problemas al volver a PHP 5.5 cuando falla.
En este artículo, instalaremos HHVM en un servidor Ubuntu que ejecute la última versión de LTS, 14.04. Esto se puede lograr usando un programa de visualización como VirtualBox (gratis) con un archivo ISO de Ubuntu descargado o usando un servicio de alojamiento en la nube. DigitalOcean ofrece servidores en la nube por $5 al mes, que es lo que usaré en este tutorial.
Lo primero que debes hacer es actualizar todos los paquetes y dependencias:
$ sudo apt-get update && sudo apt-get upgrade
Instalar MySQL
Ahora necesita instalar MySQL, la base de datos que impulsa WordPress.
$ sudo apt-get install mysql-server
Debe establecer una contraseña raíz de MySQL por razones obvias de seguridad. Si está más consciente de la seguridad, también debe ejecutar $ mysql_secure_installation
y siga los pasos necesarios para bloquear su servidor.
Instalar Nginx
Lo siguiente que debe hacer es configurar un servidor web. Prefiero usar Nginx porque es liviano, versátil y fácil de configurar.
$ sudo apt-get install nginx
Instalar HHVM
Ahora instale HHVM. No es tan sencillo como instalar otros paquetes porque no está disponible en el repositorio de Ubuntu. En su lugar, tenemos que descargarlo desde HHVM, junto con algunas dependencias.
wget -O - https://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add - echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-get update cd /tmp && wget http://security.ubuntu.com/ubuntu/pool/main/libm/libmemcached/libmemcached10_1.0.8-1ubuntu2_amd64.de... sudo dpkg -i libmemcached10_1.0.8-1ubuntu2_amd64.deb && rm libmemcached10_1.0.8-1ubuntu2_amd64.deb sudo apt-get install -y libgnutls26 wget http://mirrors.kernel.org/ubuntu/pool/main/r/rtmpdump/librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb && sudo dpkg -i librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb && rm librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb sudo apt-get install hhvm
Ahora que hemos instalado HHVM, debemos ejecutar un script de instalación que instalará el módulo HHVM para Nginx.
sudo /usr/share/hhvm/install_fastcgi.sh
Ahora reinicie HHVM y Nginx.
sudo /etc/init.d/hhvm restart
sudo /etc/init.d/nginx restart
Configurar el sitio web
Lo siguiente que debemos hacer es configurar un host virtual para nuestro sitio web. Por lo general, crearía un nuevo host virtual para cada sitio web en un servidor, pero dado que estamos probando (y para simplificar), solo vamos a sobrescribir el contenido de /etc/nginx/sites-available/default
con un archivo simple a continuación:
Nota:necesita permisos de root para editar este archivo.
server { listen 80; server_name localhost; # or replace localhost with domain name include hhvm.conf; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /var/www; index index.php; location / { try_files $uri $uri/ /index.php?$args; } }
Ahora podemos configurar WordPress:
- Vuelva a cargar su configuración nginx actualizada:
$ sudo service nginx reload
. - Ahora cree un directorio raíz web:
$ sudo mkdir /var/www
. - Descargar WordPress:
$ sudo wget
http://wordpress.org/latest.tar.gz
/var/www/
. - Extraer WordPress:
$ sudo tar xvf /var/www/latest.tar.gz
. - Mover archivos de WordPress a la raíz web:
$ sudo mv /var/www/wordpress/* /var/www/
. - Limpiar:
$ sudo rm -rf /var/www/wordpress /var/www/latest.tar.gz
. - Establecer permisos:
$ sudo chmod -R 775 /var/www
. - Establecer grupos:
$ sudo chown -R www-data.www-data /var/www
.
Configurar la base de datos de WordPress
Inicie sesión en MySQL $ mysql -u root -p
. Ahora ejecuta los siguientes comandos:
CREATE DATABASE wordpress; CREATE USER wordpress@localhost; GRANT ALL PRIVILEGES ON wordpress.* to username@localhost IDENTIFIED BY 'password'; FLUSH PRIVILEGES; quit
Ahora puede ir a la dirección IP de su servidor y seguir la famosa instalación de cinco minutos.