前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录一次docker构建phalcon项目环境遇到的坑 --- 解决child pid xxx exit signal Illegal instruction (4)

记录一次docker构建phalcon项目环境遇到的坑 --- 解决child pid xxx exit signal Illegal instruction (4)

作者头像
躺平程序员老修
发布2023-09-05 15:36:38
2350
发布2023-09-05 15:36:38
举报

docker phalcon

前言

Docker 并不是万能的。

如果你在使用docker部署phalcon的运行环境,或者其他需要在docker容器里编译的东西,那么这篇文章或许对你有所启发。

构思

公司有一个很老的验证项目,使用的是phalcon开发,这几天交给我个任务让我在docker里部署一下他的运行环境,达到“一次部署,永久运行”的结果。

先是大致看了一下代码,了解一下phalcon的机制,发现要使用phalcon的话需要针对性的编译他的扩展,于是决定在centos里进行部署,最后打包成tar。

经过

下载docker,使用centos7作为基础镜像。

代码语言:javascript
复制
1. 部署php7的运行环境以及开发工具包
2. 下载最新的phalcon源码
3. 进入bulid目录编译扩展
4. 重启web服务器

运行ok!生成镜像!打包!换个环境测试!

这里要补充一句,我的docker部署在虚拟机上,所有的操作都在虚拟机实现,于是很方便开启一台新的虚拟机。

新开一台虚拟机(centos MiNi)测试也正常运行,ok,到公司服务器准备部署!

问题

我明明用的docker,按理说,与世隔绝的环境,应该不会出现意外才对,但就是出了问题。 错误日志如下: AH00052: child pid xxx exit signal Illegal instruction (4)

22.png
22.png

我做了两套docker容器,分别跑两个项目,一个是这个,另一个是laravel,laravel的项目正常跑通,唯独这个phalcon。

问题出在哪里? 我的机器可以跑,我装了2台虚拟机都可以跑通,唯独到了公司服务器上不行,难道是公司服务器有问题?但是laravel项目可以正常访问啊!

难道是镜像问题?可是我的机器全都正常啊!

解决

排查过程太复杂就不记录了。

最后发现问题出在了phalcon扩展身上,我是在docker里面的php环境下编译的扩展,但是我的机器是i5的CPU,公司服务器是E5的CPU,问题就在这,到公司服务器上重新编译一下扩展,问题被解决。

结论

如果你要在docker容器里编译东西,记得确保运行docker的环境是一致的;报错的话不妨重新编译一下,也许问题就能得到解决。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 构思
  • 经过
  • 问题
  • 解决
  • 结论
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档