西西软件下载最安全的下载网站、值得信赖的软件下载站!

首页编程开发其它知识 → Debian/Ubuntu下安装nginx编译源代码及配置方法

Debian/Ubuntu下安装nginx编译源代码及配置方法

相关软件相关文章发表评论 来源:黑剑时间:2013/3/29 20:12:33字体大小:A-A+

作者:黑剑点击:0次评论:1次标签: nginx

NginxV1.8.1 官方稳定版
  • 类型:服务器区大小:1.2M语言:英文 评分:1.4
  • 标签:
立即下载

安装nginx方法有很多,比如像Windows平台下可以直接下载已经编译好的二进制文件,解压完成后可以直接运行。下面我只说在Debian/Ubuntu下编译源代码的安装方法。

首先,需要下载nginx源代码,可以在官网直接下载,也可以使用版本控制工具来下载代码,我是从github上clone到本地的。 接下来,将代码解压后,需要执行configure命令来配置你的nginx安装信息。下面有一个配置命令的例子,是官网提供的:

./configure

    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-4.4
    --with-zlib=../zlib-1.1.3

我这里简洁描述一下配置命令的几个参数的含义

--prefix=path   定义服务器保存文件的目录,默认为/usr/local/nginx

--sbin-path=path   nginx执行文件名,默认为prefix/sbin/nginx

--conf-path=path   设置nginx.conf配置文件名,默认为prefix/conf/nginx.conf

--pid-path=path    设置nginx.pid文件名,它用来保存nginx主进程的进程ID,默认为prefix/logs/nginx.pid

--error-log-path=path   设置错误日志文件名,默认为prefix/logs/error.log

--http-log-path=path     设置HTTP请求日志文件名,默认为prefix/logs/access.log

--user-name=path     设置未授权用户名,默认为nobody

--group=name     设置组名,默认为未授权用户名

--with-select_module    编译或取消编译利用select()方法的模块

--with-poll_module     编译或取消编译利用poll()方法的模块

--without-http_gzip_module    取消编译HTTP服务器压缩响应的模块,需要zlip库

--without-http_rewrite_module   取消编译HTTP服务器重定向请求或修改请求URI地址的模块,需要PCRE库

--without-http_proxy_module    取消编译HTTP服务器代理模块

--with-http_ssl_module    编译添加对HTTPS协议的支持,需要OpenSSL库

--with-pcre=path    设置PCRE库的源代码路径,下载PCRE源码后解压缩到指定的path即可,剩下的交给nginx的./configure和make命令完成

--with-pcre-jit    编译PCRE库支持及时编译

--with-zlib=path    设置zlib库源代码的路径,同样下载zlib源码后解压到指定的path即可

--with-cc-opt=parameters    设置CFLAGS变量的额外参数

--with-ld-opt=parameters    设置链接时的额外参数

上面说到的zlib库、PCRE库和OpenSSL库,我在安装时都自己下载了,地址在上面也给出了,可以自己完成编译工作。

执行configure命令后,再执行make install命令(如果你安装的路径需要授权,在前面加上sudo)。

我是安装到了/usr/local/nginx目录下,在安装完成后配置了/etc/environment里的PATH环境变量,将我的nginx安装目录添加到了PATH路径中,/etc/environment生效后(source命令)。在终端执行nginx命令提示权限不够,执行sudo命令提示找不到nginx命令。

sudo有时候会出现找不到命令,而明明PATH路径下包含该命令,让人疑惑。其实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,但却使得sudo搜索的路径不是我们想要的PATH变量的路径,当然就找不到我们想要的命令了。两种方法解决该问题:

首先,都要打开sudo的配置文件:sudo visudo

1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径。这个指令指定当用户执行 sudo 命令时在什么地方寻找二进制代码和命令。这个选项的目的显然是要限制用户运行 sudo 命令的范围,这是一种好做法。

2.将Defaults env_reset改成Defaults !env_reset取消掉对PATH变量的重置,然后在.bashrc中最后添加alias sudo='sudo env PATH=$PATH',这样sudo执行命令时所搜寻的路径就是系统的PATH变量中的路径,如想添加其他变量也是类似。

解决完后执行sudo nginx没有提示,再启动浏览器输入http://localhost回车,如果出现下面的页面说明安装成功。如果需要退出nginx,执行sudo nginx -s quit命令即可。

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(1)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)
    推荐文章

    没有数据