网站首页 > java教程 正文
nginx官网有一篇文章专门说明怎么源码编译安装nginx,我们最大限度使用里面的参数,让nginx的特性都开起来.
nginx官网的源码编译说明书
如果需要设置路径,那么就需要自己去下载软件,我们可以看到有两个,分别是zlib和Perl.
下载pcre(跟正则表达式相关)
进入pcre官网:
pcre官网
下载最新版pcre
下载最新版pcre
下载zlib
进入官网:
zlib官网
点击上图下载区域中圈红的地方下载软件
解压pcre
tar -jxvf pcre2-10.23.tar.bz2
解压zlib
tar -zxvf zlib-1.2.11.tar.gz
解压zlib
配置nginx源码
配置nginx源码
配置nginx源码报错
./configure: error: SSL modules require the OpenSSL library.You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.
下载openssl
openssl官网
解压openssl
tar -zxvf openssl-1.1.0e.tar.gz
再次配置nginx源码
./configure --prefix=path=/usr/local/nginx \
--sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--build=nginx \
--user=nginx \
--group=nginx \
--with-select_module \
--with-poll_module \
--with-http_ssl_module \
--with-pcre=/home/test/Desktop/pcre2-10.23 \
--with-pcre-jit \
--with-zlib=/home/test/Desktop/zlib-1.2.11 \
--with-openssl=/home/test/Desktop/openssl-1.1.0e
配置成功:
配置nginx源码成功
make nginx源码
make
make nginx源码报错:
cd /home/test/Desktop/pcre2-10.23 \
&& make libpcre.la
make[2]: Entering directory '/home/test/Desktop/pcre2-10.23'
make[2]: *** No rule to make target 'libpcre.la'. Stop.
make[2]: Leaving directory '/home/test/Desktop/pcre2-10.23'
objs/Makefile:1226: recipe for target '/home/test/Desktop/pcre2-10.23/.libs/libpcre.a' failed
make[1]: *** [/home/test/Desktop/pcre2-10.23/.libs/libpcre.a] Error 2
make[1]: Leaving directory '/home/test/software/nginx-1.12.0'
Makefile:8: recipe for target 'build' failed
make: *** [build] Error 2
make nginx源码报错的原因和解决方案
不能使用pcre2,必须使用pcre1版本,重新下载pcre,现在下载pcre-8.40.tar.gz:
解压:
tar -zxvf pcre-8.40.tar.gz
重新配置nginx源码
./configure --prefix=path=/usr/local/nginx \
--sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--build=nginx \
--user=nginx \
--group=nginx \
--with-select_module \
--with-poll_module \
--with-http_ssl_module \
--with-pcre=/home/test/Desktop/pcre-8.40 \
--with-pcre-jit \
--with-zlib=/home/test/Desktop/zlib-1.2.11 \
--with-openssl=/home/test/Desktop/openssl-1.1.0e
make nginx源码
make
make成功.
安装 nginx
make install
安装成功
创建nologin用户nginx
sudo useradd -s /usr/sbin/nologin -r -M -d /dev/null nginx
修改启动nginx的用户
nginx用的是80端口,在Linux中1024以下的端口号都需要root权限才能使用.
vim /usr/local/nginx/nginx.conf
启动nginx报错
/usr/local/nginx/nginx
报出如下错误:
2017/05/19 02:35:56 [emerg] 10062#0: mkdir() "path=/usr/local/nginx/client_body_temp" failed (2: No such file or directory)
2017/05/19 02:43:11 [emerg] 10510#0: mkdir() "path=/usr/local/nginx/proxy_temp" failed (2: No such file or directory)
2017/05/19 02:43:54 [emerg] 10528#0: mkdir() "path=/usr/local/nginx/fastcgi_temp" failed (2: No such file or directory)
2017/05/19 02:44:16 [emerg] 10551#0: mkdir() "path=/usr/local/nginx/uwsgi_temp" failed (2: No such file or directory)
2017/05/19 02:45:28 [emerg] 10559#0: mkdir() "path=/usr/local/nginx/scgi_temp" failed (2: No such file or directory)
修改
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
client_body_temp_path /usr/local/nginx/client_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
uwsgi_temp_path /usr/local/nginx/uwsgi_temp;
scgi_temp_path /usr/local/nginx/scgi_temp;
查看nginx是否正常启动
ps -aux|grep nginx
主线程还是root用户启动的,工作线程是使用nginx用户启动
猜你喜欢
- 2024-09-30 技术实践——如何在Ubuntu-16.04上配置Apache Kafka集群!
- 2024-09-30 Ubuntu18.04+Docker+Hadoop+Spark分布式集群搭建
- 2024-09-30 JDK安装部署(jdk安装部署linux)
- 2024-09-30 DevOps-Jenkins-安装(Ubuntu)(ubuntu安装jdk15)
- 2024-09-30 Ubuntu 安装 .bundle 文件(ubuntu budgie安装)
- 2024-09-30 ubuntu安装burpsuite渗透利器(ubuntu安装brctl)
- 2024-09-30 Ubuntu 下 Janus Server 搭建(ubuntu20.04搭建web服务器)
- 2024-09-30 分享使用了15年的开发环境Ubuntu快速配置
- 2024-09-30 Ubuntu 18.04.1 搭建Java环境和HelloWorld
- 2024-09-30 Ubuntu 14.04 PPA安装Java sdk(ubuntu20.04安装教程)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)