吴先森
为退烧而生!
吴先森的笔记
CentOS7 ARM编译Nginx
CentOS7 ARM编译Nginx

最近,我树莓派出现structure needs cleaning,修复后部分文件缺失,所以打算重装系统,碰巧,这个星期作业少,所以打算手动编译LNMP环境不用一键安装包,练一下我的技术

1.准备安装

安装make,g++,添加用户和用户组

yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++ glibc
groupadd -r www
useradd -r -g www www

安装目录的话,我是安装在默认位置,当然如果你想要安装到你自己喜欢的目录也可以,自己修改一下路径

2.Nginx安装

2.1.文件准备

下载并解压pcre,zlib,openssl和nginx

cd /root
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz
wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
wget http://nginx.org/download/nginx-1.17.5.tar.gz
#如果你要下载新版本,请下载tar.gz后缀的,zip的是windows版的(之前下载zip版,死活无法编译,最后ls看文件才发现下载了win版的)
tar -zxvf pcre-8.43.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
tar -zxvf openssl-1.1.0b.tar.gz
tar -zxvf nginx-1.17.5.tar.gz

2.2.开始编译

./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --user=www --group=www --with-http_ssl_module --with-http_flv_module --with-http_mp4_module  --with-http_stub_status_module --with-select_module --with-poll_module --error-log-path=/home/wwwlogs/error.log --http-log-path=/home/wwwlogs/access.log  --with-pcre=/root/pcre-8.43 --with-zlib=/root/zlib-1.2.11 --with-openssl=/root/openssl-1.1.0b
make
make install
各参数说明
--prefix表示nginx要安装到哪个路径下,这里指定刚才新建好的/alidata/server目录下的nginx-1.12.2;
--sbin-path表示nginx的可执行文件存放路径
--conf-path表示nginx的主配置文件存放路径,nginx允许使用不同的配置文件启动,通过命令行中的-c选项
--pid-path表示nginx.pid文件的存放路径,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid
--error-log-path表示nginx的主错误、警告、和诊断文件存放路径
--http-log-path表示nginx的主请求的HTTP服务器的日志文件的存放路径
--user表示nginx工作进程的用户
--group表示nginx工作进程的用户组
--with-select_module或--without-select_module表示启用或禁用构建一个模块来允许服务器使用select()方法
--with-poll_module或--without-poll_module表示启用或禁用构建一个模块来允许服务器使用poll()方法
--with-http_ssl_module表示使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的
--with-pcre表示pcre的源码路径,因为解压后的pcre是放在root目录下的,所以是/root/pcre-8.41;
--with-zlib表示zlib的源码路径,这里因为解压后的zlib是放在root目录下的,所以是/root/zlib-1.2.11
--with-openssl表示openssl库的源码路径
开始生成配置文件
开始make
这个命令如果执行很快不是因为失败了,其实是成功了的,只要出现make[1]:Leaving 什么的,并且nginx目录和sbin有的基本上都成功了

2.3.添加服务

建立/etc/init.d/nginx

在其中写入

#!/bin/bash
# chkconfig: - 85 15
PATH=/usr/local/nginx
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=$PATH/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}";
exit 3
;;
esac
exit 0

注意修改几个变量,分别是PATH、NAME、DAEMON、CONFIGFILE、PIDFILE、SCRIPTNAME,其中,PATH设置为nginx的安装路径,DAEMON设置为nginx启动脚本的路径,CONFIGFILE是nginx.conf文件的路径,PIDFILE是进程文件的路径,需要与nginx.conf文件中的配置一致,SCRIPTNAME则是要指向当前文件路径/etc/init.d/nginx 

赋予权限并开机自动启动

chmod +x /etc/init.d/nginx
systemctl enable nginx
systemctl start nginx #启动nginx
systemctl stop nginx #关闭nginx
systemctl reload nginx #重新加载配置文件
chkconfig --add nginx #添加启动项
chkconfig nginx on #开机自启动

2.3.查看是否安装成功

输入你的服务器IP,如果出现以下页面则表示安装成功

没有标签
首页      其他      CentOS7 ARM编译Nginx

吴先森

文章作者

为退烧而生!

发表评论

textsms
account_circle
email

吴先森的笔记

CentOS7 ARM编译Nginx
最近,我树莓派出现structure needs cleaning,修复后部分文件缺失,所以打算重装系统,碰巧,这个星期作业少,所以打算手动编译LNMP环境不用一键安装包,练一下我的技术 1.准备安装 …
扫描二维码继续阅读
2019-11-16