官网模板建站塔山双喜,哪里可以免费发布招聘信息,制作微信的网站有哪些问题,wordpress 文件权限设置博客彻底迁移到了DigitalOcean上#xff0c;无奈囊中羞涩#xff0c;只能开个512MB内存的Droplet。。。只不过#xff0c;小内存也可以玩出花样。之前就一直想尝试用一下HHVM#xff0c;无奈编译实在是太麻烦#xff0c;一直偷懒没使用。这篇文章就用来记录期间编译安装的…博客彻底迁移到了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 repositoryrpm -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 # 如果已经安装请先卸载放心地使用autoremoveyum install ImageMagick-last* --enablereporemi # 从remi中获取最新的包# 编译安装oniguruma一个正则表达式解析库cd /tmpwget 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/usrmake sudo make install编译安装hhvm# 获取hhvm代码cd /tmpgit clone https://github.com/facebook/hhvm -b hhvm-3.4.1 hhvm --recursivecd hhvm# 编译./configuremake -j2 # 开两个线程编译我在2G内存的虚拟机上编译开2-3条线程最合适sudo make install # 默认安装至/usr/local将HHVM添加为service创建/usr/lib/systemd/system/hhvm.service内容如下[Unit]DescriptionHHVM 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]WantedBymulti-user.target创建必要的配置# 请确定你已经有用户www以及用户组wwwmkdir /etc/hhvmmkdir /var/run/hhvmsudo chown www.www /var/run/hhvmmkdir /var/log/hhvmsudo chown www.www /var/log/hhvm在/etc/hhvm中添加如下文件config.hdf内容如下ResourceLimit {CoreFileSize 0 # in bytesMaxSocket 10000 # must be not 0, otherwise HHVM will not startSocketDefaultTimeout 5 # in secondsMaxRSS 0MaxRSSPollingCycle 0 # in seconds, how often to check max memoryDropCacheCycle 0 # in seconds, how often to drop disk cache}Log {Level InfoAlwaysLogUnhandledExceptions trueRuntimeErrorReportingLevel 8191UseLogFile trueUseSyslog falseFile /var/log/hhvm/error.logAccess {* {File /var/log/hhvm/access.logFormat %h %l %u % t \%r\ %s %b}}}MySQL {ReadOnly falseConnectTimeout 1000 # in msReadTimeout 1000 # in msSlowQueryThreshold 1000 # in ms, log slow queries as errorsKillOnTimeout false}Mail {SendmailPath /usr/sbin/sendmail -t -iForceExtraParameters }server.ini内容如下; php optionspid /var/run/hhvm/pid; hhvm specifichhvm.server.port 9001;hhvm.server.file_socket /var/run/hhvm/sockhhvm.server.type fastcgihhvm.server.default_document index.phphhvm.log.use_log_file truehhvm.log.file /var/log/hhvm/error.loghhvm.repo.central.path /var/run/hhvm/hhvm.hhbcphp.ini内容如下hhvm.mysql.socket /tmp/mysql.sockexpose_php 0 ;关闭头信息X-Powered-By (和hhvm.server.expose_hphp false作用一样)memory_limit 400Mpost_max_size 50M开启hhvmsystemctl enable hhvmsystemctl 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