最近,我树莓派出现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库的源码路径



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,如果出现以下页面则表示安装成功

发表回复