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. 【jquery】$(document).ready() 与window.onload的区别

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1)执行时间  wind ...

  2. javascript 中 split 函数分割字符串成数组

    分割字符串成数组的方法有很多,不过使用最多的还是split函数 <script language="javascript"> str="2,2,3,5,6,6 ...

  3. android蓝牙开发---与蓝牙模块进行通信

    近半个月来一直在搞android蓝牙这方面,主要是项目需要与蓝牙模块进行通信.开头的进展很顺利,但因为蓝牙模块不在我这里,所以只能用手机测试.一开头就发现手机的蓝牙不能用,为了证明这点,我刷了四次不同 ...

  4. Redis 的安装与使用(单节点)

    Redis 的安装与使用(单节点)   环境:CentOS 6.5 Redis 版本:redis-3.0 (考虑到Redis3.0 在集群和性能提升方面的特性,rc 版为正式版的候选版,而且 很快就出 ...

  5. Ubuntu 13.04 VirtualBox在工作区中的切换

    Ubuntu的工作区很方便,可以有好几个工作区,本人自从换了Ubuntu深感Ubuntu在应用软件上的缺失(当然显然这不是Ubuntu的错).为了弥补缺失,我只能安装了Virtualbox虚拟机,里边 ...

  6. [转] JDBC中的Statement和PreparedStatement的区别

    以Oracle为例吧 Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume ...

  7. LICEcap 录制Gif动画

    使用 能录制Gif动画

  8. MySQL 两个数据库表中合并数据

    两个数据库表中合并数据 如果有  t1  和 t2 两个数据库表格,它们两个对应的字段是相同的.如何将 t2 的数据插入到t1中去呢? insert into t1 select * from t2 ...

  9. 稀疏傅里叶变换(sparse FFT)

    作者:桂. 时间:2018-01-06  14:00:25 链接:http://www.cnblogs.com/xingshansi/p/8214122.html 前言 对于数字接收来讲,射频域随着带 ...

  10. linux杀掉tomcat应用进程。停止tomcat应用

    ps -ef |grep tomcat |grep -v grep |awk '{print $2}' |xrags kill -9