本地和服务器上运行不一致如何解决?

2016-03-30 15:47:44 +08:00
 lamCJ

开发机器目前用的是 Win10 ,写项目用的 PHPStrom , XShell 连接 Linux , Xftp 打包上传网站(快换 Git 了...)。

本地开发 nginx+apache+php+mysql 等版本都比较新,但是服务器端的整个 LNMPA 的版本都不高。

某些项目在这种差异下几乎没有影响,但是最近服务器环境比较复杂[1]后,本地测试无误后的 PHP 项目上传到服务器上后很多地方出现 500 ,甚至 404[2],路径出错等。

请问你们 怎么避免 这种问题?以及遇到这种问题的时候 如何快速解决 的?

或者分享一下你们的不错的 开发&部署 方案? 以及其他 建议

必须让开发环境和线上环境完全一致吗?

说明
7678 次点击
所在节点    PHP
32 条回复
lamCJ
2016-03-30 16:51:18 +08:00
@zi 因为.... 我开始学 php 的时候用的版本就已经不低了 低版本不熟悉....
lightening
2016-03-30 16:59:59 +08:00
@lamCJ 那你应该升级服务器环境了。要么自己学习低版本,要么升级服务器的 php 。
lamCJ
2016-03-30 17:04:11 +08:00
@lightening 你们是怎么搭建 staging 环境的呢?(是如果服务器是 centos5.11 那我也得去下载一个 centos5.11 然后在虚拟机里面跑 php 这些,这样吗?)
lightening
2016-03-30 17:07:41 +08:00
@lamCJ 买一个一模一样的服务器,装一模一样的软件。
lightening
2016-03-30 17:08:42 +08:00
@lamCJ 也用(几乎)一模一样的部署方法(可能就域名不一样,另外数据是假的)。每次要先部署到 staging 测试一下,然后再部署到 production 。
lamCJ
2016-03-30 17:09:37 +08:00
@lightening 懂了~ 谢谢
lhbc
2016-03-30 17:10:43 +08:00
@lamCJ 再慢也不会 404 啊, nginx 只有在找不到文件的时候才会报 404
lamCJ
2016-03-30 17:26:54 +08:00
@lhbc 那我也解释不了了,反正现象就是如果在审查工具中看状态码就是 404 ,而直接访问图片 url 却可以看到...

就是这样:

![status code 404]( )

![direct access ok]( )

我也觉得奇怪... 所以我猜可能就是网络不行
dishuibaby
2016-03-30 18:20:36 +08:00
我们是线下有一套与线上代码一致的测试环境。代码放到 svn ,然后开在测试机进行调试。你这样子系统不一致、各种版本不一致。肯定会出问题的。我们现在环境一致,都经常上线的时候出错。紧急回滚。
zaishanfeng
2016-03-30 18:34:08 +08:00
镜像线上环境
wweir
2016-03-30 21:00:18 +08:00
开发测试环境通过 docker 统一。部署不关我们事,只提供各种脚本
ppto
2016-03-31 09:09:35 +08:00
php 内核代码在线查看工具, www.phpsourcechm.com

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/267372

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX