1,下载nginx-1.9.3.tar.gz 两种方式:

(1).ubuntu 下终端中(ctrl+alt+t) 运行命令: wget http://nginx.org/download/nginx-1.9.3.tar.gz 。能够进入到根文件夹的Downloads文件夹下运行该命令。这样就能够直接下载该文件夹下

(2).windows或ubuntu浏览器中下载,地址为 http://nginx.org/en/download.html。

本人是下载到根文件夹 ~/Downloads中的

2,安装nginx-1.9.3

默认nginx的安装路径是/usr/local/nginx/,为了防止出现其它问题,我们在创建该文件夹,mkdir /usr/local/nginx/,并把nginx-1.9.3.tar.gz 解压到该文件夹,内容例如以下图所看到的:

进入根文件夹,直行例如以下两条命令 下载安装相关插件:

sudo apt-get install libpcre3-dev

sudo apt-get install libssl-dev

进入/usr/local/nginx/文件夹,直行例如以下二条命令进行安装:

./configure --with-http_stub_status_module
--with-http_ssl_module

#--with-http_stub_status_module
--with-http_ssl_module
启动server状态页和https模块

make && sudo make install

安装完毕之后须要在/etc/ini.d/文件夹下创建nginx文件。该文件是用来启动nginx 。

创建成功。增加内容:

#! /bin/sh

### BEGIN INIT INFO

# Provides:          nginx

# Required-Start:    $remote_fs $syslog

# Required-Stop:     $remote_fs $syslog

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: nginx init.d dash script for Ubuntu or other *nix.

# Description:       nginx init.d dash script for Ubuntu or other *nix.

### END INIT INFO

#------------------------------------------------------------------------------

# nginx - this Debian Almquist shell (dash) script, starts and stops the nginx

#         daemon for Ubuntu and other *nix releases.

#

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \

#               proxy and IMAP/POP3 proxy server.  This \

#               script will manage the initiation of the \

#               server and it's process state.

#

# processname: nginx

# config:      /usr/local/nginx/conf/nginx.conf

# pidfile:     /usr/local/nginx/logs/nginx.pid

# Provides:    nginx

#

# Author:  Jason Giedymin

#          <jason.giedymin AT gmail.com>.

#

# Version: 3.9.0 12-MAY-2015 jason.giedymin AT gmail.com

# Notes: nginx init.d dash script for Ubuntu.

# Tested with: Ubuntu 14.10, nginx-1.7.9

#

# This script's project home is:

#   http://github.com/JasonGiedymin/nginx-init-ubuntu

#

#------------------------------------------------------------------------------

#                               MIT X11 License

#------------------------------------------------------------------------------

#

# Copyright (c) 2008-2013 Jason Giedymin, http://jasongiedymin.com

#

# Permission is hereby granted, free of charge, to any person obtaining

# a copy of this software and associated documentation files (the

# "Software"), to deal in the Software without restriction, including

# without limitation the rights to use, copy, modify, merge, publish,

# distribute, sublicense, and/or sell copies of the Software, and to

# permit persons to whom the Software is furnished to do so, subject to

# the following conditions:

#

# The above copyright notice and this permission notice shall be

# included in all copies or substantial portions of the Software.

#

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE

# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION

# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION

# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

#------------------------------------------------------------------------------





#------------------------------------------------------------------------------

#                               Functions

#------------------------------------------------------------------------------

LSB_FUNC=/lib/lsb/init-functions





# Test that init functions exists

test -r $LSB_FUNC || {

    echo "$0: Cannot find $LSB_FUNC! Script exiting." 1>&2

    exit 5

}





. $LSB_FUNC





#------------------------------------------------------------------------------

#                               Consts

#------------------------------------------------------------------------------

# Include nginx defaults if available

if [ -f /etc/default/nginx ]; then

    . /etc/default/nginx

fi





# Minimize path

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin





PS=${PS:-"nginx"}                             # process name

DESCRIPTION=${DESCRIPTION:-"Nginx Server..."} # process description

NGINXPATH=${NGINXPATH:-/usr/local/nginx}      # root path where installed

DAEMON=${DAEMON:-$NGINXPATH/sbin/nginx}       # path to daemon binary

NGINX_CONF_FILE=${NGINX_CONF_FILE:-$NGINXPATH/conf/nginx.conf} # config file path





PIDNAME=${PIDNAME:-"nginx"}                   # lets you do $PS-slave

PIDFILE=${PIDFILE:-$PIDNAME.pid}              # pid file

PIDSPATH=${PIDSPATH:-$NGINXPATH/logs}         # default pid location, you should change it

RUNAS=${RUNAS:-root}                          # user to run as





