{"id":232763,"date":"2023-01-28T17:49:00","date_gmt":"2023-01-28T14:49:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232763"},"modified":"2022-11-10T17:39:44","modified_gmt":"2022-11-10T14:39:44","slug":"hur-staeller-jag-in-hhvm-paa-ubuntu-vps","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/hur-staeller-jag-in-hhvm-paa-ubuntu-vps\/","title":{"rendered":"Hur st\u00e4ller jag in HHVM p\u00e5 Ubuntu VPS?"},"content":{"rendered":"\n<p>Min f\u00f6rsta <a href=\"https:\/\/helloacm.com\/webhosting-review-quickhostuk-web-hosting-is-simply-the-best\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VPS<\/a> (Virtual Private Server) hade bara 512M RAM, 1 k\u00e4rna och 10G h\u00e5rddisk. Senare <a href=\"https:\/\/helloacm.com\/mysql-server-stopped-due-of-out-of-memory-exception-on-ubuntu-vps\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uppgraderade<\/a> jag till 2 k\u00e4rnor, 1G RAM och 20G HDD p\u00e5 grund av en incident med slut p\u00e5 minnet. Men f\u00f6r n\u00e5gra dagar sedan v\u00e4xer trafiken (de flesta av dem \u00e4r fr\u00e5n <a href=\"https:\/\/helloacm.com\/how-to-ban-specified-ips-in-apache2-server\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bots<\/a> ), VPS kunde knappt hantera och det var d\u00e4rf\u00f6r jag <a href=\"https:\/\/helloacm.com\/site-news-vps-upgraded-again-to-handle-large-traffic\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uppgraderade igen<\/a> till 3 k\u00e4rnor och 2GB RAM.<\/p>\n<p>PHP-versionen p\u00e5 VPS \u00e4r 5.5 och d\u00e4rf\u00f6r har den en inbyggd accelerator, <strong>OpCache<\/strong> som cachar PHP-opkod. Opcachen introduceras f\u00f6r att ers\u00e4tta APC (Another PHP Cache), som \u00e4r ett projekt med \u00f6ppen k\u00e4llkod som fr\u00e4mst anv\u00e4nds f\u00f6r att snabba upp PHP-kod f\u00f6re version 5.4.x eller tidigare versioner. HHVM <a href=\"https:\/\/hhvm.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">fungerar<\/a> p\u00e5 liknande s\u00e4tt. Den kompilerar PHP-koden till assembly vid f\u00f6rsta g\u00e5ngen och sedan kommer assemblykoden, om den hittas och fortfarande \u00e4r giltig, att k\u00f6ras utan att omtolka samma PHP-kod. Denna id\u00e9 \u00e4r mycket lik .NET-plattformen d\u00e4r .NET-spr\u00e5ken som C# \u00f6vers\u00e4tts och kompileras till inbyggd kod vid k\u00f6rning (JIT = Just In Time) kompilatorn. Det \u00e4r d\u00e4rf\u00f6r .NET-applikationerna k\u00f6rs l\u00e5ngsamt till en b\u00f6rjan men tenderar att g\u00e5 snabbare senare eftersom de kompileras vid k\u00f6rning till ursprunglig kod och cachelagras.<\/p>\n<p>Naturligtvis finns det andra nya funktioner. Det nya spr\u00e5ket [Hack] \u00e4r baserat p\u00e5 PHP. Vi vet att PHP-spr\u00e5ket \u00e4r ett l\u00f6st spr\u00e5k vilket betyder att du inte beh\u00f6ver ange en typ (det finns faktiskt inga s\u00e4tt att uttryckligen g\u00f6ra detta) f\u00f6r n\u00e5gra variabler. Typerna anv\u00e4nds n\u00e4r de beh\u00f6ver. Hack-spr\u00e5ket \u00e4r ett gradvist typspr\u00e5k vilket betyder att f\u00f6rsta g\u00e5ngen du definierar en typ, och typen inte kan \u00e4ndras. Detta hj\u00e4lper till att fr\u00e4mja robust kod och f\u00f6rb\u00e4ttrar utvecklingseffektiviteten. Detta \u00e4r snarare ett stort \u00e4mne som b\u00f6r introduceras i ett separat inl\u00e4gg.<\/p>\n<p>Installationen av HHVM p\u00e5 Linux (i mitt fall Ubuntu) \u00e4r ganska enkel.<\/p>\n<pre><code>root@uploadbeta:\/var\/www\/helloacm.com\/htdocs\/hhvm# lsb_release -a\nNo LSB modules are available.\nDistributor ID: Ubuntu\nDescription: \u00a0 \u00a0Ubuntu 14.04.1 LTS\nRelease: \u00a0 \u00a0 \u00a0 \u00a014.04\nCodename: \u00a0 \u00a0 \u00a0 trusty<\/code><\/pre>\n<p>Du kan antingen ladda ner de f\u00f6rkompilerade bin\u00e4rfilerna eller k\u00e4llkoden och kompilera den lokalt. F\u00f6ljande installationer fr\u00e5n ett f\u00f6rkompilerat bin\u00e4rt arkiv.<\/p>\n<pre><code>wget -O - <\/code><\/pre>\n<p>Du kan sedan k\u00f6ra f\u00f6ljande kommando f\u00f6r att konfigurera apache- eller ngix-servern.<\/p>\n<pre><code>\/usr\/share\/hhvm\/install_fastcgi.sh<\/code><\/pre>\n<p>Faktum \u00e4r att efter att du har installerat hhvm kan du anv\u00e4nda den p\u00e5 kommandoraden f\u00f6r att k\u00f6ra PHP-k\u00e4llkoden, s\u00e5 h\u00e4r:<\/p>\n<pre><code>hhvm hello-world.php<\/code><\/pre>\n<p>HHVM kommandoradsparametrar<\/p>\n<p>Vi kan tillf\u00e4lligt inaktivera Apache-servern:<\/p>\n<pre><code>sudo service apache2 stop<\/code><\/pre>\n<p>Och k\u00f6r hhvm-servern genom att lyssna p\u00e5 port 80 (s\u00e5 du m\u00e5ste stoppa andra servrar som lyssnar p\u00e5 samma port):<\/p>\n<pre><code>hhvm -m server<\/code><\/pre>\n<p>Och sedan kan du testa PHP-koden i webbl\u00e4saren, som skickas till HHVM-servern.<\/p>\n<p>Om du upplever ett <strong>404 not found<\/strong> &#8211; fel efter installation och konfiguration m\u00e5ste du f\u00f6rmodligen l\u00e4gga till f\u00f6ljande rad till <strong>\/etc\/hhvm\/server.ini<\/strong><\/p>\n<pre><code>hhvm.server.fix_path_info = true<\/code><\/pre>\n<p>Och starta om hhvm med <strong>sudo-tj\u00e4nsten hhvm restart<\/strong>.<\/p>\n<p>Jag har testat och \u00f6vervakat servern ett tag och f\u00f6r att vara \u00e4rlig s\u00e5g jag ingen skillnad f\u00f6rmodligen p\u00e5 grund av den om\u00e4rkliga trafiken. Emellertid \u00e4ndrades processerna som listas av kommandot <strong>htop<\/strong> fr\u00e5n <strong>apache2 -k start<\/strong> till <strong>hhvm<\/strong><\/p>\n<p>Vi kan ocks\u00e5 skapa en PHP-fil som har f\u00f6ljande inneh\u00e5ll och testa om HHVM fungerar i webbl\u00e4saren:<\/p>\n<pre><code>&lt;?php\n  echo  defined('HHVM_VERSION')?'Using HHVM':'Not using HHVM';\n?&gt;<\/code><\/pre>\n<p>WordPress-webbplatserna kan k\u00f6ras med HHVM men HHVM verkar inte st\u00f6dja GB2312-kodning (och kanske andra ocks\u00e5) eftersom det strular med tecknen. PHP -koden f\u00f6r <a href=\"https:\/\/uploadbeta.com\/picture-gallery\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">fotogalleriet<\/a> visade en tom sida med HHVM och jag har fortfarande inte r\u00e4knat ut orsaken.<\/p>\n<p>Jag best\u00e4mde mig \u00e4nd\u00e5 f\u00f6r att bli av med HHVM, det nuvarande paketet: Apache2 + PHP5.5 + Mysql fungerar ganska bra. Kanske kommer jag att ta tillbaka HHVM i framtiden om VPS:n upplever enorm trafik igen.<\/p>\n<pre><code>sudo service hhvm stop\nsudo apt-get remove hhvm<\/code><\/pre>\n<p>Vi m\u00e5ste \u00e5terst\u00e4lla apache2-inst\u00e4llningarna efter HHVM-avinstallationen.<\/p>\n<pre><code>sudo a2dismod proxy_fcgi\nsudo a2dismod proxy\nrm \/etc\/apache2\/mods-enable\/hhvm*.conf\nsudo service apache2 restart<\/code><\/pre>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hur st\u00e4ller jag in HHVM p\u00e5 Ubuntu VPS?<\/p>\n","protected":false},"author":1,"featured_media":224669,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[1070,848,724],"tags":[1173],"class_list":["post-232763","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-en-dator","category-handledningar","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/232763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=232763"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/232763\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/224669"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=232763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=232763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=232763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}