linux[armbian]环境安装nginx

news2024/12/23 15:31:40

文章目录

  • linux[armbian]环境安装
  • 常用命令
  • 遇到的问题和解决方法
    • 问题一:conf/koi-win复制错误
    • 解决方法
    • 问题二:缺少相关的日志目录
    • 解决方法

linux[armbian]环境安装

  1. 下载Nginx:
    访问[Nginx官方网站](https://nginx.org/),在下载页面找到最新版本的Nginx。可以选择稳定版本或开发版本,然后点击相应的下载链接。

  2. 安装依赖项:
    在安装Nginx之前,需要安装一些必要的依赖项,例如编译工具和库。对于基于Debian或Ubuntu的系统,可以使用以下命令安装依赖项:

    sudo apt update
    sudo apt install build-essential
    
	sudo apt install libpcre3 libpcre3-dev
	```
	- 否则,你可能遇到这样的错误
		- 错误1:HTTP rewrite module需要PCRE库。
	- 错误:make命令没有找到所需的目标'build'```bash
	./configure: error: the HTTP rewrite module requires the PCRE library.
	You can either disable the module by using --without-http_rewrite_module
	option, or install the PCRE library into the system, or build the PCRE library
	statically from the source with nginx by using --with-pcre=<path> option.

	root@armbian:/usr/local/nginx# make
	make: *** No rule to make target 'build', needed by 'default'.  Stop.
	```
```bash
sudo apt install zlib1g zlib1g-dev
  • 否则,你会遇到这写错误:
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.


  • 编译成功的标志:

    Configuration summary
      + using system PCRE library
      + OpenSSL library is not used
      + using system zlib library
    
      nginx path prefix: "/usr/local/nginx"
      nginx binary file: "/usr/local/nginx/sbin/nginx"
      nginx modules path: "/usr/local/nginx/modules"
      nginx configuration prefix: "/usr/local/nginx/conf"
      nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
      nginx pid file: "/usr/local/nginx/logs/nginx.pid"
      nginx error log file: "/usr/local/nginx/logs/error.log"
      nginx http access log file: "/usr/local/nginx/logs/access.log"
      nginx http client request body temporary files: "client_body_temp"
      nginx http proxy temporary files: "proxy_temp"
      nginx http fastcgi temporary files: "fastcgi_temp"
      nginx http uwsgi temporary files: "uwsgi_temp"
      nginx http scgi temporary files: "scgi_temp"
    
  • Nginx编译已经成功完成,并且使用了系统的PCRE库和zlib库。下面是一些重要的配置信息:

配置项路径/文件
Nginx路径前缀“/usr/local/nginx”
Nginx可执行文件路径“/usr/local/nginx/sbin/nginx”
Nginx模块路径“/usr/local/nginx/modules”
Nginx配置前缀“/usr/local/nginx/conf”
Nginx配置文件路径“/usr/local/nginx/conf/nginx.conf”
Nginx的pid文件路径“/usr/local/nginx/logs/nginx.pid”
Nginx错误日志文件路径“/usr/local/nginx/logs/error.log”
Nginx HTTP访问日志文件路径“/usr/local/nginx/logs/access.log”
Nginx HTTP客户端请求体临时文件目录“client_body_temp”
Nginx HTTP代理临时文件目录“proxy_temp”
Nginx HTTP FastCGI临时文件目录“fastcgi_temp”
Nginx HTTP uWSGI临时文件目录“uwsgi_temp”
Nginx HTTP SCGI临时文件目录“scgi_temp”

这些路径和文件是默认配置下的设置,可以根据需要进行自定义修改。可以编辑nginx.conf文件来更改Nginx的监听端口、虚拟主机配置、代理设置等。


  1. 解压和编译:
    • 下载完成后,将下载的Nginx压缩包解压到选择的目录中。
    • 使用命令行进入解压后的目录,然后执行以下命令编译和安装Nginx:
#查看文件的权限
ls -l configure
#添加执行权限
chmod +x configure
#使用sudo命令以超级用户权限运行
sudo ./configure
make
make install

在这里插入图片描述

  1. 启动Nginx:
    编辑完配置文件后,使用以下命令启动Nginx(/usr/local/nginx为项目目录):

    sudo /usr/local/nginx/sbin/nginx
    
  2. 验证安装:
    打开浏览器并访问http://localhost

在这里插入图片描述

常用命令

cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件
ps aux|grep nginx  查看nginx进程
  • 要停止Nginx服务器,可以使用以下命令:

    • 使用systemctl命令(适用于使用systemd的Linux系统,如Ubuntu 16.04+、CentOS 7+等):
    sudo systemctl stop nginx
    
    • 或者使用Nginx自带的执行程序:
    sudo /usr/local/nginx/sbin/nginx -s stop
    
  • 如果使用的是Nginx安装包管理工具(例如apt或yum),可以使用对应的包管理命令:

    使用apt(适用于Ubuntu/Debian):

    sudo apt-get remove nginx
    
    • 使用yum(适用于CentOS/RHEL):
    sudo yum remove nginx
    

遇到的问题和解决方法

问题一:conf/koi-win复制错误

root@armbian:/usr/local/nginx# make install
make -f objs/Makefile install
make[1]: Entering directory '/usr/local/nginx'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin' \
        || mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx' \
        || mv '/usr/local/nginx/sbin/nginx' \
                '/usr/local/nginx/sbin/nginx.old'
cp objs/nginx '/usr/local/nginx/sbin/nginx'
test -d '/usr/local/nginx/conf' \
        || mkdir -p '/usr/local/nginx/conf'
cp conf/koi-win '/usr/local/nginx/conf'
cp: 'conf/koi-win' and '/usr/local/nginx/conf/koi-win' are the same file
make[1]: *** [objs/Makefile:1212: install] Error 1
make[1]: Leaving directory '/usr/local/nginx'
make: *** [Makefile:13: install] Error 2
  • 复制conf/koi-win文件时目标文件路径和源文件路径相同导致的。
  • Nginx在编译安装时,并不需要复制conf/koi-win文件,因此这个错误并不会影响Nginx的安装和运行。这可能是在编译过程中出现的一个小问题,通常不会影响Nginx的正常使用。

解决方法

可以尝试通过以下步骤绕过这个错误:

  1. 使用sudo make命令编译Nginx,而不要使用sudo make install

  2. 编译成功后,手动将编译生成的objs/nginx二进制文件复制到/usr/local/nginx/sbin/nginx路径中。

  3. 手动创建Nginx配置文件目录/usr/local/nginx/conf,并确保在该目录下有正确的配置文件,例如nginx.conf

以下是可能的绕过方法:

# 编译Nginx
sudo make

# 复制编译生成的二进制文件
sudo cp objs/nginx /usr/local/nginx/sbin/nginx

# 创建配置文件目录(如果目录不存在)
sudo mkdir -p /usr/local/nginx/conf

# 确保在 /usr/local/nginx/conf 目录下有正确的配置文件,例如 nginx.conf

# 启动Nginx
sudo /usr/local/nginx/sbin/nginx

问题二:缺少相关的日志目录

root@armbian:/usr/local/nginx# sudo cp objs/nginx /usr/local/nginx/sbin/nginx
root@armbian:/usr/local/nginx# sudo /usr/local/nginx/sbin/nginx
nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
2023/07/05 23:51:04 [emerg] 26667#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)
  • 错误提示表明Nginx在启动时无法打开错误日志文件和访问日志文件。

解决方法

  • 可能是因为在安装Nginx时缺少了相关的日志目录,或者目录的权限设置不正确。
  1. 创建日志目录:
    首先,确保日志目录/usr/local/nginx/logs/已经存在。如果不存在,您可以使用以下命令创建该目录并设置正确的权限:

    sudo mkdir -p /usr/local/nginx/logs/ # 结合自己的路径进行灵活修改
    sudo chown -R <your_username>:<your_group> /usr/local/nginx/logs/
    
    • <your_username><your_group>替换为您当前用户的用户名和所属用户组。
  2. 检查Nginx配置文件:

    • 确保您的Nginx配置文件中的错误日志和访问日志的路径正确。
    • 打开Nginx的配置文件/usr/local/nginx/conf/nginx.conf,查找并确保以下两行的路径与上面创建的日志目录相匹配:
    error_log  /usr/local/nginx/logs/error.log;
    access_log  /usr/local/nginx/logs/access.log;
    
    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
  3. 启动Nginx:

    sudo /usr/local/nginx/sbin/nginx
    

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/721956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

排序算法(1):冒泡排序

在计算机科学领域&#xff0c;排序算法是一个重要的主题。冒泡排序法是最基础且简单的排序算法之一&#xff0c;它的原理简单易懂&#xff0c;是学习排序算法的理想起点。本文将详细介绍冒泡排序法的原理、实现方法以及优化技巧&#xff0c;帮助读者全面了解和掌握这一经典算法…

重新安装conda时报错

自己因为最近利用 conda 安装了比较多的软件,在输入创建环境时&#xff1a; conda create -n python27 python2.7 报错&#xff0c;环境创建不成功。 显示 miniconda3 文件夹已存在 &#xff08;因为安装时会默认安装至此目录&#xff0c;如果此目录已经存在则会冲突报错&…

【基础算法】贪心算法

贪心算法又称贪婪算法&#xff0c;是一种常见的算法思想。贪心算法的优点是效率高&#xff0c;实现较为简单&#xff0c;缺点是可能得不到最优解。 贪心算法的基本思想 贪心算法就是在求解问题时&#xff0c;总是做出当前看来最好的选择。也就是说贪心算法并不从整体最优上考…

word转PDF后图片为何会变小?怎么解决?

有些同学反映将Word文档转换为PDF后&#xff0c;发现里面的图片居然变小了&#xff0c;这是什么原因造成的&#xff1f;该怎么解决呢&#xff1f; 先来说说原因&#xff0c;我个人认为可能是由以下原因造成的&#xff1a; 1、word插入图片后压缩“太狠”了。当你在word中插入…

GENMARK控制器维修S08S4P.D工业电脑维修

机器人GENMARK SYSTEM CONTROLLER系统控制器维修S08S4P.D工业电脑&#xff1b;晶圆转移机器人SΛΛALL CONTROLLER&#xff1b; SΛΛC1100 半导体设备机械臂GENMARK控制器等 GenMark的两大构架&#xff1a;eSensor&#xff08;电子传感&#xff09;和Elecitrowetting&#xf…

ibaq intensity 蛋白组学 蛋白质组学两个定量方法(iBAQ和LFQ)的区别及常见的标准化方法

4.MaxQuant中的Intensity&#xff0c;LFQ和iBAQ 大佬的软件&#xff0c;三种定量算法都发了文章。 Intensity是将某Protein Groups里面的所有Unique和Razor peptides的信号强度加起来&#xff0c;作为一个原始强度值。用得很少。iBAQ是在Intenstiy的基础上&#xff0c;将原始…

JUC#线程池加锁逻辑梳理

带着问题看源码 为什么要用线程池?Java是实现和管理线程池有哪些方式? 请简单举例如何使用。为什么很多公司不允许使用Executors去创建线程池? 那么推荐怎么使用呢?ThreadPoolExecutor有哪些核心的配置参数? 请简要说明ThreadPoolExecutor可以创建的是哪三种线程池呢?当…

【Web3】Web3Js高频Api

目录 Web3Js方法 初始化Web3实例 Web3Api 创建账号Api 获取余额Api 单位转换工具函数 Web3Js方法 web3.eth&#xff1a;用于与以太坊区块链和智能合约之间的交互。 web3.utils&#xff1a;包含一些辅助方法。 web3.shh&#xff1a;用于协议进行通信的P2P和广播。 web3…

1066 Root of AVL Tree (PAT甲级)

这道题类似1123题。 #include <cstdio> #include <algorithm>struct node{int key;node* left nullptr;node* right nullptr; };int N, t; node* root nullptr;int getHeight(node* r){if(!r){return 0;}return std::max(getHeight(r->left), getHeight(r-&…

【json-server】json-server安装与使用:

文章目录 一、下载安装:二、启动db.json数据及相关参数&#xff1a;三、创建json数据——db.json&#xff1a;四、修改端口号&#xff1a;五、操作数据&#xff1a;【1】常规获取&#xff1a;【2】过滤获取 Filter:【3】分页 Paginate&#xff1a;【4】排序 Sort&#xff1a;【…

使用 .editorconfig 文件来统一编程风格

做过长期开发的程序员都知道保持编程风格统一的重要性, 统一的风格能够降低各种成本. 有一句名言是咋说的来着? 代码主要是给人看的, 其次才是给电脑去运行. 但另一方面, 大家又普遍是偷懒的, 对于这些长期会受益, 但短期收益不明显甚至带来麻烦的事, 许多团队中的成员不能说抵…

产品经理进阶:硬件产品定价指南

目录 介绍 基于成本的定价 基于市场的定价 基于价值的定价 总结一下 CSDN学员课程 优惠活动通知 介绍 定价本身其实是一个相对复杂的过程。 因为有很多变量会影响到你最终的定价。 比如说&#xff1a;客户的维度、竞争对手的维度、成本的维度等等。 但是无论如何&am…

Impala3.4源码阅读笔记(三)data-cache的Store实现

前言 本文为笔者个人阅读Apache Impala源码时的笔记&#xff0c;仅代表我个人对代码的理解&#xff0c;个人水平有限&#xff0c;文章可能存在理解错误、遗漏或者过时之处。如果有任何错误或者有更好的见解&#xff0c;欢迎指正。 正文 本文顺承前文Impala3.4源码阅读笔记&a…

mac电脑上,webm格式怎么转换成mp4?

mac电脑上&#xff0c;webm格式怎么转换成mp4&#xff1f;webm格式的视频也是最近几年也越来越多的&#xff0c;小编最近就不止一次的下载到过webm格式的视频&#xff0c;很多小伙伴肯定对它还并不是很了解&#xff0c;webm是由谷歌公司所提出以及开发出来的视频文件格式&#…

matlab读取STK生成的报告

一、STK 和 Matlab的生成的图片对比 &#xff08;一&#xff09;STK图片 &#xff08;二&#xff09;Matlab图片 &#xff08;三&#xff09;STK生成的报表数据 "Time (UTCG)","Azimuth (deg)","Elevation (deg)","Range (km)" 20 J…

编译Android平台的OpenCV库并启用OpenCL及Contrib

1.下载好OpenCV与OpenCV_Contirb 版本: 4.7 编译主机系统: Ubuntu 20.04 LTS 准备环境与工具: ANDRIOD SDK 与 NDK ,CMAKE ,NINJA ,GCC,G++ ,MAKE 开始编译: ../opencv/platforms/android/build_sdk.py --extra_modules_path=../opencv_contrib/modules --no_samples_bu…

坚固型3DMAG™ A31315LOLATR-XZ-S-SE-10、A31315LOLATR-XY-S-AR-10霍尔效应磁性位置传感器IC

A31315 3D磁性位置传感器IC是完全集成的坚固型3DMAG™ 霍尔效应磁性位置传感器IC&#xff0c;主要用于支持汽车、工业和消费类应用中的各种非接触式旋转和线性位置测量。 A31315传感器IC集成了垂直和平面霍尔效应元件&#xff0c;可检测三个磁场分量&#xff08;X、Y和Z&#x…

spring如何使用junit进行测试

第一步maven的pom.xml引入坐标&#xff1a; <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version></dependency> 第二步编写测试方法&#xff1a; 第三步 定义scope类型

gpt4实现对摄像头帧缓冲区图像的LAB阈值选择界面(python-opencv)

代码全是GPT4写的&#xff0c;我就提出Prompt和要改的地方而已。 图形界面效果 代码 import cv2 import numpy as np import time from tkinter import * from PIL import Image, ImageTkclass App:def __init__(self, window, window_title, video_source0):self.window wi…

【面试】美团面试真题和答案

文章目录 前言1.线程池有几种实现方式&#xff1f;2.线程池的参数含义&#xff1f;3.锁升级的过程&#xff1f;4.i 如何保证线程安全&#xff1f;5.HashMap和ConcurrentHashMap有什么区别&#xff1f;6.Autowired和Resource区别&#xff1f;7.说说常用的设计模式8.Redis为什么这…