日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

centos 7 nginx hhvm mysql_CentOS 7 编译安装 HHVM 3.4.1

發布時間:2024/7/23 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 centos 7 nginx hhvm mysql_CentOS 7 编译安装 HHVM 3.4.1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

博客徹底遷移到了DigitalOcean上,無奈囊中羞澀,只能開個512MB內存的Droplet。。。

只不過,小內存也可以玩出花樣。之前就一直想嘗試用一下HHVM,無奈編譯實在是太麻煩,一直偷懶沒使用。這篇文章就用來記錄期間編譯安裝的過程,以及一些常見的錯誤。以下內容部分參考HHVM的github wiki,當然也從其他博客收集了點信息,算是拼湊出來的把,希望對大家有用。

目前我所使用的系統是 CentOS 7,接下來編譯安裝的是HHVM-3.4.1。如果你的環境和我的一致,并且不想自己花時間編譯,那么也可以下載本人已經編譯好的文件HHVM-3.4.1.tar.gz。

廢話不多說,開始正文。

===Changelog===

感謝zjhzxhz提交的issue,原安裝包存在路徑問題,現已更正,同時采用直接打包二進制文件的形式,安裝方式為直接解壓到/。

可能會提示找不到libonig.so.2,這個需要各位自己ldd /usr/local/bin/hhvm,看下其他的動態鏈接庫在哪個目錄,然后再為onig的動態鏈接庫建立相應的軟鏈接。

添加repoyum install epel-release # add EPEL repository

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # ImageMagick

安裝依賴# 如下都是必要的依賴,不要懷疑,當然你也可以一個個排查,如果你有時間的話

yum install cpp gcc-c++ cmake git psmisc {binutils,boost,jemalloc}-devel \

{sqlite,tbb,bzip2,openldap,readline,elfutils-libelf,gmp,lz4,pcre,glog}-devel \

lib{xslt,event,yaml,vpx,png,zip,icu,mcrypt,memcached,cap,dwarf}-devel \

{unixODBC,expat,mariadb}-devel lib{edit,curl,xml2,xslt}-devel# 修補bug,在/usr/lib中創建glog的軟連接

ln -s /usr/lib64/libglog.so /usr/lib/libglog.so# 別問我為什么,我至今懷疑是否要添加這個包,但是不添加確實在鏈接gd_jpeg的時候出問題

yum autoremove ImageMagick # 如果已經安裝,請先卸載,放心地使用autoremove

yum install ImageMagick-last* --enablerepo=remi # 從remi中獲取最新的包# 編譯安裝oniguruma,一個正則表達式解析庫

cd /tmp

wget http://www.geocities.jp/kosako3/oniguruma/archive/onig-5.9.5.tar.gz &&

tar xvzf onig-5.9.5.tar.gz && cd onig-5.9.5

./configure --prefix=/usr

make && sudo make install

編譯安裝hhvm# 獲取hhvm代碼

cd /tmp

git clone https://github.com/facebook/hhvm -b hhvm-3.4.1 hhvm --recursive

cd hhvm# 編譯

./configure

make -j2 # 開兩個線程編譯,我在2G內存的虛擬機上編譯,開2-3條線程最合適

sudo make install # 默認安裝至/usr/local

將HHVM添加為service

創建/usr/lib/systemd/system/hhvm.service,內容如下[Unit]

Description=HHVM HipHop Virtual Machine (FCGI)

[Service]

ExecStart=/usr/local/bin/hhvm --user www --mode daemon \

--config /etc/hhvm/server.ini \

--config /etc/hhvm/php.ini \

--config /etc/hhvm/config.hdf

[Install]

WantedBy=multi-user.target

創建必要的配置# 請確定你已經有用戶www,以及用戶組www

mkdir /etc/hhvm

mkdir /var/run/hhvm

sudo chown www.www /var/run/hhvm

mkdir /var/log/hhvm

sudo chown www.www /var/log/hhvm

在/etc/hhvm中添加如下文件

config.hdf,內容如下ResourceLimit {

CoreFileSize = 0 # in bytes

MaxSocket = 10000 # must be not 0, otherwise HHVM will not start

SocketDefaultTimeout = 5 # in seconds

MaxRSS = 0

MaxRSSPollingCycle = 0 # in seconds, how often to check max memory

DropCacheCycle = 0 # in seconds, how often to drop disk cache

}

Log {

Level = Info

AlwaysLogUnhandledExceptions = true

RuntimeErrorReportingLevel = 8191

UseLogFile = true

UseSyslog = false

File = /var/log/hhvm/error.log

Access {

* {

File = /var/log/hhvm/access.log

Format = %h %l %u % t \"%r\" %>s %b

}

}

}

MySQL {

ReadOnly = false

ConnectTimeout = 1000 # in ms

ReadTimeout = 1000 # in ms

SlowQueryThreshold = 1000 # in ms, log slow queries as errors

KillOnTimeout = false

}

Mail {

SendmailPath = /usr/sbin/sendmail -t -i

ForceExtraParameters =

}

server.ini,內容如下:; php options

pid = /var/run/hhvm/pid

; hhvm specific

hhvm.server.port = 9001

;hhvm.server.file_socket = /var/run/hhvm/sock

hhvm.server.type = fastcgi

hhvm.server.default_document = index.php

hhvm.log.use_log_file = true

hhvm.log.file = /var/log/hhvm/error.log

hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc

php.ini,內容如下:hhvm.mysql.socket = /tmp/mysql.sock

expose_php = 0 ;關閉頭信息X-Powered-By (和hhvm.server.expose_hphp = false作用一樣)

memory_limit = 400M

post_max_size = 50M

開啟hhvmsystemctl enable hhvm

systemctl start hhvm

# 查看狀態

systemctl status hhvm

在nginx中添加fastcgi配置# 在nginx.conf中添加如下location塊

location ~ .*\.php(\/.*)*$ {

set $path_info "";

set $real_script_name $fastcgi_script_name;

if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {

set $real_script_name $1;

set $path_info $2;

}

fastcgi_pass 127.0.0.1:9001;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $real_script_name;

fastcgi_param PATH_INFO $path_info;

include fastcgi_params;

}

reload Nginx配置nginx -s reload

至此,hhvm完整的安裝配置完了,當然后續還有很多調優的可能,可玩性十足,具體請參考github wiki

總結

以上是生活随笔為你收集整理的centos 7 nginx hhvm mysql_CentOS 7 编译安装 HHVM 3.4.1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。