nginx 中标麒麟arm编译过程
解压所有的依赖软件包,以及 Nginx 的源码包,所有源码包都位于同级目录下:

下载并解压依赖软件包

$ wget https://buildpack.oss-cn-shanghai.aliyuncs.com/static/r6d/nginx/nginx-compile-lib/pcre-8.44.tar.gz
$ tar xzf pcre-8.44.tar.gz
$ wget https://buildpack.oss-cn-shanghai.aliyuncs.com/static/r6d/nginx/nginx-compile-lib/zlib-1.2.11.tar.gz
$ tar xzf zlib-1.2.11.tar.gz
$ wget https://buildpack.oss-cn-shanghai.aliyuncs.com/static/r6d/nginx/nginx-compile-lib/openssl-1.1.1l.tar.gz
$ tar xzf openssl-1.1.1l.tar.gz

安装 pcre-8.44

tar -xvf pcre-8.44.tar.gz
cd /opt/pcre-8.44
./configure
make
make install

报错:编译pcre 报错 error: Invalid C++ compiler or C++ compiler flags
![image.png](https://img-blog.csdnimg.cn/img_convert/e15525ef24a3ac3de02c5b07e16b1733.png#averageHue=#131313&clientId=uef73cfec-d558-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u811c3d4e&margin=[object Object]&name=image.png&originHeight=152&originWidth=746&originalType=url&ratio=1&rotation=0&showTitle=false&size=8357&status=done&style=none&taskId=uc899af9f-88e0-41c7-b13f-f1968126f4a&title=)
离线安装gcc-c++包

gcc-c++-7.3.0-20190804.h30.ky10.aarch64.rpm
libstdc++-devel-7.3.0-20190804.h30.ky10.aarch64.rpm

安装 openssl-1.1.1l

tar -xvf openssl-1.1.1l.tar.gz
cd /opt/openssl-1.1.1l
./config
make
make install

安装 zlib-1.2.11

tar -xvf zlib-1.2.11.tar.gz
cd /opt/zlib-1.2.11
./config
make
make install

下载并解压 nginx stable 源码包

$ wget https://nginx.org/download/nginx-1.20.2.tar.gz
$ tar zxf nginx-1.20.2.tar.gz
$ cd nginx-1.20.2

执行 configure ,并指定静态编译参数:

$ ./configure
--prefix=/usr/local/nginx
--with-http_ssl_module
--with-openssl=../openssl-1.1.1l
--with-pcre=../pcre-8.44
--with-zlib=../zlib-1.2.11

开始执行编译:

$ make && make install

打包编译出来的 Nginx 目录即可:

$ tar czf nginx-1.20.2-arm64.tar.gz /usr/local/nginx

验证

查看编译后产生的可执行文件,会发现该二进制文件的编译类型为静态类型,这样的文件,可以在 arm64 架构下的任意 Linux 环境下运行。

$ file /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx: ELF 64-bit LSB  executable, ARM aarch64, version 1 (SYSV), statically linked, for GNU/Linux 3.7.0, BuildID[sha1]=66e5740a16bdfe6bc2f04c5371fd706ae7ca5395, not stripped

将编译好得文件nginx-1.18.0-arm64.tar.gz拷贝到需要使用得机器
解压
tar xzf nginx-1.18.0-arm64.tar.gz
配置服务 vi /etc/systemd/system/nginx.service

# /usr/lib/systemd/system
# systemd service file for Nginx Server forking server
#
[Unit]
Description=The nginx
After=network.target[Service]
User=root
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/uar/local/nginx/sbin/nginx -s stop
PrivateTmp=true[Install]
WantedBy=multi-user.target

重新加载配置
systemctl daemon-reload
重新服务
systemctl restart nginx.service

报错:make[1]: *** [/usr/local/pcre//Makefile] Error 127
解决:–with-pcre=DIR 是设置源码目录,而不是编译安装后的目录。改下,重新编译就好了。

![image.png](https://img-blog.csdnimg.cn/img_convert/b596f97fb2cb817f9a2c77dfd2bd7d37.png#averageHue=#20251e&clientId=uef73cfec-d558-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=udf75bc9f&margin=[object Object]&name=image.png&originHeight=320&originWidth=800&originalType=url&ratio=1&rotation=0&showTitle=false&size=77534&status=done&style=none&taskId=ua2195a2a-84c0-40e4-9639-8006176d1ce&title=)

报错:403

一、由于启动用户和nginx工作用户不一致所致
1.1查看nginx的启动用户,发现是nobody,而为是用root启动的
命令:ps aux | grep “nginx: worker process” | awk’{print $1}’
1.2将nginx.config的user改为和启动用户一致,
命令:vi conf/nginx.conf
二、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。

  1. server {
  2. listen 80;
  3. server_name localhost;
  4. index index.php index.html;
  5. root /data/www/;
  6. }
    如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。
    三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
    解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
  7. chmod -R 777 /data
  8. chmod -R 777 /data/www/
    四、SELinux设置为开启状态(enabled)的原因。
    4.1、查看当前selinux的状态。
  9. /usr/sbin/sestatus
    4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。
  10. vi /etc/selinux/config
  11. #SELINUX=enforcing
  12. SELINUX=disabled
    4.3、重启生效。reboot。
  13. reboot

中标麒麟arm编译nginx使用相关推荐

  1. 中标麒麟编译qgis源码+PyQt环境

    中标麒麟编译qgis源码 根据公司工作安排需要在中标麒麟下编译qgis3.4.7,把编译的过程随手记录一下. QGIS项目主页:http://www.qgis.org/en/site/ QGIS源码下 ...

  2. 银河麒麟、中标麒麟学习实操资料汇总(含V4、V7、V10)

    数据库和操作系统关系十分密切,因为数据库是运行于操作系统上的一个管理数据的应用.在数据库国产化替代的浪潮之下,一批批国产操作系统也崭露头角.墨天轮社区便选取了中国操作系统排行榜上排名靠前的麒麟软件,依 ...

  3. QGIS与国产操作系统兼容性测试(Deepin、优麒麟、中标麒麟)

    三款国产操作系统使用初步体验一文从操作系统易用性.生态完整性.软件包获取难易程度等方面考察其是否满足日常办公需求.然而对我来说,QGIS是日常最常用的软件之一, QGIS与操作系统的兼容性尤其重要,于 ...

  4. linux源码编译-安装postgresql数据库(中标麒麟+龙芯CPU)

    linux源码编译-安装postgresql数据库(中标麒麟+龙芯CPU) 一.查看yum源中pgsql版本 二.安装readline-devel 三.下载pgsql库的源码 四.解压下载的源码.co ...

  5. 麒麟 mips mysql_中标麒麟OS+龙芯MIPS适配开源中间件

    大纲 一 背景 二 目标 三 服务器 四 中间件适配 五 应用 六 部署 七 风险 八总结 九 最后rpm 制作 一 背景 19年国家开始筹备和实施安可工程.我司有幸参与其中. 二 目标 适配安装OS ...

  6. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (三) 部署运行WEB API项目

    部署dotnet Core Web API 上一步的文章,是我们公司最核心的一个ORM组件,在中标麒麟系统完成了一个插入数据的任务,这一步是将正式的从dot net framework 迁移到 dot ...

  7. linux软件包管理 pdf,中标麒麟Linux系统软件包管理介绍(22页)-原创力文档

    中标麒麟Linux服务器操作系统培训系列 中标麒麟Linux系统软件包管理介绍 技术创新,变革未来 本章目标 •了解中标麒麟Linux服务器操作系统中应用程序的 组成: •了解中标麒麟Linux服务器 ...

  8. arm编译安装php启动,在 ARM 设备上手工编译 LNMP 编译到心态爆炸

    昨晚把我的华为畅享 8 Root 了,装了个 Linux Deploy,跑 CentOS 7 因为 CPU 比较辣鸡,就打算拿来建个小站玩玩 一开始打算用 OneinStack,结果发现不支持 ARM ...

  9. 中标麒麟——初次体验,感觉流畅

    安装试用国产系统 --中标麒麟V7.0 下载完镜像,创建一个新的虚拟机 image 配置好镜像文件,开始安装了 image 这个倒是和一般的Linux系统没什么区别,中标麒麟也是基于Linux 的. ...

最新文章

  1. 震精!Spring Boot内存泄露,排查竟这么难!
  2. Spring-security配置
  3. linux centos7 升级 make 4.0
  4. Python入门学习笔记08(random模块)
  5. Java程序在命令行的编译运行
  6. Android—Broadcast原理
  7. 优酷视频如何分享个人主页
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的鲜花销售系统
  9. 开源GIS(十一)——openlayers中加载离线标准与自定义切片(深度好文)
  10. Trimble天宝水准仪维修DINI03全站仪/电子水准仪维修特点
  11. Mac上 安装Drozer 并使用
  12. 学习微信小程序的资料汇总---转载自知乎
  13. 网易交互设计师微专业C4 让页面更优雅
  14. 网络附加存储技术与磁盘阵列柜的对比
  15. UI界面设计相关知识(一)
  16. java自学-常见的API(String、ArryList)
  17. Python+BI分析5000条招聘数据,原来数据分析工作在这儿最好找
  18. 使用video.js 播放youtube视频——踩坑记1
  19. UDP点对点传输实现
  20. 【附源码】计算机毕业设计java职业信息服务平台设计与实现

热门文章

  1. 有哪些协同办公软件比较好用?
  2. Docker容器的详细教程(全面了解容器的使用)
  3. 桌面调试平台flipper
  4. 在寻求正确的项目管理工具时:Jira,Trello,Asana,Redmine
  5. 后端开发面试自我介绍_记录自己坎坷的面试经历,后端方向
  6. 算法-图论_关键节点的判断
  7. 一般步进电机一圈脉冲数
  8. spring返回数据使用ajax,【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中...
  9. anaconda+pycharm环境下创建新的虚拟环境报错Cannot set up a python SDK at Python 3.6 (envs)The SDK seems invalid.
  10. IT忍者神龟之javascript规范