SCRIPT_OK=0           # ala error codes

SCRIPT_ERROR=1        # ala error codes

TRUE=1                # boolean

FALSE=0               # boolean





#------------------------------------------------------------------------------

#                               Simple Tests

#------------------------------------------------------------------------------





# Test if nginx is a file and executable

test -x $DAEMON || {

    echo "$0: You don't have permissions to execute nginx." 1>&2

    exit 4

}





# You can also set your conditions like so:

# set exit condition

# set -e





#------------------------------------------------------------------------------

#                               Functions

#------------------------------------------------------------------------------





setFilePerms(){

    if [ -f $PIDSPATH/$PIDFILE ]; then

        chmod 400 $PIDSPATH/$PIDFILE

    fi

}





configtest() {

    $DAEMON -t -c $NGINX_CONF_FILE

}





getPSCount() {

    return `pgrep -f $PS | wc -l`

}





isRunning() {

    if [ $1 ]; then

        pidof_daemon $1

        PID=$?

if [ $PID -gt 0 ]; then

            return 1

        else

            return 0

        fi

    else

        pidof_daemon

        PID=$?

if [ $PID -gt 0 ]; then

            return 1

        else

            return 0

        fi

    fi

}





#courtesy of php-fpm

wait_for_pid () {

    try=0





    while test $try -lt 35 ; do

        case "$1" in

            'created')

            if [ -f "$2" ]; then

                try=''

                break

            fi

            ;;





            'removed')

            if [ ! -f "$2" ]; then

                try=''

                break

            fi

            ;;

        esac





        try=`expr $try + 1`

        sleep 1

    done

}





status(){

    isRunning

    isAlive=$?





    if [ "${isAlive}" -eq $TRUE ]; then

        log_warning_msg "$DESCRIPTION found running with processes:  `pidof $PS`"

        rc=0

    else

        log_warning_msg "$DESCRIPTION is NOT running."

        rc=3

    fi





    return

}





removePIDFile(){

    if [ $1 ]; then

        if [ -f $1 ]; then

            rm -f $1

        fi

    else

        #Do default removal

        if [ -f $PIDSPATH/$PIDFILE ]; then

            rm -f $PIDSPATH/$PIDFILE

        fi

    fi

}





start() {

    log_daemon_msg "Starting $DESCRIPTION"





    isRunning

    isAlive=$?





    if [ "${isAlive}" -eq $TRUE ]; then

        log_end_msg $SCRIPT_ERROR

        rc=0

    else

        start-stop-daemon --start --quiet --chuid \

        $RUNAS --pidfile $PIDSPATH/$PIDFILE --exec $DAEMON \

        -- -c $NGINX_CONF_FILE

        status=$?

setFilePerms





        if [ "${status}" -eq 0 ]; then

            log_end_msg $SCRIPT_OK

            rc=0

        else

            log_end_msg $SCRIPT_ERROR

            rc=7

        fi

    fi





    return

}





stop() {

    log_daemon_msg "Stopping $DESCRIPTION"





    isRunning

    isAlive=$?

if [ "${isAlive}" -eq $TRUE ]; then

        start-stop-daemon --stop --quiet --pidfile $PIDSPATH/$PIDFILE





        wait_for_pid 'removed' $PIDSPATH/$PIDFILE





        if [ -n "$try" ]; then

            log_end_msg $SCRIPT_ERROR

            rc=0 # lsb states 1, but under status it is 2 (which is more prescriptive). Deferring to standard.

        else

            removePIDFile

            log_end_msg $SCRIPT_OK

            rc=0

        fi

    else

        log_end_msg $SCRIPT_ERROR

        rc=7

    fi





    return

}





reload() {

    configtest || return $?

log_daemon_msg "Reloading (via HUP) $DESCRIPTION"





    isRunning





    if [ $? -eq $TRUE ]; then

        kill -HUP `cat $PIDSPATH/$PIDFILE`

        log_end_msg $SCRIPT_OK

        rc=0

    else

        log_end_msg $SCRIPT_ERROR

        rc=7

    fi





    return

}





