nginx的docker镜像制作相关问题
nginx安装配置相关问题 二、php环境之nginx的docker镜像制作 的相关问题
问题1 centos版本选择
首先可以使用
cat /etc/centos-release
查看原有服务器的centos系统版本 如 返回CentOS Linux release 7.8.2003 (Core)
那为了保证环境的一致你可以选择下载centos 7相关版本的镜像 而后对应的基础镜像包和版本可以到 dockerHub 中搜索相关包的信息 也可以使用命令检索docker search [你要搜索的镜像包]
使用docker pull centos:6
或docker pull centos:7
获取的是对应大版本的最新可用版,包括修复对应的漏洞 使用docker pull centos
或docker pull centos:latest
获取当前可用的最新版本(比如现在的8.5.2111)
问题2 nginx版本选择
首先使用
nginx -v
查看原有服务器的版本 eg: nginx version: nginx/1.10.0 然后可以到nginx官方下载页 查看当前nginx稳定版本 再然后到 https://nginx.org/download/ 下载页获取对应版本的下载地址 之后就可以下载相应版本的nginx来安装了wget https://nginx.org/download/nginx-x.xx.x.tar.gz
问题3 检测nginx相关依赖包是否安装过以及作用
代码语言:shell复制nginx编译安装前需要的依赖如下
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
所以有必要检测下相关依赖是否已经安装过,
#查看 C 环境是否安装(查看版本号)
[root@xxx]gcc -v
#查看 zlib 是否安装
[root@xxx]cat /usr/lib64/pkgconfig/zlib.pc
#查看 pcre 是否安装(查版本号)
[root@xxx]pcre-config --version
#如果有正常信息返回就表明已经安装过无需再安装了
#使用下面命令找pcre对应位置
[root@xxx]rpm -ql pcre
/usr/lib64/libpcre.so.1
/usr/lib64/libpcre.so.1.2.0
/usr/lib64/libpcre16.so.0
/usr/lib64/libpcre16.so.0.2.0
/usr/lib64/libpcre32.so.0
/usr/lib64/libpcre32.so.0.0.0
/usr/lib64/libpcrecpp.so.0
/usr/lib64/libpcrecpp.so.0.0.0
/usr/lib64/libpcreposix.so.0
/usr/lib64/libpcreposix.so.0.0.1
/usr/share/doc/pcre-8.32
/usr/share/doc/pcre-8.32/AUTHORS
/usr/share/doc/pcre-8.32/COPYING
/usr/share/doc/pcre-8.32/ChangeLog
/usr/share/doc/pcre-8.32/LICENCE
/usr/share/doc/pcre-8.32/NEWS
/usr/share/doc/pcre-8.32/README
#如果是yum安装的pcre 那编译配置时 --with-pcre也可以不带目录
#否则在配置./configure编译文件时需要指定具体目录
#比如`--with-pcre=/usr/share/doc/pcre-8.32`
其中各依赖的作用
- 通过
gcc
和gcc-c
来编译源代码生成二进制可执行文件(编译器作用) pcre
和pcre-devel
是 PCRE(Perl Compatible Regular Expression)库的不同部分,用于支持 Nginx 的正则表达式功能。zlib
和zlib-devel
是用于压缩和解压缩数据的库,Nginx 在处理 HTTP 请求和响应时需要使用它- 同时安装
openssl
和openssl-devel
来确保 Nginx 能够正常使用 SSL/TLS 加密功能
问题4 我安装过程中遇到的问题
代码语言:txt复制#我再运行如下命令安装对应依赖时出现如下错误
[root@xxx]yum -y install gcc gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel && yum clean all
...
...
Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream 84 B/s | 38 B 00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
...
错误原因参考:https://blog.csdn.net/weixin_43252521/article/details/124409151
- 第一种尝试
ping www.baidu.com
是通的所以对外网络没有问题 - 第二种情况 我的docker基础镜像使用的是
docker pull centos
获取的是最新版本centos的镜像包 ,的确是8版本,便是 CentOS 已经停止维护的问题
解决方法:对下面的文件进行全局查找替换(具体命令意思可搜索 sed -i 替换)
代码语言:txt复制sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
生成缓存更新(第一次更新,速度稍微有点慢,耐心等待两分钟左右)
yum makecache
最后,运行 yum update 后就能正常使用 yum安装了
yum update
php安装配置相关问题
php安装配置相关问题 三、php环境之php的docker镜像制作 的相关问题
问题1 php版本的选择
最好选用如下版本,其他版本有安全漏洞需要自行打补丁
- PHP 8.1.7
- PHP 8.0.20
- PHP 7.4.30