Under de senaste månaderna har HHVM tagit PHP-gemenskapen med storm. Sedan WordPress 3.9 släpptes är HHVM nu 100 % kompatibel med WordPress.
Tyvärr är HHVM inte riktigt redo att användas i produktion i miljöer med egen värd. Enligt min erfarenhet kraschar HHVM ungefär en gång om dagen, vilket gör det inte lönsamt för en webbplats där hög tillgänglighet är viktig. WP Engine har nyligen släppt projektet Mercury som sömlöst låter HHVM misslyckas på ett elegant sätt genom att falla tillbaka till PHP 5.5 när det misslyckas.
I den här artikeln kommer vi att installera HHVM på en Ubuntu-server som kör den senaste LTS-versionen, 14.04. Detta kan åstadkommas antingen genom att använda ett visualiseringsprogram som VirtualBox (gratis) med en nedladdad Ubuntu ISO-fil, eller genom att använda en molnvärdtjänst. DigitalOcean erbjuder molnservrar för 5 USD i månaden, vilket är vad jag kommer att använda i den här handledningen.
Det första du bör göra är att uppdatera alla paket och beroenden:
$ sudo apt-get update && sudo apt-get upgrade
Installera MySQL
Nu måste du installera MySQL, databasen som driver WordPress.
$ sudo apt-get install mysql-server
Du bör ange ett root MySQL-lösenord av uppenbara säkerhetsskäl. Om du är extra säkerhetsmedveten bör du också köra $ mysql_secure_installation
och följ de nödvändiga stegen för att låsa din server.
Installera Nginx
Nästa sak du behöver göra är att konfigurera en webbserver. Jag föredrar att använda Nginx eftersom det är lätt, mångsidigt och lätt att konfigurera.
$ sudo apt-get install nginx
Installera HHVM
Installera nu HHVM. Det är inte lika enkelt som att installera andra paket eftersom det inte är tillgängligt på Ubuntu-förvaret. Istället måste vi ladda ner det från själva HHVM, tillsammans med några beroenden.
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
Nu när vi har installerat HHVM måste vi köra ett installationsskript som kommer att installera HHVM-modulen för Nginx.
sudo /usr/share/hhvm/install_fastcgi.sh
Starta nu om HHVM och Nginx.
sudo /etc/init.d/hhvm restart
sudo /etc/init.d/nginx restart
Konfigurera webbplatsen
Nästa sak vi behöver göra är att skapa en virtuell värd för vår webbplats. Vanligtvis skulle du skapa en ny virtuell värd för varje webbplats på en server, men eftersom vi testar (och för enkelhetens skull) kommer vi bara att skriva över innehållet i /etc/nginx/sites-available/default
med en enkel fil nedan:
Obs:du behöver root-behörigheter för att redigera den här filen.
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; } }
Nu kan vi ställa in WordPress:
- Ladda om din uppdaterade nginx-konfiguration:
$ sudo service nginx reload
. - Skapa nu en webbrotkatalog:
$ sudo mkdir /var/www
. - Ladda ned WordPress:
$ sudo wget
http://wordpress.org/latest.tar.gz
/var/www/
. - Extrahera WordPress:
$ sudo tar xvf /var/www/latest.tar.gz
. - Flytta WordPress-filer till webbroten:
$ sudo mv /var/www/wordpress/* /var/www/
. - Rensa upp:
$ sudo rm -rf /var/www/wordpress /var/www/latest.tar.gz
. - Ange behörigheter:
$ sudo chmod -R 775 /var/www
. - Ange grupper:
$ sudo chown -R www-data.www-data /var/www
.
Konfigurera WordPress-databasen
Logga in på MySQL $ mysql -u root -p
. Kör nu följande kommandon:
CREATE DATABASE wordpress; CREATE USER wordpress@localhost; GRANT ALL PRIVILEGES ON wordpress.* to username@localhost IDENTIFIED BY 'password'; FLUSH PRIVILEGES; quit
Nu kan du gå till din servers IP-adress och följa den berömda installationen på fem minuter.