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. PWA 入门: 写个非常简单的 PWA 页面

    Progressive Web Apps 是 Google 提出的用前沿的 Web 技术为网页提供 App 般使用体验的一系列方案. 这篇文章里我们来完成一个非常简单的 PWA 页面. 一个 PWA ...

  2. Spring3整合Quartz实现定时作业

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...

  3. python练习笔记——组合恒等式

    排列组合结合恒等式 已知从n个物品中取出m个,则存在一个组合恒等式. C(n, m)=C(n, n-m)=C(n-1, m-1)+C(n-1,m) 其中C(n,0) = 1 求:从5取3 和 10 取 ...

  4. 查看Linux内核及发行商版本命令

    一.查看Linux内核版本命令(两种方法): 1. cat /proc/version Linux version -.el7.x86_64 (builder@kbuilder.dev.centos. ...

  5. POJ 2115:C Looooops

    C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19536   Accepted: 5204 Descr ...

  6. jQuery的prop和attr的区别,及判断复选框是否选中

    jQuery的prop和attr的区别 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 参数有区别,att ...

  7. vue 关于deep watch / computed 监听不到 vuex state 对象变化的的问题

    简而言之,如果vuex state 中是一个对象 {},那么监听就会有问题.先给出解决方案: // 超简易拷贝(如果是深拷贝还多此一举把get/set拷贝进去了,所以用简易拷贝即可) let __VA ...

  8. libsvm参数说明[zz]

    English:libsvm_options:-s svm_type : set type of SVM (default 0) 0 -- C-SVC 1 -- nu-SVC 2 -- one-cla ...

  9. ansible 视频学习

    ansible 视频地址 https://ninghao.net/video/4040

  10. 分布式系统的那些事儿(六) - SOA架构体系

    有十来天没发文了,实在抱歉!最近忙着录视频,同时也做了个开源的后台管理系统LeeCX,目前比较简单,但是后续会把各类技术完善.具体可以点击“原文链接”. 那么今天继续说分布式系统的那些事. 我们现在动 ...