很多朋友对于nginx网站源码分享和server不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
nginx官网有一篇文章专门说明怎么源码编译安装nginx,我们最大限度使用里面的参数,让nginx的特性都开起来.
nginx官网的源码编译说明书
如果需要设置路径,那么就需要自己去下载软件,我们可以看到有两个,分别是zlib和Perl.
下载pcre(跟正则表达式相关)
进入pcre官网:
pcre官网
下载最新版pcre
下载最新版pcre
下载zlib
进入官网:
zlib官网
点击上图下载区域中圈红的地方下载软件
解压pcre
tar-jxvfpcre2-10.23.tar.bz2
解压zlib
tar-zxvfzlib-1.2.11.tar.gz
解压zlib
配置nginx源码
配置nginx源码
配置nginx源码报错
./configure:error:SSLmodulesrequiretheOpenSSLlibrary.
Youcaneitherdonotenablethemodules,orinstalltheOpenSSLlibrary
intothesystem,orbuildtheOpenSSLlibrarystaticallyfromthesource
withnginxbyusing–with-openssl=<path>option.
下载openssl
openssl官网
解压openssl
tar-zxvfopenssl-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源码成功
makenginx源码
make
makenginx源码报错:
cd/home/test/Desktop/pcre2-10.23\\
&&makelibpcre.la
make[2]:Enteringdirectory’/home/test/Desktop/pcre2-10.23′
make[2]:***Noruletomaketarget’libpcre.la’.Stop.
make[2]:Leavingdirectory’/home/test/Desktop/pcre2-10.23′
objs/Makefile:1226:recipefortarget’/home/test/Desktop/pcre2-10.23/.libs/libpcre.a’failed
make[1]:***[/home/test/Desktop/pcre2-10.23/.libs/libpcre.a]Error2
make[1]:Leavingdirectory’/home/test/software/nginx-1.12.0′
Makefile:8:recipefortarget’build’failed
make:***[build]Error2
makenginx源码报错的原因和解决方案
不能使用pcre2,必须使用pcre1版本,重新下载pcre,现在下载pcre-8.40.tar.gz:
解压:
tar-zxvfpcre-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
makenginx源码
make
make成功.
安装nginx
makeinstall
安装成功
创建nologin用户nginx
sudouseradd-s/usr/sbin/nologin-r-M-d/dev/nullnginx
修改启动nginx的用户
nginx用的是80端口,在Linux中1024以下的端口号都需要root权限才能使用.
vim/usr/local/nginx/nginx.conf
启动nginx报错
/usr/local/nginx/nginx
报出如下错误:
2017/05/1902:35:56[emerg]100620:mkdir()”path=/usr/local/nginx/proxy_temp”failed(2:Nosuchfileordirectory)
2017/05/1902:43:54[emerg]105280:mkdir()”path=/usr/local/nginx/uwsgi_temp”failed(2:Nosuchfileordirectory)
2017/05/1902:45:28[emerg]10559log_formatmain’$remote_addr-$remote_user[$time_local]”$request”‘
‘”$http_user_agent””$http_x_forwarded_for”‘;
#access_loglogs/access.logmain;
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|grepnginx
主线程还是root用户启动的,工作线程是使用nginx用户启动
好了,文章到此结束,希望可以帮助到大家。