quietupgrade() {

    log_daemon_msg "Peforming Quiet Upgrade $DESCRIPTION"





    isRunning

    isAlive=$?





    if [ "${isAlive}" -eq $TRUE ]; then

        kill -USR2 `cat $PIDSPATH/$PIDFILE`

        kill -WINCH `cat $PIDSPATH/$PIDFILE.oldbin`





        isRunning

        isAlive=$?





        if [ "${isAlive}" -eq $TRUE ]; then

            kill -QUIT `cat $PIDSPATH/$PIDFILE.oldbin`

            wait_for_pid 'removed' $PIDSPATH/$PIDFILE.oldbin

            removePIDFile $PIDSPATH/$PIDFILE.oldbin





            log_end_msg $SCRIPT_OK

            rc=0

        else

            log_end_msg $SCRIPT_ERROR





            log_daemon_msg "ERROR! Reverting back to original $DESCRIPTION"





            kill -HUP `cat $PIDSPATH/$PIDFILE`

            kill -TERM `cat $PIDSPATH/$PIDFILE.oldbin`

            kill -QUIT `cat $PIDSPATH/$PIDFILE.oldbin`





            wait_for_pid 'removed' $PIDSPATH/$PIDFILE.oldbin

            removePIDFile $PIDSPATH/$PIDFILE.oldbin





            log_end_msg $SCRIPT_OK

            rc=0

        fi

    else

        log_end_msg $SCRIPT_ERROR

        rc=7

    fi





    return

}





terminate() {

    log_daemon_msg "Force terminating (via KILL) $DESCRIPTION"





    PIDS=`pidof $PS` || true





    [ -e $PIDSPATH/$PIDFILE ] && PIDS2=`cat $PIDSPATH/$PIDFILE`





    for i in $PIDS; do

        if [ "$i" = "$PIDS2" ]; then

            kill $i

            wait_for_pid 'removed' $PIDSPATH/$PIDFILE

            removePIDFile

        fi

    done





    log_end_msg $SCRIPT_OK

    rc=0

}





destroy() {

    log_daemon_msg "Force terminating and may include self (via KILLALL) $DESCRIPTION"

    killall $PS -q >> /dev/null 2>&1

    log_end_msg $SCRIPT_OK

    rc=0

}





pidof_daemon() {

    PIDS=`pidof $PS` || true





    [ -e $PIDSPATH/$PIDFILE ] && PIDS2=`cat $PIDSPATH/$PIDFILE`





    for i in $PIDS; do

        if [ "$i" = "$PIDS2" ]; then

            return 1

        fi

    done





    return 0

}





action="$1"

case "$1" in

    start)

        start

        ;;

    stop)

        stop

        ;;

    restart|force-reload)

        stop

        # if [ $rc -ne 0 ]; then

        #     script_exit

        # fi

        sleep 1

        start

        ;;

    reload)

        $1

        ;;

    status)

        status

        ;;

    configtest)

        $1

        ;;

    quietupgrade)

        $1

        ;;

    terminate)

        $1

        ;;

    destroy)

        $1

        ;;

    *)

        FULLPATH=/etc/init.d/$PS

        echo "Usage: $FULLPATH {start|stop|restart|force-reload|reload|status|configtest|quietupgrade|terminate|destroy}"

        echo "       The 'destroy' command should only be used as a last resort."

        exit 3

        ;;

esac



exit $rc

或者在终端中运行例如以下命令:

wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx  将nginx下载到/etc/init.d/该文件夹

保存之后进入该文件夹,终端运行例如以下  付权限  命令和开机自启动命令:

sudo chmod +x nginx

sudo update-rc.d -f nginx defaults

此时nginx-1.9.3安装完毕

  注:安装完毕之后若是不想开机启动,最简单的方法是将/etc/init.d/niginx文件改成niginx.template。只是该方法不可取。

3.启动nginx-1.9.3

终端运行命令:  /etc/init.d/nginx start  启动之后。浏览器中运行 http://127.0.0.1 看到nginx欢迎页面,说明成功安装。

运行启动命令可能会报错;

nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)

 2015/07/23 16:43:44 [emerg] 8753#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)

依据报错提示,在/usr/local/nginx/logs/文件夹下创建error.log和access.log文件就能够了。

 另注:

 

apt-get intall nginx 安装该软件有时候出现错误。改成编译安装之后也总是出问题,所以删除apt-get安装的方式例如以下:

root权限下载命令行敲入例如以下命令:

rm -rf /etc/nginx/

rm -rf /usr/sbin/nginx

rm /usr/share/man/man1/nginx.1.gz

apt-get remove nginx*

怎样进入root权限,请看本人的还有一篇博客:

http://blog.csdn.net/liangzi4454/article/details/46792897

