一次支持write+stream的nginx编译安装过程

本文记录了在安装Nginx过程中遇到的配置、编译错误及解决方案,包括缺少依赖库pcre的问题,并详细说明了如何升级aclocal版本、编译安装pcre以及解决运行时的共享库缺失问题。

准备安装的模块

./configure --prefix=/usr/local/nginx --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream

源下载:http://nginx.org/download/nginx-1.14.0.tar.gz

make报错:缺少pcre,下载pcre源码:https://sourceforge.net/projects/pcre/files/pcre/8.42/

编译安装pcre报错:aclocal-1.15: command not found

aclocal --version 查看版本1.11,需要升级,

升级参考:https://jingyan.baidu.com/article/ab0b563072e697c15afa7d98.html

参考文档中说要“重启一下”,我的处理方式:

1、find / -name aclocal 找到所有aclocal可执行文件;

2、用新生成的aclocal文件替换原来老的文件;

3、aclocal --version  显示版本升级成功;

重新编译安装pcre,过关;


再次对nginx进行编译,无报错,但运行的时候报错:

Starting nginx: /usr/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

搜索 find / -name libpcre.so.1,显示文件存在,解决参考:

https://blog.youkuaiyun.com/beyondlpf/article/details/7900306

执行:ln -s /usr/local/lib/libpcre.so.1 /lib64


再次启动nginx,ok!



### 如何在嵌入式开发板上通过交叉编译构建 Nginx 服务器 #### 工具链准备 为了能够在目标平台上运行 Nginx,首先需要准备好适合目标平台架构的工具链。例如,在 ARM 平台上工作时,通常会选择 `arm-linux-gnueabihf` 或类似的工具链[^4]。 #### 配置和编译过程 Nginx 的源码可以通过官方仓库获取。下载完成后,进入解压后的目录并设置合适的配置选项。对于嵌入式设备而言,可能需要裁剪掉一些不必要的模块来减少内存占用。以下是基本的配置命令: ```bash ./configure --prefix=/usr/local/nginx \ --with-http_ssl_module \ --without-http_gzip_module \ --host=arm-linux-gnueabihf ``` 上述命令中的 `--host=arm-linux-gnueabihf` 是指定了用于交叉编译的目标主机类型。完成配置之后即可开始实际的编译操作: ```bash make && make install ``` #### 安装与部署 编译成功后得到可执行文件以及相关资源文件,这些都需要被传输至目标硬件环境中去。可以借助诸如 SCP 等方式实现文件上传。另外需要注意的是,如果所使用的 Linux 发行版不带必要的依赖项,则还需要额外移植那些动态链接库或者考虑静态编译的方式以规避此问题[^3]。 #### 可选优化方案 考虑到性能因素,还可以尝试替换默认的日志记录机制或是调整 worker 进程数量等参数来适应具体应用场景的需求。此外也可以参考 shttpd 的设计理念——即无需复杂配置就能快速启动服务的功能特点[^1],从而进一步简化管理流程。 ```python def optimize_nginx_config(): config = """ user nobody; worker_processes auto; error_log /var/log/nginx/error.log warn; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } } } """ with open('/etc/nginx/nginx.conf', 'w') as f: f.write(config) optimize_nginx_config() ``` 以上脚本展示了如何自定义一份精简版本的 Nginx 配置文档。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值