{"id":232795,"date":"2023-01-28T17:36:00","date_gmt":"2023-01-28T14:36:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232795"},"modified":"2022-11-10T17:48:25","modified_gmt":"2022-11-10T14:48:25","slug":"kuinka-asentaa-hhvm-ubuntu-vps-aeaen","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/kuinka-asentaa-hhvm-ubuntu-vps-aeaen\/","title":{"rendered":"Kuinka asentaa HHVM Ubuntu VPS:\u00e4\u00e4n?"},"content":{"rendered":"\n<p>Alkuper\u00e4isess\u00e4 <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> :ss\u00e4ni (Virtual Private Server) oli vain 512M RAM, 1 ydin ja 10G HDD. My\u00f6hemmin <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\">p\u00e4ivitin<\/a> 2 ytimeen, 1G RAM:iin ja 20G HDD:hen muistin loppumisen vuoksi. Muutama p\u00e4iv\u00e4 sitten liikenne kuitenkin kasvaa (suurin osa niist\u00e4 tulee <a href=\"https:\/\/helloacm.com\/how-to-ban-specified-ips-in-apache2-server\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">boteilta<\/a> ), VPS tuskin selvisi ja siksi <a href=\"https:\/\/helloacm.com\/site-news-vps-upgraded-again-to-handle-large-traffic\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">p\u00e4ivitin taas<\/a> 3 ytimeen ja 2 Gt RAM:iin.<\/p>\n<p>VPS:n PHP-versio on 5.5, joten siin\u00e4 on sis\u00e4\u00e4nrakennettu kiihdytin, <strong>OpCache<\/strong>, joka tallentaa PHP-k\u00e4ytt\u00f6koodin v\u00e4limuistiin. Opcache esitell\u00e4\u00e4n korvaamaan APC (Another PHP Cache), joka on avoimen l\u00e4hdekoodin projekti, jota k\u00e4ytet\u00e4\u00e4n p\u00e4\u00e4asiassa PHP-koodin nopeuttamiseen ennen versiota 5.4.x tai aiempia versioita. HHVM toimii <a href=\"https:\/\/hhvm.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">samalla<\/a> tavalla. Se k\u00e4\u00e4nt\u00e4\u00e4 PHP-koodin kokoonpanoksi ensimm\u00e4isell\u00e4 kerralla ja sitten kokoonpanokoodi, jos se l\u00f6ytyy ja on edelleen voimassa, suoritetaan tulkitsematta samaa PHP-koodia uudelleen. T\u00e4m\u00e4 idea on hyvin samanlainen kuin .NET-alusta, jossa .NET-kielet, kuten C#, k\u00e4\u00e4nnet\u00e4\u00e4n ja k\u00e4\u00e4nnet\u00e4\u00e4n alkuper\u00e4iseen koodiin ajonaikaisessa (JIT = Just In Time) -k\u00e4\u00e4nt\u00e4j\u00e4ss\u00e4. T\u00e4st\u00e4 syyst\u00e4 .NET-sovellukset toimivat aluksi hitaasti, mutta yleens\u00e4 nopeutuvat my\u00f6hemmin, koska ne k\u00e4\u00e4nnet\u00e4\u00e4n ajon aikana alkuper\u00e4iseen koodiin ja tallennetaan v\u00e4limuistiin.<\/p>\n<p>Tietysti on muitakin uusia ominaisuuksia. Uusi kieli [Hack] perustuu PHP:hen. Tied\u00e4mme, ett\u00e4 PHP-kieli on l\u00f6yh\u00e4tyyppinen kieli, mik\u00e4 tarkoittaa, ett\u00e4 sinun ei tarvitse m\u00e4\u00e4ritt\u00e4\u00e4 tyyppi\u00e4 (itse asiassa ei ole mit\u00e4\u00e4n tapoja tehd\u00e4 sit\u00e4 erikseen) millek\u00e4\u00e4n muuttujalle. Tyyppej\u00e4 k\u00e4ytet\u00e4\u00e4n, kun niit\u00e4 tarvitaan. Hack-kieli on asteittainen kieli, joka tarkoittaa, ett\u00e4 kun m\u00e4\u00e4rit\u00e4t tyypin ensimm\u00e4isen kerran, tyyppi\u00e4 ei voi muuttaa. T\u00e4m\u00e4 auttaa edist\u00e4m\u00e4\u00e4n vankkaa koodia ja parantamaan kehitystehokkuutta. T\u00e4m\u00e4 on melko iso aihe, joka pit\u00e4isi esitell\u00e4 erillisess\u00e4 postauksessa.<\/p>\n<p>HHVM:n asennus Linuxiin (minun tapauksessani Ubuntuun) on melko yksinkertaista.<\/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>Voit joko ladata valmiiksi k\u00e4\u00e4nnetyt binaarit tai l\u00e4hdekoodin ja k\u00e4\u00e4nt\u00e4\u00e4 sen paikallisesti. Seuraavat asennukset valmiiksi k\u00e4\u00e4nnetyst\u00e4 binaarisesta arkistosta.<\/p>\n<pre><code>wget -O - <\/code><\/pre>\n<p>Voit sitten suorittaa seuraavan komennon m\u00e4\u00e4ritt\u00e4\u00e4ksesi apache- tai ngix-palvelimen.<\/p>\n<pre><code>\/usr\/share\/hhvm\/install_fastcgi.sh<\/code><\/pre>\n<p>Itse asiassa hhvm:n asentamisen j\u00e4lkeen voit k\u00e4ytt\u00e4\u00e4 sit\u00e4 komentorivill\u00e4 PHP-l\u00e4hdekoodin suorittamiseen seuraavasti:<\/p>\n<pre><code>hhvm hello-world.php<\/code><\/pre>\n<p>HHVM-komentoriviparametrit<\/p>\n<p>Voimme poistaa Apache-palvelimen v\u00e4liaikaisesti k\u00e4yt\u00f6st\u00e4:<\/p>\n<pre><code>sudo service apache2 stop<\/code><\/pre>\n<p>Ja suorita hhvm-palvelin kuuntelemalla porttia 80 (joten sinun on pys\u00e4ytett\u00e4v\u00e4 muut palvelimet, jotka kuuntelevat samaa porttia):<\/p>\n<pre><code>hhvm -m server<\/code><\/pre>\n<p>Ja sitten voit testata PHP-koodia selaimessa, joka v\u00e4litet\u00e4\u00e4n HHVM-palvelimelle.<\/p>\n<p>Jos saat <strong>404 ei l\u00f6ydy<\/strong> -virheen asennuksen ja m\u00e4\u00e4rityksen j\u00e4lkeen, sinun on luultavasti lis\u00e4tt\u00e4v\u00e4 seuraava rivi tiedostoon <strong>\/etc\/hhvm\/server.ini<\/strong><\/p>\n<pre><code>hhvm.server.fix_path_info = true<\/code><\/pre>\n<p>Ja k\u00e4ynnist\u00e4 hhvm uudelleen k\u00e4ytt\u00e4m\u00e4ll\u00e4 <strong>sudo-palvelua hhvm restart<\/strong>.<\/p>\n<p>Olen testannut ja seurannut palvelinta jonkin aikaa ja rehellisesti sanottuna en n\u00e4hnyt mit\u00e4\u00e4n eroa luultavasti huomaamattoman liikenteen takia. Kuitenkin komennolla <strong>htop<\/strong> luetellut prosessit muuttuivat <strong>apache2 -k<\/strong> <strong>startista hhvm<\/strong>: ksi<\/p>\n<p>Voimme my\u00f6s luoda PHP-tiedoston, jossa on seuraava sis\u00e4lt\u00f6 ja testata, toimiiko HHVM selaimessa:<\/p>\n<pre><code>&lt;?php\n  echo  defined('HHVM_VERSION')?'Using HHVM':'Not using HHVM';\n?&gt;<\/code><\/pre>\n<p>WordPress-sivustoja voidaan k\u00e4ytt\u00e4\u00e4 HHVM:ll\u00e4, mutta HHVM ei n\u00e4yt\u00e4 tukevan GB2312-koodausta (ja ehk\u00e4 muitakin), koska se sotkee \u200b\u200bmerkkej\u00e4. <a href=\"https:\/\/uploadbeta.com\/picture-gallery\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Kuvagallerian<\/a> PHP &#8211; koodi n\u00e4ytti tyhj\u00e4n sivun HHVM:ll\u00e4, enk\u00e4 ole viel\u00e4k\u00e4\u00e4n selvitt\u00e4nyt syyt\u00e4.<\/p>\n<p>P\u00e4\u00e4tin silti p\u00e4\u00e4st\u00e4 eroon HHVM:st\u00e4, nykyinen paketti: Apache2 + PHP5.5 + Mysql toimii melko hyvin. Ehk\u00e4 tuon HHVM:n takaisin tulevaisuudessa, jos VPS kokee j\u00e4lleen valtavaa liikennett\u00e4.<\/p>\n<pre><code>sudo service hhvm stop\nsudo apt-get remove hhvm<\/code><\/pre>\n<p>Meid\u00e4n on palautettava apache2-asetukset HHVM-asennuksen poistamisen j\u00e4lkeen.<\/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\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kuinka asentaa HHVM Ubuntu VPS:\u00e4\u00e4n?<\/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":[719,843,1066],"tags":[1166],"class_list":["post-232795","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-opetusohjelmia","category-tietokone","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/232795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=232795"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/232795\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/224669"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=232795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=232795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=232795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}