ubuntu 12.04下编译安装nginx-1.9.3的更多相关文章

  1. ubuntu 12.04 server编译安装nginx

    tar -xvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./config make make install above is for zlib(refers http:// ...

  2. Ubuntu 16.04下编译安装Apache2.4和PHP7结合

    Ubuntu 16.04下编译安装Apache2.4和PHP7结合,并安装PDOmysql扩展. 1.编译安装apache2.4.20 1 第一步: ./configure --prefix=/usr ...

  3. 在Ubuntu 12.04下编译qtiplot

    不在windows下,再加上不想用盗版,所以需要一个origin的替代品——qtiplot.虽然我非常抵抗用这种不停点来点去的软件,用R的ggplot2画图多好啊,高效.优雅.漂亮,但是终抵不过老板一 ...

  4. [转] Ubuntu 12.04下LAMP安装配置 (Linux+Apache+Mysql+PHP)

    我是一个Linux新手,想要安装一台Ubuntu 12.04版的Linux服务器,用这台服务器上的LAMP套件来运行我自己的个人网站.LAMP套件就是 “Linux+Apache+Mysql+PHP这 ...

  5. Ubuntu 12.04下NFS安装配置图解

    以前就听说过nfs服务,但是一直没有用,在学习制作根文件系统的时候,才算是真正用上它了,我感觉它还不错,通过它“挂载”制作好的根文件系统.它在嵌入式中的角色就用下面的一张图说明吧! 用网线将主机与开发 ...

  6. Ubuntu 12.04下LVM2安装和操作实验

    实验环境: VirtualBox v4.3.20 Lubuntu 12.04LTS 前期准备: 1.添加虚拟盘:菜单"控制"->"设置"->&quo ...

  7. Ubuntu 12.04本地编译安装Vim

    1.下载Vim,参考http://www.vim.org/git.php 2.编译安装Vim,参考https://github.com/Valloric/YouCompleteMe/wiki/Buil ...

  8. ubuntu 12.04下zmap安装

    zmap介绍 https://zmap.io/ ----------------华丽的分割线---------------- zmap 1.03 的安装 Step1: sudo apt-get ins ...

  9. 在Ubuntu 12.04下采用apt-get的方法安装Qt4

    在Ubuntu 12.04下采用apt-get的方法安装Qt4 注:之前发表的一篇博客是采用编译源码的方式安装Qt4,这是很有用的方式,因为源码安装对于所有系统都是通用的,其次,在使用交叉编译器的时候 ...

随机推荐

  1. 【C语言】练习1-22

     题目来源:<The C programming language>中的习题  练习1-22:编写一个程序,把较长的输入行‘折’成短一些的两行或者多行,折行的位置在输入行的第n列之前的最后 ...

  2. 如何调试bash脚本

    Bash 是Linux操作系统的默认Shell脚本.Shell是用来处理操作系统和用户交互的一个程序.Shell的脚本可以帮助用户自动化地和操作系统进行交互.你也可以理解为一种脚本式的编程.即然有编程 ...

  3. Objective-C 如何让非等宽的数字和空格对齐

    在printf中,我们可以通过格式字符串来对文字进行对齐输出,比如: printf("%5d\n%5d", 12, 345); 在使用等宽字体的Console中,我们可以看到数字右 ...

  4. 开关电源电路中变压器次级输出绕组RC串联并接在二极管两端的作用

    二极管反向恢复时会产生浪涌电压,这里RC主要是吸收二极管D1产生的浪涌电压,防止二极管损坏. 寄生电容:寄生电容一般是指电感,电阻,芯片引脚等在高频情况下表现出来的电容特性.实际上,一个电阻等效于一个 ...

  5. css ::selection 的妙用

    1.选中页面文字和元素时的背景颜色 ::selection { background: #25b864; color: #fff; } 2.不能选择页面内容(但可以拖拽内容进行复制.挺好玩的) ::s ...

  6. spring 项目中使用 hibernate validator验证输入参数

    1 hibernate validator 官方文档:https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_si ...

  7. MySQL update 语句与标准SQL不同的地方

    [SQL标准中有一个叫同时执行的概念] 同时执行指的是在同一个子句中的各个部分的执行时机是不区分先后的,如下面的SQL语句 ),); +---------+--------+ ) ) | +----- ...

  8. Matlab的集合运算[转]

    今天遇到一个问题:有向量a和向量b,b是a的子向量(元素全部来自a),求向量a去掉向量b后剩下的元素构成的向量. 这么一个简单的问题,搜了半天也没有得到结果,因为找不到合适的关键词来描述这个问题. 在 ...

  9. xcode自动打ipa包脚本 资料

    http://webfrogs.me/2012/09/19/buildipa/ http://blog.csdn.net/baxiaxx/article/details/8267295 http:// ...

  10. Viola-Jones人脸检測

    OpenCV中有一个基于树的技术:Haar分类器,它建立了boost筛选式级联. 它能够识别出人脸和其它刚性物体. 对于检測"基本刚性"的物体(脸,汽车,自行车,人体等)这类识别任 ...