中标麒麟arm编译nginx使用
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这行中的指定的文件。
- server {
- listen 80;
- server_name localhost;
- index index.php index.html;
- root /data/www/;
- }
如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。
三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决 - chmod -R 777 /data
- chmod -R 777 /data/www/
四、SELinux设置为开启状态(enabled)的原因。
4.1、查看当前selinux的状态。 - /usr/sbin/sestatus
4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。 - vi /etc/selinux/config
- #SELINUX=enforcing
- SELINUX=disabled
4.3、重启生效。reboot。 - reboot
中标麒麟arm编译nginx使用相关推荐
- 中标麒麟编译qgis源码+PyQt环境
中标麒麟编译qgis源码 根据公司工作安排需要在中标麒麟下编译qgis3.4.7,把编译的过程随手记录一下. QGIS项目主页:http://www.qgis.org/en/site/ QGIS源码下 ...
- 银河麒麟、中标麒麟学习实操资料汇总(含V4、V7、V10)
数据库和操作系统关系十分密切,因为数据库是运行于操作系统上的一个管理数据的应用.在数据库国产化替代的浪潮之下,一批批国产操作系统也崭露头角.墨天轮社区便选取了中国操作系统排行榜上排名靠前的麒麟软件,依 ...
- QGIS与国产操作系统兼容性测试(Deepin、优麒麟、中标麒麟)
三款国产操作系统使用初步体验一文从操作系统易用性.生态完整性.软件包获取难易程度等方面考察其是否满足日常办公需求.然而对我来说,QGIS是日常最常用的软件之一, QGIS与操作系统的兼容性尤其重要,于 ...
- linux源码编译-安装postgresql数据库(中标麒麟+龙芯CPU)
linux源码编译-安装postgresql数据库(中标麒麟+龙芯CPU) 一.查看yum源中pgsql版本 二.安装readline-devel 三.下载pgsql库的源码 四.解压下载的源码.co ...
- 麒麟 mips mysql_中标麒麟OS+龙芯MIPS适配开源中间件
大纲 一 背景 二 目标 三 服务器 四 中间件适配 五 应用 六 部署 七 风险 八总结 九 最后rpm 制作 一 背景 19年国家开始筹备和实施安可工程.我司有幸参与其中. 二 目标 适配安装OS ...
- 国产中标麒麟Linux部署dotnet core 环境并运行项目 (三) 部署运行WEB API项目
部署dotnet Core Web API 上一步的文章,是我们公司最核心的一个ORM组件,在中标麒麟系统完成了一个插入数据的任务,这一步是将正式的从dot net framework 迁移到 dot ...
- linux软件包管理 pdf,中标麒麟Linux系统软件包管理介绍(22页)-原创力文档
中标麒麟Linux服务器操作系统培训系列 中标麒麟Linux系统软件包管理介绍 技术创新,变革未来 本章目标 •了解中标麒麟Linux服务器操作系统中应用程序的 组成: •了解中标麒麟Linux服务器 ...
- arm编译安装php启动,在 ARM 设备上手工编译 LNMP 编译到心态爆炸
昨晚把我的华为畅享 8 Root 了,装了个 Linux Deploy,跑 CentOS 7 因为 CPU 比较辣鸡,就打算拿来建个小站玩玩 一开始打算用 OneinStack,结果发现不支持 ARM ...
- 中标麒麟——初次体验,感觉流畅
安装试用国产系统 --中标麒麟V7.0 下载完镜像,创建一个新的虚拟机 image 配置好镜像文件,开始安装了 image 这个倒是和一般的Linux系统没什么区别,中标麒麟也是基于Linux 的. ...
最新文章
- 震精!Spring Boot内存泄露,排查竟这么难!
- Spring-security配置
- linux centos7 升级 make 4.0
- Python入门学习笔记08(random模块)
- Java程序在命令行的编译运行
- Android—Broadcast原理
- 优酷视频如何分享个人主页
- 基于JAVA+SpringMVC+Mybatis+MYSQL的鲜花销售系统
- 开源GIS(十一)——openlayers中加载离线标准与自定义切片(深度好文)
- Trimble天宝水准仪维修DINI03全站仪/电子水准仪维修特点
- Mac上 安装Drozer 并使用
- 学习微信小程序的资料汇总---转载自知乎
- 网易交互设计师微专业C4 让页面更优雅
- 网络附加存储技术与磁盘阵列柜的对比
- UI界面设计相关知识(一)
- java自学-常见的API(String、ArryList)
- Python+BI分析5000条招聘数据,原来数据分析工作在这儿最好找
- 使用video.js 播放youtube视频——踩坑记1
- UDP点对点传输实现
- 【附源码】计算机毕业设计java职业信息服务平台设计与实现
热门文章
- 有哪些协同办公软件比较好用?
- Docker容器的详细教程(全面了解容器的使用)
- 桌面调试平台flipper
- 在寻求正确的项目管理工具时:Jira,Trello,Asana,Redmine
- 后端开发面试自我介绍_记录自己坎坷的面试经历,后端方向
- 算法-图论_关键节点的判断
- 一般步进电机一圈脉冲数
- spring返回数据使用ajax,【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中...
- anaconda+pycharm环境下创建新的虚拟环境报错Cannot set up a python SDK at Python 3.6 (envs)The SDK seems invalid.
- IT忍者神龟之javascript规范