常见问题归纳(docker安装配置php+nginx环境相关)

2023-07-04 17:48:16 浏览数 (1)

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:6docker pull centos:7 获取的是对应大版本的最新可用版,包括修复对应的漏洞 使用 docker pull centosdocker 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相关依赖包是否安装过以及作用

nginx编译安装前需要的依赖如下 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel 所以有必要检测下相关依赖是否已经安装过,

代码语言:shell复制
#查看 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` 

其中各依赖的作用

  • 通过 gccgcc-c 来编译源代码生成二进制可执行文件(编译器作用)
  • pcrepcre-devel 是 PCRE(Perl Compatible Regular Expression)库的不同部分,用于支持 Nginx 的正则表达式功能。
  • zlibzlib-devel 是用于压缩和解压缩数据的库,Nginx 在处理 HTTP 请求和响应时需要使用它
  • 同时安装 opensslopenssl-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
php版本漏洞php版本漏洞

0 人点赞