I løbet af de sidste par måneder har HHVM taget PHP-fællesskabet med storm. Siden WordPress 3.9 blev udgivet, er HHVM nu 100 % kompatibel med WordPress.
Desværre er HHVM ikke helt klar til brug i produktion i selv-hostede miljøer. Efter min erfaring går HHVM ned cirka én gang om dagen, hvilket gør det ikke levedygtigt for et websted, hvor høj tilgængelighed er vigtig. For nylig har WP Engine udgivet projektet Mercury, som problemfrit tillader HHVM at svigte elegant ved at falde tilbage til PHP 5.5, når det fejler.
I denne artikel skal vi installere HHVM på en Ubuntu-server, der kører den seneste LTS-udgivelse, 14.04. Dette kan opnås enten ved at bruge et visualiseringsprogram som VirtualBox (gratis) med en downloadet Ubuntu ISO-fil eller ved at bruge en cloud-hostingtjeneste. DigitalOcean tilbyder cloud-servere for 5 USD om måneden, hvilket er det, jeg vil bruge i dette selvstudie.
Den første ting du skal gøre er at opdatere alle pakker og afhængigheder:
$ sudo apt-get update && sudo apt-get upgrade
Installer MySQL
Nu skal du installere MySQL, databasen, der driver WordPress.
$ sudo apt-get install mysql-server
Du bør indstille en root MySQL-adgangskode af åbenlyse sikkerhedsmæssige årsager. Hvis du er ekstra sikkerhedsbevidst, bør du også køre $ mysql_secure_installation
og følg de nødvendige trin for at låse din server.
Installer Nginx
Den næste ting du skal gøre er at konfigurere en webserver. Jeg foretrækker at bruge Nginx, fordi det er let, alsidigt og nemt at konfigurere.
$ sudo apt-get install nginx
Installer HHVM
Installer nu HHVM. Det er ikke så ligetil som at installere andre pakker, fordi det ikke er tilgængeligt på Ubuntu-lageret. I stedet skal vi downloade det fra selve HHVM sammen med et par afhængigheder.
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 hvor vi har installeret HHVM, skal vi køre et installationsscript, der installerer HHVM-modulet til Nginx.
sudo /usr/share/hhvm/install_fastcgi.sh
Genstart nu HHVM og Nginx.
sudo /etc/init.d/hhvm restart
sudo /etc/init.d/nginx restart
Opsæt webstedet
Den næste ting, vi skal gøre, er at oprette en virtuel vært til vores hjemmeside. Typisk vil du oprette en ny virtuel vært for hver hjemmeside på en server, men da vi tester (og for nemheds skyld) vil vi bare overskrive indholdet af /etc/nginx/sites-available/default
med en simpel fil nedenfor:
Bemærk:du skal bruge root-tilladelser for at redigere denne fil.
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 konfigurere WordPress:
- Genindlæs din opdaterede nginx-konfiguration:
$ sudo service nginx reload
. - Opret nu en web-rodmappe:
$ sudo mkdir /var/www
. - Download WordPress:
$ sudo wget
http://wordpress.org/latest.tar.gz
/var/www/
. - Udtræk WordPress:
$ sudo tar xvf /var/www/latest.tar.gz
. - Flyt WordPress-filer til webroden:
$ sudo mv /var/www/wordpress/* /var/www/
. - Ryd op:
$ sudo rm -rf /var/www/wordpress /var/www/latest.tar.gz
. - Indstil tilladelser:
$ sudo chmod -R 775 /var/www
. - Indstil grupper:
$ sudo chown -R www-data.www-data /var/www
.
Opsæt WordPress-databasen
Log ind på MySQL $ mysql -u root -p
. Kør nu følgende kommandoer:
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å til din servers IP-adresse og følge den berømte fem-minutters installation.