Linux 系统 nginx 源码编译安装
nginx版本 :nginx-1.18.0操作实施环境 : Ubuntu 16.04.6 LTSSUSE Linux Enterprise Server 12 SP4 (x86_64)注:因为是源码安装,操作系统事先安装好gcc编译环境和所需的库,如果可以联网可执行下面命令安装apt-get install build-essential libtool gcc automake autoconf
nginx版本 :nginx-1.18.0
操作实施环境 : Ubuntu 16.04.6 LTS
SUSE Linux Enterprise Server 12 SP4 (x86_64)
注:因为是源码安装,操作系统事先安装好gcc编译环境和所需的库,如果可以联网可执行下面命令安装
apt-get install build-essential libtool gcc automake autoconf make
若是无网环境,可另外下载安装包上传安装
一、安装包准备
下载nginx-1.18.0.tar.gz http://nginx.org/en/download.html
二、安装
此次nginx的上传目录为 /opt/
1.解压nginx-1.18.0.tar.gz
tar zxvf nginx-1.18.0.tar.gz
2. 进入到刚解压的目录
linux:/opt # cd nginx-1.18.0/
linux:/opt/nginx-1.18.0 # pwd
/opt/nginx-1.18.0
linux:/opt/nginx-1.18.0 # ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE Makefile man objs README src
3.编译
./configure --prefix=/usr/local/nginx
make
make install
4.nginx 服务注册
groupadd nginx //新增用户组
useradd nginx -g nginx -s /sbin/nologin //新增nginx启动用户
增加 /etc/systemd/system/nginx.service文件,文件内容如下
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
User=nginx
Group=nginx
[Install]
WantedBy=multi-user.target
5.nginx服务端口更改
nginx默认端口为80,只用root用户才能使用1024以下端口,现在nginx启动用户为nginx,所以需要更改端口值大于1024
vi /usr/local/nginx/conf/nginx.conf
6.nginx目录所属用户更改
chown -R nginx:nginx /usr/local/nginx
7.启动服务
systemctl start nginx
用浏览器访问 http://IP:端口 ,例如我的IP是192.168.101.126 端口值为 8054 则为http://192.168.101.126:8054如果出现以下页面则安装成功
三、可能遇到的问题
1.执行./configure --prefix=/usr/lcoal/nginx 后出现下图错误
是因为nginx依赖 pcre,此时需要安装pcre
pcre安装包下载 :https://ftp.pcre.org/pub/pcre/
tar -zxvf pcre-8.40.tar.gz
cd pcre-8.40.tar.gz
./configure
make && make install
2.服务启动失败
打开系统日志查看具体出错信息
tail -n 500 /var/log/message 或者 /var/log/syslog 不同操作系统 系统日志文件略有差异
从错误信息看出是缺少libpcre.so.0 ,执行以下命令查看它到底是从什么位置查找libpcre.so.0
linux:/usr/local # ldd $(which /usr/local/nginx/sbin/nginx)
linux-vdso.so.1 (0x00007ffd61bf9000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f64d1b21000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f64d1904000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f64d16c9000)
libpcre.so.0 => not found
libz.so.1 => /lib64/libz.so.1 (0x00007f64d14b2000)
libc.so.6 => /lib64/libc.so.6 (0x00007f64d110d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f64d1d25000)
从输出信息中可以看出它是从 /lib64/ 目录下查找文件,此时我们就需要在系统中找到libpcre.so.0的实际位置并做一个软件到/lib64/目录,libpcre.so.0的位置一般为 /usr/lcoal/lib/libpcre.so.0
ln -s /usr/local/lib/libpcre.so.0 /lib64/libpcre.so.0
更多推荐
所有评论(0)