HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

HHVM(HipHop Virtual Machine)是由Facebook所開發的PHP程式轉碼器, 目的在於使PHP script能夠執行的更快; 以往我們多會用Zend Optimizer這類的opcode cache來加速PHP, 而近來Facebook對於PHP效能問題的解決方案就是HipHop for PHP, 目前由HHVM以虛擬機器方式來執行PHP script。

本次安裝範例為我自己的電腦上以VMWare開啟一台虛擬機器, 並且安裝Linux Debian 7, 作業系統安裝過程省略, 相信大家對於安裝Linux已經不再害怕, 優良的安裝介面導引, 讓大家可以很容易的設好自己的Linux機器。

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測
OK! 機器安裝Linux Debian 7完成, 以root身分登入, 這台機器的IP位址是192.168.1.160, 這是範例喔! 請各位依照您自己的網路環境來設定。

首先到https://github.com/facebook/hhvm/wiki/Prebuilt-Packages-on-Debian-7來看看HHVM安裝方法, 依樣畫葫蘆就是了。

首先要加上HHVM到apt的source list, 加上HHVM的key ring:
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

將http://dl.hhvm.com/debian加入到source list:
echo deb http://dl.hhvm.com/debian wheezy main | tee /etc/apt/sources.list.d/hhvm.list


接者執行apt-get update, 更新package repository。
apt-get update

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

安裝HHVM:
apt-get install hhvm

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

連帶要安裝一堆軟體, 按y(yes)即是。
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

這裡閃過很有用的資訊:
Configure your webserver to use HHVM:
$ sudo /usr/share/hhvm/install_fastcgi.sh
$ sudo /etc/init.d/nginx restart
$ sudo /etc/init.d/apache restart
$ sudo /etc/init.d/hhvm restart

HHVM可以搭配nginx或是apache web server, 這次我們使用超強的nginx網站伺服器軟體
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

HHVM安裝完成
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

接著安裝nginx:
apt-get install nginx

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

用這支shell script安裝設定到nginx:
/usr/share/hhvm/install_fastcgi.sh

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測


重新啟動nginx與HHVM:
/etc/init.d/nginx restart
/etc/init.d/hhvm restart

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

nginx的document root在/usr/share/nginx/www, 把網站資料放這理即可
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

來測試一下PHP script, 完全沒有安裝php喔!
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

正常執行!
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

來個實際應用, 架設phpBB3; 我們需要MySQL server:
apt-get install mysql-server

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

安裝途中, MySQL Server會詢問root的密碼, 請輸入您希望的密碼
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

MySQL Server 5.5安裝完成, 服務也自動起來了
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

接著把需要的工具像是phpMyAdmin, phpBB程式放到網站目錄
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

將phpMyAdmin解壓縮, 您在官網抓的版本可能因時間推進而改變, 或是下載您慣用的phpMyAdmin版本
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

解壓縮就好了, phpMyAdmin沒有什麼安裝難度
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

預設解出來的目錄名稱很長, 偷懶一點, 把它改名為"admin", 這樣我使用phpMyAdmin工具只要在瀏覽器輸入http://192.168.1.160/admin/就好
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

設定phpMyAdmin:
cd admin
cp config.sample.inc.php config.inc.php

phpMyAdmin實際上是看config.inc.php內的設定, 所以我copy一份到新檔案名為"config.inc.php"
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

接著修改config.inc.php:
nano config.inc.php

大致上只有blowfish_secret這個設定值要改, 請修改您要的密碼(給cookie驗證用的, 不是phpMyAdmin的登入密碼)
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

來試試看phpMyAdmin, 用瀏覽器打開phpMyAdmin登入頁
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

前面安裝MySQL Server時, root帳號有設定密碼, 所以我們先用root帳號登入, 看起來很正常!
建議加個PHP script用的帳號密碼, 給予適當權限, 非必要少用root來登入, 範例我們就簡單跳過
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

nginx改個設定值, 不然一直要手動打"index.php"很麻煩:
nano /etc/nginx/sites-available/default


將index設定多加上index.php
index index.php index.html index.htm;

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

再來就是把phpBB3解壓縮, 順便換個目錄名稱
例如: "phpbb"或是"forum"都很容易了解的名稱
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

開始phpBB3的安裝, 在瀏覽器輸入:
http://192.168.1.160/phpbb/install/

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

選擇"INSTALL"這個頁籤
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

phpBB安裝程式會進行系統檢查
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

最重要的資料庫與連線, 因為我們用MySQL Server, 所以只有MySQL顯示Available
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

看來沒什麼問題, 按下"Start install"開始安裝phpBB3
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

切到phpMyAdmin, 建立一個database, 就叫"phpbb3"好了
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

可以看到左邊的database列表出現了新的名為"phpbb3"的資料庫
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

將資料庫連線設定輸入
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

成功連線!
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

接著設定phpBB管理員帳號
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

測試通過!
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

phpBB的設定檔已經寫入
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

進階設定, 如果要有寄信功能, 必須裝個Mail server, EXIM或Postfix都是不錯的選擇, 這裡我們跳過
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

這裡是phpBB的主機名稱與路徑設定, 安裝程式會自己抓, 請依照自己的網路環境設定
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

phpBB使用的資料表已建立, 接近完成了!
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

安裝完成, 系統提示我們要刪除或更名install目錄
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

再次回到phpMyAdmin, 查看phpbb3資料庫, 果然phpBB用的資料表已經寫入了
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測


接著的是phpBB各項設定
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

來試試看phpBB有沒有跑起來, 果然要刪除install目錄, 照做吧!
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

因為都完成安裝了, 刪除install目錄
rm -rf install

HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

目前只有安裝英語, 我們來中文化phpBB3
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

在官網下載中文檔案包, 解壓縮到language與styles目錄, 來到phpBB的控制台, SYSTEM頁籤下的Languages packs選項, 看到"正體中文", 按下"install"
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

果然介面變中文囉!
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

來試著發個文章看看
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

正常! 到此HHVM / Nginx / phpMyAdmin / phpBB的安裝範例就完成了
HHVM / Nginx / phpMyAdmin / phpBB3 安裝實測

HHVM有著較佳的PHP script執行速度, 但不是所有各種程式都能順利運行, 很受歡迎的WordPress也能夠跑在HHVM, 在這裡可以查到哪些應用程式可以運行在HHVM:
http://hhvm.com/frameworks/

WordPress與HHVM:
https://kkob.us/2014/02/09/hhvm-and-wordpress/

其他Linux Distro可用的HHVM:
https://github.com/facebook/hhvm/wiki#installing-pre-built-packages-for-hhvm

Have Fun!
2014-04-22 13:22 發佈
請問~是否可以提供~
phpbb 3.3.14 在 Nginx 下的 Rewrite 修改範例?
因為無論如何設定,都卡在安裝畫面…404…

這是我的寫法:

location / {
try_files $uri $uri/ @rewriteapp;

location ~* \.(php[345]?|phtml)$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/php-6a7bc129-0c96-47a9-9c9c-13a7e442dd42.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $document_root;
try_files $uri $uri/ /app.php$is_args$args;
fastcgi_intercept_errors on;
}
location ~ /(config|common\.php|cache|files|images/avatars/upload|includes|(?<!--ext/)phpbb(?!\w+)|store|vendor) {
deny all;
internal;
}
}

location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}

location /install/ {
try_files $uri $uri/ @rewrite_installapp =404;

location ~* \.(php[345]?|phtml)$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/php-6a7bc129-0c96-47a9-9c9c-13a7e442dd42.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $document_root;
try_files $uri $uri/ /install/app.php$is_args$args =404;
fastcgi_intercept_errors on;
}
}

location @rewrite_installapp {
rewrite ^(.*)$ /install/app.php/$1 last;
}

location ~ /\.svn|/\.git {
deny all;
internal;
}

gzip on;
gzip_comp_level 6;
gzip_min_length 1000;
gzip_proxied any;
gzip_disable "msie6";

# Gzip compression types
gzip_types
application/atom+xml
application/geo+json
application/javascript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rdf+xml
application/rss+xml
application/xhtml+xml
application/xml
font/eot
font/otf
font/ttf
image/svg+xml
text/css
text/javascript
text/plain
text/xml;

# Static assets, media
location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
expires 90d;
access_log off;
}

# SVG, fonts
location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
add_header Access-Control-Allow-Origin "*";
expires 90d;
access_log off;
}

</b-->
Lilyandy wrote:
location /install/ {
try_files $uri $uri/ @rewrite_installapp =404;

location ~* \.(php[345]?|phtml)$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/php-6a7bc129-0c96-47a9-9c9c-13a7e442dd42.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $document_root;
try_files $uri $uri/ /install/app.php$is_args$args =404;
fastcgi_intercept_errors on;
}
}

這裡轉到404了, 先移掉看看, 安裝好後補上
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?