在 Ubuntu 上配置高效能的 HHVM 環境
HHVM全稱為 HipHop Virtual Machine,它是一個開源虛擬機器,用來執行由 Hack(一種程式語言)和 PHP 開發應用。HHVM 在保證了 PHP 程式設計師最關注的高靈活性的要求下,通過使用最新的編譯方式來取得了非凡的效能。到目前為止,相對於 PHP + APC (Alternative PHP Cache) ,HHVM 為 FaceBook 在 HTTP 請求的吞吐量上提高了9倍的效能,在記憶體的佔用上,減少了5倍左右的記憶體佔用。
同時,HHVM 也可以與基於 FastCGI 的 Web 伺服器(如 Nginx 或者 Apache )協同工作。
安裝 HHVM,Nginx和 Apache 還有 MariaDB
在本教程中,我們一起來配置 Nginx/Apache web 伺服器、 資料庫伺服器 MariaDB 和 HHVM 。我們將使用 Ubuntu 15.04 (64 位),因為 HHVM 只能執行在64位系統上。同時,該教程也適用於 Debian 和 Linux Mint。
第一步: 安裝 Nginx 或者 Apache 伺服器
1、首先,先進行一次系統的升級並更新軟體倉庫列表,命令如下
# apt-get update && apt-get upgrade
系統升級
2、 正如我之前說的,HHVM 能和 Nginx 和 Apache 進行整合。所以,究竟使用哪個伺服器,這是你的自由,不過,我們會教你如何安裝這兩個伺服器。
安裝 Nginx
我們通過下面的命令安裝 Nginx/Apache 伺服器
# apt-get install nginx
安裝 Nginx 伺服器
安裝 Apache
# apt-get install apache2
安裝 Apache 伺服器
完成這一步,你能通過以下的連結看到 Nginx 或者 Apache 的預設頁面
http://localhost 或 http://IP-Address
Nginx 預設頁面
Apache 預設頁面
第二步: 安裝和配置 MariaDB
3、 這一步,我們將通過如下命令安裝 MariaDB,它是一個比 MySQL 效能更好的資料庫
# apt-get install mariadb-client mariadb-server
安裝 MariaDB
4、 在 MariaDB 成功安裝之後,你可以啟動它,並且設定 root 密碼來保護資料庫:
# systemctl start mysql # mysql_secure_installation
回答以下問題,只需要按下y或者 n並且回車。請確保你仔細的閱讀過說明。
Enter current password for root (enter for none) = press enter Set root password? [Y/n] = y Remove anonymous users[y/n] = y Disallow root login remotely[y/n] = y Remove test database and access to it [y/n] = y Reload privileges tables now[y/n] = y
5、 在設定了密碼之後,你就可以登入 MariaDB 了。
# mysql -u root -p
第三步: 安裝 HHVM
6、 在此階段,我們將安裝 HHVM。我們需要新增 HHVM 的倉庫到你的sources.list檔案中,然後更新軟體列表。
# wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add - # echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list # apt-get update
重要:不要忘記用你的 Ubuntu 發行版代號替換上述的 DISTRIBUTION_VERSION (比如:lucid, precise, trusty) 或者是 Debian 的 jessie 或者 wheezy。在 Linux Mint 中也是一樣的,不過只支援 petra。
新增了 HHVM 倉庫之後,你就可以輕鬆安裝了。
# apt-get install -y hhvm
安裝之後,就可以啟動它,但是它並沒有做到開機啟動。可以用如下命令做到開機啟動。
# update-rc.d hhvm defaults
第四步: 配置 Nginx/Apache 連線 HHVM
7、 現在,nginx/apache 和 HHVM 都已經安裝完成了,並且都獨立執行起來了,所以我們需要對它們進行設定,來讓它們互相關聯。這個關鍵的步驟,就是需要告知 nginx/apache 將所有的 php 檔案,都交給 HHVM 進行處理。
如果你用了 Nginx,請按照如下步驟:
nginx 的配置檔案在 /etc/nginx/sites-available/default, 並且這些配置檔案會在 /usr/share/nginx/html 中尋找檔案執行,不過,它不知道如何處理 PHP。
為了確保 Nginx 可以連線 HHVM,我們需要執行所帶的如下指令碼。它可以幫助我們正確的配置 Nginx,將 hhvm.conf 放到 上面提到的配置檔案 nginx.conf 的頭部。
這個指令碼可以確保 Nginx 可以對 .hh 和 .php 的做正確的處理,並且將它們通過 fastcgi 傳送給 HHVM。
# /usr/share/hhvm/install_fastcgi.sh
配置 Nginx、HHVM
重要: 如果你使用的是 Apache,這裡不需要進行配置。
8、 接下來,你需要使用 hhvm 來提供 php 的執行環境。
# /usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
以上步驟完成之後,你現在可以啟動並且測試它了。
# systemctl start hhvm
第五步: 測試 HHVM 和 Nginx/Apache
9、 為了確認 hhvm 是否工作,你需要在 nginx/apache 的文件根目錄下建立 hello.php。
# nano /usr/share/nginx/html/hello.php [對於 Nginx] 或 # nano /var/www/html/hello.php [對於 Nginx 和 Apache]
在檔案中新增如下程式碼:
<?php if (defined('HHVM_VERSION')) { echo 'HHVM is working'; phpinfo(); } else { echo 'HHVM is not working'; } ?>
然後訪問如下連結,確認自己能否看到 “Hello World”
http://localhost/info.php 或 http://IP-Address/info.php
HHVM 頁面
如果 “HHVM” 的頁面出現了,那就說明你成功了。
結論
以上的步驟都是非常簡單的,希望你能覺得這是一篇有用的教程,如果你在以上的步驟中遇到了問題,給我們留一個評論,我們將全力解決。
相關文章
- RabbitMQ系列(一)在Ubuntu上的環境搭建MQUbuntu
- RabbitMQ系列(一)RabbitMQ在Ubuntu上的環境搭建MQUbuntu
- 在 Ubuntu 上搭建 nginx+PHP+Laravel 環境UbuntuNginxPHPLaravel
- 新裝Ubuntu環境配置Ubuntu
- Ubuntu開發環境配置Ubuntu開發環境
- ubuntu環境配置備忘Ubuntu
- 在Ubuntu上安裝Drone持續整合環境Ubuntu
- 開發環境配置 - Linux(Ubuntu)開發環境LinuxUbuntu
- Ubuntu交叉編譯環境配置Ubuntu編譯
- Linux—Ubuntu14.0.5配置JAVA環境LinuxUbuntuJava
- Ubuntu 20.04 簡述環境配置&美化Ubuntu
- Ubuntu配置JDK環境變數(ubuntu java_home)UbuntuJDK變數Java
- VLC在ubuntu環境下編譯編譯
- 在Ubuntu上部署Hyperledger Fabric環境Ubuntu
- 在Ubuntu環境下安裝eclipseUbuntuEclipse
- Ubuntu18.04深度學習環境配置Ubuntu深度學習
- Win 10 環境配置VirtualBox安裝UbuntuUbuntu
- ubuntu系統環境配置檔案的區別Ubuntu
- Linux Ubuntu Maven 環境配置不成功的原因LinuxUbuntuMaven
- 開發環境的 Ubuntu Desktop 18.04LTS 開發環境配置備忘開發環境Ubuntu
- Xcode配置測試環境和線上環境XCode
- Ubuntu上搭建Hadoop叢集環境的步驟UbuntuHadoop
- Ubuntu 16.04使用Sublime3配置Anaconda環境Ubuntu
- Ubuntu系統-FFmpeg安裝及環境配置Ubuntu
- zerorunner 在 Centos 的環境配置和部署CentOS
- 在 Ubuntu18.04 下安裝 LNMP 環境UbuntuLNMP
- MMDetection2(一):環境配置(Ubuntu18.04+GPU)UbuntuGPU
- WSL2+Ubuntu配置Java Maven Hadoop Spark環境UbuntuJavaMavenHadoopSpark
- Python GDAL庫在Anaconda環境中的配置Python
- 在windows下配置Eclipse + go環境WindowsEclipseGo
- app自動化測試環境配置:adb環境配置、monkey環境配置、appium環境配置大全APP
- Ubuntu下Java環境的搭建UbuntuJava
- 如何在Ubuntu 20.04上安裝Unity桌面環境UbuntuUnity
- 在ubuntu14.04上配置SNMPv3Ubuntu
- Mac 上的 Tomcat 配置及自定義 JRE 環境MacTomcat
- 在CentOS 7上搭建Docker環境CentOSDocker
- go 在 Windows 上環境變數GoWindows變數
- 在本地環境配置 https 證書(mac)HTTPMac
- 環境配置