所以现在有多少生产环境用上了 PHP7?

2016-03-02 20:36:51 +08:00
 yanyandenuonuo

最近在纠结 PHP 版本的问题,现版本 5.2 ,因种种原因需要升级版本,那么问题来了,究竟是升 5.5 还是 5.6 还是一步到 7 呢?
私下测试过 5.6 能跑起来但是有一些功能无法正常运行,被抛弃的语法需要做相应的改动。

按照惯例, PHP 是世界上最好的语言~

5696 次点击
所在节点    PHP
66 条回复
iyaozhen
2016-03-03 01:16:12 +08:00
问这个没有意义呀。能上就上
Wangxf
2016-03-03 02:44:37 +08:00
没有历史包袱了为啥不上呢
kn007
2016-03-03 07:37:28 +08:00
@yanyandenuonuo 第一个版本有,后续修复了
wd0g
2016-03-03 08:24:57 +08:00
5.2...哥们刚才哪儿回来啊?
furick
2016-03-03 08:55:24 +08:00
貌似 7 的 memcache 扩展有点问题? 有朋友实践成功了吗
realpg
2016-03-03 09:14:48 +08:00
php7 早就生产环境了
redis 自己编译,不用复杂功能 redis 扩展无 bug
初期是 php5 php7 双 fpm 共存, fastcgi 7:3 负载均衡 同时做了一个值守进程, php7 的 fpm 所有程序功能性报错和未知错误进行记录,非单点请求出现超过几次,自动做个标志位禁用 php7fpm ,都丢到 php5 处理,同时提供完整日志和数据进出供测试复现,一周没出现问题的,撤掉 php5 的负载均衡,仍然保留 failsafe ,对于 php7 出现问题的时候, php7 停用全部交由 php5 处理。
两周后,生产环境干掉 php5
realpg
2016-03-03 09:18:53 +08:00
另外,我本人开发以及所有可以接受管辖的人开发的程序,统统有专门的向新兼容性要求,非常注意各种 php 版本在测试期就表现出来的未来不兼容特性,及时进行修改。所有 php 的版本变动的新特性和不兼容,我们都统一在公司技术会议 /培训时,最早的提前进行预警, php 出现第二位的版本变化,在测试环境对所有旧程序兼容性进行考验,如果出现不兼容且不兼容的具体位置是在开发时间点之前公司有布置下去的,提前预警过的,要进行处罚(非经济)
simapple
2016-03-03 09:25:27 +08:00
所有新也许开发,只要不设计旧的兼容,无论系统 组件 语言 模式 一律按官方支持的最新版本
realpg
2016-03-03 09:26:50 +08:00
另外,公布一下我这边所有管理的开源项目、公司项目、个人项目、业余爱好项目的 PHP7 性能提升情况。


1. 简单网站,纯增删改查展示性,充分优化到具体页面都只是增删改查没有复杂逻辑,尤其是同时使用轻量级框架(比如 CI )的,以及复查度统统是复杂查询压到数据库上的复杂 SQL , PHP 端超级简单没有复杂逻辑的,这种项目 PHP7 的性能提升,不超过 5%,尤其是一些逻辑异常简单的 APP 后端的 RESTFUL API 类,同时使用情形框架的,性能完全无提升!实际项目,可以这么说,那些不涉及 MYSQL 重型查询的,平时在服务器上执行时间是 0.00XX 到 0.015X 之间的 PHP5 程序,到了 PHP7 基本还是这个执行时间(包含简单 MYSQL 查询开销的执行时间)

2. 纯 PHP 语法逻辑复杂的,性能提升十分明显,官方说的性能提升 50%,实际上看,比如一些财务性质的内部系统,数据库 /缓存提取简单数据后进行二次实时处理展示的,有些能提升 100%以上,压缩一半的执行时间。

3. 重型框架,那些加载机制异常复杂,功能完备,预载入特别多的重型框架,无论逻辑简单与否,性能提升都比较明显。比如 laravel ;由于 laravel 并没有内置简单 benchmark ,生产环境也不适合自己外挂个执行时间消耗内存的额外模块,以上为基于服务器负载 QPS 之类的大致推测
yanyandenuonuo
2016-03-03 09:50:19 +08:00
@vibbow 确定是因为 7 的异常处理机制导致的么 还是程序出现了严重的 bug

@xiaoshangmin MySQL 是 5.6 的 但是 PHP 的话没确定 5.6 还是 7 , 5.5 的话因为之前没确定是否是今年停止更新才考虑,昨天看到了官方的版本说明确定了今年停止安全更,那就不考虑 5.5 了。另外 7 的话有遇到什么坑可以说下么

@iyaozhen 主要是公司生产环境 不是我一个人能主导的,所以想了解全面一点,然后放心大胆的说服大家上 7 啊

@Wangxf 有历史包袱,上 5.6 和上 7 改动都比较大

@kn007 7 的第一个版本?

@wd0g [qweasd 星球]


@furick 暂时还没用 memcache 不过后续有计划上

@realpg 第一条回复是个很棒的建议 ,第二条我也有过这样的思路 不过在我们这里不好执行罢了。。第三条我们的算是第三种吧

@simapple 是老版本迁移 个人项目是直接上最新版的。
codegeek
2016-03-03 10:02:22 +08:00
如果你的程序还没有出现性能瓶颈,还没有到必须优化的阶段,那么最好不要动;建议先在一些独立的新项目里使用。
kn007
2016-03-03 10:04:36 +08:00
Pastsong
2016-03-03 10:08:25 +08:00
公司代码库很多 5 , 6 年前的东西,不敢上 7
barbery
2016-03-03 10:10:05 +08:00
基本上能跑在 PHP5.6 了 都可以直接上 7 ,密集运算的项目升 PHP7 ,性能感人,直飚几倍不是问题
phpcxy
2016-03-03 10:18:27 +08:00
最近用 laravel5.1 写的一个项目,部署到 PHP7 上没问题~
yanyandenuonuo
2016-03-03 10:41:50 +08:00
@Pastsong 5.4 已经停止安全更新了啊 5.5 也即将停止 总归要升级版本的吧

@barbery 跑 5.6 一些功能是会报错的,暂时发现的问题主要是一些抛弃的语法,现在是不确定直接上 7 会不会有什么隐藏的坑 毕竟是生产环境。

@phpcxy Laravel 5 好像就开始支持 7 了:-)
shyling
2016-03-03 10:48:19 +08:00
测试测试测试。
lucifer4he
2016-03-03 11:26:41 +08:00
开个分支升 7 呗,实在不行把代码往回一滚拉倒。
真相就是懒=。=
yanyandenuonuo
2016-03-03 12:09:41 +08:00
@lucifer4he 是生产环境啊。。确定要升级版本并且没那么多人力物力去做这件事情。。所以只能确定好一个版本 然后 just do it 。
wdd2007
2016-03-03 12:12:15 +08:00
http://aso100.com/ 运行在 PHP 7 上

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

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

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

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

© 2021 V2EX