golang 是不是云时代的 PHP ?
golang 是不是云时代的 php?
傻瓜、易懂,跟着入门教程: https://tour.golang.org/welcome/1, 几下就能上手了。 php 人员转 golang,java 人员转 golang,c++人员转 golang,就连和互联网不搭边的 c#的工程师,也觉得用 golang 写 server 方便。
golang 是不是云时代的 php?
傻瓜、易懂,跟着入门教程: https://tour.golang.org/welcome/1, 几下就能上手了。 php 人员转 golang,java 人员转 golang,c++人员转 golang,就连和互联网不搭边的 c#的工程师,也觉得用 golang 写 server 方便。
逃
@MeteorCat 部署 php 程序感觉好难受.
曾经搭过 Laravel 框架写的 onedrive 目录,
先配置 php 环境,看程序要求哪个 php 版本写的,编译安装用 lnmp,编译配置环境还要看需要什么 php 扩展,
安装 Composer,下载源码,编译(应该是编译吧,没怎么写过 Laravel 框架的),
最后写 nginx 配置,结果还是没成功跑起来.
不知道是我太菜了还是 php 部署太难.
(大佬勿喷,请放过小白)
golang 这边编译速度快,单文件直接跑,不需要什么环境依赖,简直不要太舒服.
中型以上的 Web 项目对我来说使用 php 还是首选 … 小型项目里 Go 的二进制包即传即用实在是深得我心 …
真的 … 语言间没有说谁是替代谁的一说 … 各有各用 … 多会一门语言多一条路罢了 …
题外话 … 我有台 32MB 内存的 VPS … 跑了个自制的 Linux … 只有 kernel + rootfs + Go binary …
整个系统里没有任何我用不到的文件 … 整洁精致 … 而且服务跑起来内存占用稳定在 8M 上下 …
就这个效果 … 换其他语言 … C 系列不论 … 不管是 P 开头 R 开头还是 J 开头的都实现不了 …
这时候我用 Go 写是因为我不得不用 … 总比折腾内存强 … 其他场景自然有其他的需求 … 再按需选语言就好 …
环境只是一条 apt install 就装需要的 php 环境与拓展,不用你自己手动编译,
composer 下载 php 三方代码依赖库或者二进制 excutable,是开发时才用到,你部署时 composer 下载的东西当然已经和你的 php 代码在一个项目里,所以 composer 对于部署没影响,
至于 nginx 问题,你也可以不用 nginx,就像你可以选择不用 mysql 数据库一样,你就可以不用配置 mysql,如果你不用 nginx 你就可以不用配置 nginx,
比如正好有个 go 写的代替 nginx 的高性能 php server 叫做 roadrunner,直接用 composer 装相关的集成就能用,都不用修改默认配置
与 laravel 集成 https://github.com/spiral/roadrunner-laravel
与 symfony 集成
https://github.com/baldinof/roadrunner-bundle
部署起来感觉每一步都不难,但是把他们加起来稍微麻烦.
“php 好部署”和”php 是热重启”的一样, 属于经典谣言
“php 好部署”这个出现是 asp->php 转型期, 都是跑在虚拟主机下这个大背景下的
asp 当时做虚拟主机的搞基础免黑防通用的 webshell 都会把 FSO 改名, 程序要正常跑, 需要同样改掉 FSO, 碰到混淆过的就抓瞎了, 有些像动易之类的还会把功能做成要 dll, 需要主机注册的, 非注明程序谁肯注册啊
php 早期只要装了 zend optimizer 问题就不大了
但是 php 真的容易部署么?
禁用函数、禁用扩展导致需要找原生替代方案的事少见么? 到了虚拟主机时代的中后期像 DH 、BH 甚至被迫允许用户 SSH 上去编译一个 php, 把自己的程序跑在 fcgi 模式下
还有些虚拟主机限制 FTP 单位时间的连接数的, 传超文件会屏蔽掉几分钟, 我印象里 35 或者时代的就是, 我甚至因为这个原因还干过把项目切成 n 个包, 然后用 webshell 上去一个个解压的事
至于现在 VPS 时代, go 部署的心智甚至还更低一点
对于原生 php 、slim 、silex 之类的用户, go 事实上正在替代啊
站长圈选 php 是因为 asp 凉了后在虚拟主机时代没其他的可以选, 并不是说 php 优势有多高
事实上站长圈更乐意选 html, 手动狗头
python 作为脚本语言挺舒服的,但是官方委员会没啥作为,ruby 都有 jit 了,python 还在加可有可无的语法
有了 Go,至少能大幅降低,给这类 infrastructure 产品贡献代码的难度,让小年轻也能愉快的和老鸟一起做 infra 。这个也是语言被发明出来的初衷。
go 的王牌项目( k8s, docker, InfluxDB, CockroachDB )都属于这些领域范畴。
在业务层误伤 php 、python 、java 感觉属于副产品。
我觉得应该称 go 为云时代的 C