array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 ubuntu环境下nginx源码编译安装 - 爱码网

1、更新系统

sudo apt-get update && sudo apt-get upgrade

2、安装nginx的依赖包  zlib pcre openssl(可以源码安装也可以直接系统安装)

sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev build-essential

3、下载openssl源码包

wget http://www.openssl.org/source/openssl-1.0.2a.tar.gz

sudo tar -zxvf openssl-1.0.2a.tar.gz -C /usr/local/src/

cd /usr/local/src/openssl-1.0.2a/

sudo ./config

sudo make && sudo make install

4、下载nginx源码包

wget  http://nginx.org/download/nginx-1.8.0.tar.gz

sudo tar -zxvf nginx-1.8.0.tar.gz -C /usr/local/src/

cd /usr/local/src/nginx-1.8.0

sudo ./configure --prefix=/usr/local/nginx --with-openssl=/usr/include/openssl

sudo make && sudo make install 

5、配置nginx 开机服务。

默认这么安装好以后每次检查配置、重启之类的操作略麻烦,所以我们模仿 Ubuntu 14.04 官方源,给系统设置个 nginx 服务,方便我们检查配置、启动重启关闭 Nginx 以及开机自动启动 Nginx

sudo vim /etc/init.d/nginx

插入如下内容:

  1 #!/bin/sh
  2 
  3 ### BEGIN INIT INFO
  4 # Provides:          nginx
  5 # Required-Start:    $local_fs $remote_fs $network $syslog
  6 # Required-Stop:     $local_fs $remote_fs $network $syslog
  7 # Default-Start:     2 3 4 5
  8 # Default-Stop:      0 1 6
  9 # Short-Description: starts the nginx web server
 10 # Description:       starts nginx using start-stop-daemon
 11 ### END INIT INFO
 12 
 13 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 14 DAEMON=/usr/sbin/nginx
 15 NAME=nginx
 16 DESC=nginx
 17 
 18 # Include nginx defaults if available
 19 if [ -f /etc/default/nginx ]; then
 20    . /etc/default/nginx
 21 fi
 22 
 23 test -x $DAEMON || exit 0
 24 
 25 set -e
 26 
 27 . /lib/lsb/init-functions
 28 
 29 test_nginx_config() {
 30    if $DAEMON -t $DAEMON_OPTS >/dev/null 2>&1; then
 31       return 0
 32    else
 33       $DAEMON -t $DAEMON_OPTS
 34       return $?
 35    fi
 36 }
 37 
 38 case "$1" in
 39    start)
 40       echo -n "Starting $DESC: "
 41       test_nginx_config
 42       # Check if the ULIMIT is set in /etc/default/nginx
 43       if [ -n "$ULIMIT" ]; then
 44          # Set the ulimits
 45          ulimit $ULIMIT
 46       fi
 47       start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
 48           --exec $DAEMON -- $DAEMON_OPTS || true
 49       echo "$NAME."
 50       ;;
 51 
 52    stop)
 53       echo -n "Stopping $DESC: "
 54       start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
 55           --exec $DAEMON || true
 56       echo "$NAME."
 57       ;;
 58 
 59    restart|force-reload)
 60       echo -n "Restarting $DESC: "
 61       start-stop-daemon --stop --quiet --pidfile \
 62           /var/run/$NAME.pid --exec $DAEMON || true
 63       sleep 1
 64       test_nginx_config
 65       # Check if the ULIMIT is set in /etc/default/nginx
 66       if [ -n "$ULIMIT" ]; then
 67          # Set the ulimits
 68          ulimit $ULIMIT
 69       fi
 70       start-stop-daemon --start --quiet --pidfile \
 71           /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
 72       echo "$NAME."
 73       ;;
 74 
 75    reload)
 76       echo -n "Reloading $DESC configuration: "
 77       test_nginx_config
 78       start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \
 79           --exec $DAEMON || true
 80       echo "$NAME."
 81       ;;
 82 
 83    configtest|testconfig)
 84       echo -n "Testing $DESC configuration: "
 85       if test_nginx_config; then
 86          echo "$NAME."
 87       else
 88          exit $?
 89       fi
 90       ;;
 91 
 92    status)
 93       status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
 94       ;;
 95    *)
 96       echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2
 97       exit 1
 98       ;;
 99 esac
100 
101 exit 0

注意要设置好nginx的启动路径  DAEMON=/usr/sbin/nginx 

6、设置文件权限并增加到系统服务

sudo chmod +x ./nginx
sudo update-rc.d nginx defaults

7、启动nginx

sudo /etc/init.d/nginx

相关文章: