✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak skonfigurować HHVM na Ubuntu VPS?

8

Mój początkowy VPS (Virtual Private Server) miał tylko 512 MB pamięci RAM, 1 rdzeń i 10 GB HDD. Później zaktualizowałem do 2 rdzeni, 1G RAM i 20G HDD z powodu incydentu braku pamięci. Jednak kilka dni temu ruch rośnie (większość z nich pochodzi z botów ), VPS ledwo sobie radził i dlatego ponownie uaktualniłem do 3 rdzeni i 2 GB RAM.

Wersja PHP w VPS to 5.5 i dlatego ma wbudowany akcelerator OpCache, który buforuje kod PHP. Opcache został wprowadzony w celu zastąpienia APC (Another PHP Cache), który jest projektem open source, który jest używany głównie do przyspieszenia kodu PHP przed wersją 5.4.x lub wcześniejszą. HHVM działa w podobny sposób. Kompiluje kod PHP do asemblera za pierwszym razem, a następnie kod asemblera, jeśli zostanie znaleziony i nadal jest poprawny, zostanie wykonany bez ponownej interpretacji tego samego kodu PHP. Ten pomysł jest bardzo podobny do platformy .NET, gdzie języki .NET, takie jak C#, są tłumaczone i kompilowane do kodu natywnego w kompilatorze wykonawczym (JIT = Just In Time). Dlatego aplikacje .NET początkowo działają wolno, ale później mają tendencję do przyspieszania, ponieważ są kompilowane w czasie wykonywania do kodu natywnego i buforowane.

Oczywiście są inne nowe funkcje. Nowy język [Hack] jest oparty na PHP. Wiemy, że język PHP jest językiem o luźnych typach, co oznacza, że ​​nie musisz określać typu (w rzeczywistości nie ma możliwości, aby to zrobić jawnie) dla żadnych zmiennych. Typy są używane, gdy muszą. Język hakowania jest stopniowym językiem tekstowym, co oznacza, że ​​przy pierwszym zdefiniowaniu typu nie można go zmienić. Pomaga to promować solidny kod i poprawia wydajność programowania. To dość obszerny temat, który warto poruszyć w osobnym poście.

Instalacja HHVM na Linuksie (w moim przypadku Ubuntu) jest dość prosta.

root@uploadbeta:/var/www/helloacm.com/htdocs/hhvm# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description:    Ubuntu 14.04.1 LTS Release:        14.04 Codename:       trusty

Możesz pobrać wstępnie skompilowane pliki binarne lub kod źródłowy i skompilować go lokalnie. Następujące instalacje są instalowane ze wstępnie skompilowanego repozytorium binarnego.

wget -O -

Następnie możesz uruchomić następujące polecenie, aby skonfigurować serwer apache lub ngix.

/usr/share/hhvm/install_fastcgi.sh

W rzeczywistości, po zainstalowaniu hhvm, możesz użyć go w wierszu poleceń do wykonania kodu źródłowego PHP, tak jak poniżej:

hhvm hello-world.php

Parametry wiersza poleceń HHVM

Możemy tymczasowo wyłączyć serwer Apache:

sudo service apache2 stop

I uruchom serwer hhvm, nasłuchując na porcie 80 (więc musisz zatrzymać inne serwery, które nasłuchują na tym samym porcie):

hhvm -m server

A potem możesz przetestować kod PHP w przeglądarce, który jest przekazywany do serwera HHVM.

Jeśli po instalacji i konfiguracji wystąpi błąd 404 nie znaleziono, prawdopodobnie należy dodać następujący wiersz do pliku /etc/hhvm/server.ini

hhvm.server.fix_path_info = true

I uruchom ponownie hhvm za pomocą usługi sudo hhvm restart.

Przez jakiś czas testowałem i monitorowałem serwer i szczerze mówiąc nie zauważyłem żadnej różnicy prawdopodobnie z powodu niezauważalnego ruchu. Jednak procesy wymienione przez polecenie htop zmieniły się z apache2 -k start na hhvm

Możemy również stworzyć plik PHP, który ma następującą zawartość i sprawdzić, czy HHVM działa w przeglądarce:

Witryny wordpress można uruchomić przy użyciu HHVM, ale HHVM wydaje się nie obsługiwać kodowania GB2312 (i może także innych), ponieważ miesza ze znakami. Kod PHP galerii zdjęć pokazał pustą stronę przy użyciu HHVM, a ja nadal nie odkryłem przyczyny.

Nadal postanowiłem pozbyć się HHVM, obecny pakiet: Apache2 + PHP5.5 + Mysql działa całkiem dobrze. Być może w przyszłości przywrócę HHVM, jeśli VPS ponownie doświadczy dużego ruchu.

sudo service hhvm stop sudo apt-get remove hhvm

Musimy przywrócić ustawienia Apache2 po odinstalowaniu HHVM.

sudo a2dismod proxy_fcgi sudo a2dismod proxy rm /etc/apache2/mods-enable/hhvm*.conf sudo service apache2 restart

Źródło nagrywania: helloacm.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów