首先安装全家桶

apt install -y build-essential zlib1g-dev libpcre3 libpcre3-dev unzip cmake libncurses5-dev libpam0g-dev bison libboost-dev libssl-dev openssl g++ libxml2-dev libcurl3-openssl-dev libpng-dev libfreetype6-dev libfreetype6-dev

这个包有时候会安装失败

apt install -y  libpng12-dev

添加账户:

groupadd www
useradd -s/sbin/nologin -M -g www www

下载安装包:

curl https://github.com/h2o/h2o/archive/v2.2.2.tar.gz -o v2.2.2.tar.gz

解压:

tar zxf v2.2.2.tar.gz

配置安装目录:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/h2o -DWITH_BUNDLED_SSL=on

编译安装:

make -j8

make install

配置文件:

vim /home/etc/h2o.cf

 access-log: /tmp/h2o.log
error-log: /tmp/h2o.err
pid-file: /tmp/h2o.pid
max-connections: 512
file.send-gzip: ON
tcp-fastopen: 3
user: www
file.index: [ 'index.php', 'index.html' ]
file.mime.addtypes:
text/html: .html .htm .shtml
text/css: .css
text/xml: .xml
image/gif: .gif
image/jpeg: .jpeg .jpg
application/javascript: .js
application/atom+xml: .atom
application/rss+xml: .rss text/mathml: .mml
text/plain: .txt
text/vnd.sun.j2me.app-descriptor: .jad
text/vnd.wap.wml: .wml
text/x-component: .htc image/png: .png
image/tiff: .tif .tiff
image/vnd.wap.wbmp: .wbmp
image/x-icon: .ico
image/x-jng: .jng
image/x-ms-bmp: .bmp
image/svg+xml: .svg .svgz
image/webp: .webp application/font-woff: .woff
application/java-archive: .jar .war .ear
application/json: .json
application/mac-binhex40: .hqx
application/msword: .doc
application/pdf: .pdf
application/postscript: .ps .eps .ai
application/rtf: .rtf
application/vnd.apple.mpegurl: .m3u8
application/vnd.ms-excel: .xls
application/vnd.ms-fontobject: .eot
application/vnd.ms-powerpoint: .ppt
application/vnd.wap.wmlc: .wmlc
application/vnd.google-earth.kml+xml: .kml
application/vnd.google-earth.kmz: .kmz
application/x-7z-compressed: .7z
application/x-cocoa: .cco
application/x-java-archive-diff: .jardiff
application/x-java-jnlp-file: .jnlp
application/x-makeself: .run
application/x-perl: .pl .pm
application/x-pilot: .prc .pdb
application/x-rar-compressed: .rar
application/x-redhat-package-manager: .rpm
application/x-sea: .sea
application/x-shockwave-flash: .swf
application/x-stuffit: .sit
application/x-tcl: .tcl .tk
application/x-x509-ca-cert: .der .pem .crt
application/x-xpinstall: .xpi
application/xhtml+xml: .xhtml
application/xspf+xml: .xspf
application/zip: .zip application/octet-stream: .bin .exe .dll
application/octet-stream: .deb
application/octet-stream: .dmg
application/octet-stream: .iso .img
application/octet-stream: .msi .msp .msm application/vnd.openxmlformats-officedocument.wordprocessingml.document: .docx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: .xlsx
application/vnd.openxmlformats-officedocument.presentationml.presentation: .pptx audio/midi: .mid .midi .kar
audio/mpeg: .mp3
audio/ogg: .ogg
audio/x-m4a: .m4a
audio/x-realaudio: .ra video/3gpp: .3gpp .3gp
video/mp2t: .ts
video/mp4: .mp4
video/mpeg: .mpeg .mpg
video/quicktime: .mov
video/webm: .webm
video/x-flv: .flv
video/x-m4v: .m4v
video/x-mng: .mng
video/x-ms-asf: .asx .asf
video/x-ms-wmv: .wmv
video/x-msvideo: .avi hosts:
"域名:端口":
#header.add: "strict-transport-security: max-age=39420000; includesubdomains; preload"
header.add: "X-Frame-Options: SAMEORIGIN"
header.add: "X-Content-Type-Options: nosniff"
header.add: "X-XSS-Protection: 1; mode=block"
listen:
port: 端口
#ssl:
#certificate-file: /home/wwwroot/ssl/miraisann.com.crt
#key-file: /home/wwwroot/ssl/miraisann.com.key
#dh-file: /home/wwwroot/ssl/dhparam4096.pem
#minimum-version: TLSv1.1
#cipher-preference: server
#cipher-suite: CHACHA20 EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4
paths:
/:
file.dir: /home/wwwroot/domain/xx.com
redirect:
url: /index.php/
internal: YES
status: 307
file.custom-handler:
extension: .php
fastcgi.connect:
port: /tmp/php-fpm.sock
type: unix

 配置服务:

vim /usr/lib/systemd/system/h2o.service

 [Unit]
Description=h2o optimized HTTP server
After=network.target remote-fs.target nss-lookup.target [Service]
PIDFile=/tmp/h2o.pid
ExecStart=/usr/local/bin/h2o/bin/h2o -c /home/etc/h2o.cf &
ExecReload=/usr/bin/kill -HUP $MAINPID
LimitNOFILE=infinity [Install]
WantedBy=multi-user.target

systemctl enable h2o
systemctl start h2o
systemctl status h2o

关于服务配置的细节:

http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html

随机推荐

  1. android6.0的坑

    虽然现在android已经出了7.0了.但是大部分人用的应该还是5.0和6.0的. 其中对于开发者来说,变化比较大的应该是6.0之前和6.0之后的版本. 因为以6.0为分界线多了一个比较坑的东西:权限 ...

  2. 基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作

    由于一个客户朋友的需求,需要我的Winform开发框架支持国产达梦数据库的操作,这个数据库很早就听过,但是真正一般项目用的很少,一般在一些特殊的项目可能需要用到.由于我的Winform开发框架,是基于 ...

  3. jquery中是否加()的问题

    自己总结的,慢慢修改再: 1带上()代表立即执行 去掉()代表当有事件发生的时候,我再执行

  4. AngularJS引入Echarts的Demo

    最近要用到图表展示,想了想,还是首选Echarts,HighCharts和D3.js备用吧, 而项目中也用到了AngularJS,所以需要把Echarts引入到AngularJs中一起使用, 试了试, ...

  5. qt-4.8.5 显示图片居中笔记

    已经太久没有写过qt的程序了,所以导致的后果就是一个很简单的程序写了老半天还没写完整. 今天想实现的功能在原来软件的基础上显示他的版本. 因为想在该界面显示一个logo,一开始在pc机上跑发现图片一直 ...

  6. Struts2 一张图片引发的bug

    今天如常的打开项目开放.写了一会保存测试.在登录时出了个错误当不影响正常使用.丫的昨天还好好的.行下手上的工作 开始找bug 错误核心代码如下: 10:34:46,442  WARN OgnlValu ...

  7. CSS3 贝塞尔曲线实现

    cubic-bezier 曲线是 css3 动画的一个重要基石.另一个为 steps (ease 等都是 cubic-bezier 的特殊形式),css3 中的 cubic_bezier 曲线限制了首 ...

  8. React模块化开发

    借助前端构建工具webpack 1.webpack是facebook为react量身打造的构建工具 2.主要作用是实现模块化,代码整合,代码分割的作用 3.使用webpack整合以后 也不需要使用br ...

  9. c++标准头文件

    C++标准库的所有头文件都没有扩展名.C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能. <cname>形式的标准头文件[ <complex>例外]其 ...

  10. ORM表相关操作

    一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 > all(): 查询所有结果 > filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 > get( ...