共 179 篇文章
使用 Docker 搭建 Laravel 本地开发环境
Laravel 官方提供 Homestead 和 Valet 作为本地开发环境,但 Docker 相比虚拟机占用体积更小、启动更快,是更好的选择。
登录安全:重放攻击与防御策略
现在的应用系统中,大部分密码存储都是采用 md5 加密后存储,常用的登录基本流程如下:
- 前端 web 页面用户输入账号、密码,点击登录
- 请求提交之前,web 端首先通过客户端脚本对密码原文进行 md5 加密
- 提交账号、md5 之后的密码
- 后端验证账号与密码是否与数据库中的一致
这种流程看似安全,但实际上存在重放攻击风险!
使用 Supervisor 管理 Laravel 队列进程
Supervisor 是一个 Python 写的进程管理工具,有时一个进程需要在后台运行,并且意外挂掉后能够自动重启,就需要这么一管理进程的工具。在 Laravel 开发中,也经常使用到队列监听,可以配合 Supervisor 来管理 Laravel 队列进程。
Nginx 基于 User-Agent 实现多环境测试
在团队开发中,经常会遇到多个需求同时需要测试的情况。假设只有一个测试服务器,如何让多个开发人员同时测试不同的 git 分支?
一个解决方案是:基于 User-Agent 进行分流。
Laravel 分割 routes.php 路由文件的一种方式
Laravel 的路由功能很强大,路由规则默认都定义在 routes.php 文件中,但是随着项目越来越大,我们需要的定义的规则越来越多,如果几百上千个路由都定义在一个文件中,如何去维护?如果不同的人都在同一个文件定义路由,这就造成了冲突,因此我们有必要将 routes.php 文件分割成多个文件,可以按照功能模块来划分。
PHP 7 安装和开启 OPcache
鸟哥在博客中说,提高PHP 7性能的几个tips,第一条就是开启OPcache:
记得启用Zend OPcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快
优化 Laravel 网站打开速度
Laravel是一个功能强大的框架,组件很多,代码也很庞大,它的易用方便是牺牲了性能的,即便如此它仍然是一个优秀的框架,但在正式环境下要做好优化提升网站的打开速度。
Nginx SSI 使用指南
这是最早期的 SSR 方式之一——服务端在返回 HTML 前完成页面组装,客户端直接拿到完整页面,而非空壳再客户端渲染。
相信很多人在浏览网页时都遇到过这样的情况:本地在开发环境运行正常的页面,部署到测试环境后却发现部分内容缺失。比如导航栏、页脚、公用组件等内容本地看不到。
如果你遇到这样的情况,先检查一下页面源码中是否有类似这样的代码:
<!--#include virtual="/new/ssi/script.html"-->这就对了——这就是 SSI(Server Side Include)在起作用。本地没有配置 SSI,所以包含的内容没有渲染出来。
Redis 严重安全漏洞 CVE-2025-49844 解析
2025年10月3日,Redis 官方发布了一个严重的安全公告,披露了一个关键的远程代码执行(RCE)漏洞 —— CVE-2025-49844,也被称为 “RediShell”。该漏洞 CVSS 评分高达 10.0(严重),影响所有支持 Lua 脚本的 Redis 版本。
MySQL 使用 CRC32 做索引优化查询
给字符串类型的字段建立索引效率不高,但如果需要经常查询这个字段,可以通过 CRC32 转换来提高查询效率。
假设有一个字符串字段 sys_trans_id,需要频繁查询。可以新增一个整型字段 sys_trans_id_crc32 来存储 CRC32 的值,并在这个字段上建立索引。
PHP进程管理:pcntl_fork的原理与实战
在PHP中,除了传统的同步执行方式,我们还可以通过fork(分叉)进程来实现并行处理。本文将详细介绍PHP中进程管理的基础知识,特别是pcntl_fork函数的用法与背后的原理。
什么是Fork?
Fork是Unix/Linux系统中创建进程的基本方式。当一个进程调用fork()时,操作系统会复制当前进程(父进程),创建一个新的进程(子进程)。这两个进程将并行执行后续的代码。
乔布斯的 Connecting the Dots
You can’t connect the dots looking forward; you can only connect them looking backwards.
你无法预先把点点滴滴串联起来,只有在回顾过去时才能看清它们是如何连接的。
向那些疯狂的家伙致敬
1997年,重回苹果担任 CEO 的乔布斯,推出了著名的《Think Different》(非同凡想)广告。这则广告被视为广告史上的经典之作,它致敬了那些改变世界的疯狂天才,也重新定义了苹果的品牌形象。
PHP PDO prepare 预处理详解:如何安全地防止 SQL 注入
PDO(PHP Data Objects)是 PHP 数据库操作的统一接口,提供了预处理语句(Prepared Statements)功能,是防止 SQL 注入的最佳实践。
10 条 Steve Jobs 的经典语录
他的成就和人格魅力影响了一代人和整个世界,他就是拥有梦幻般传奇经历的苹果电脑公司的创始人斯蒂夫·乔布斯。这个个人电脑领域的梦想家引领并改变了整个计算机硬件和软件产业。
这个精力充沛魅力无限的家伙同时也是一个很会鼓动人心的激励大师,甚至在他的平常对话中,经典的语句也常常脱口而出。这里摘取了一些他的经典语录,希望这些乔氏语录对你有所帮助:
深入理解 PHP 内存管理:栈、堆与 zval 机制
PHP 是一种脚本语言,在运行时会将代码加载到内存中执行。理解 PHP 的内存管理机制,对于写出高效的 PHP 代码至关重要。本文将深入探讨 PHP 中的栈(Stack)、堆(Heap)以及 zval 内存管理机制。
Linux发明人Linus Torvalds自传摘录
除了程序员,大概很少人知道Linux操作系统。
它的发明者Linus Torvalds,知道的人就更少了。
他本人也很低调,深居简出,很少出席公众场合或接受媒体采访,通常只在专业开发者的邮件列表中发言。提起他的名字,人们的第一反应往往是"哦,传说中那个22岁就发明Linux的芬兰大学生……",其他就一片空白了。
他的自传《Just For Fun》出版于十年前(2001年),已经几乎被遗忘了。
内心平静下来——找到直觉
Coming back to America was, for me, much more of a cultural shock than going to India. The people in the Indian countryside don’t use their intellect like we do, they use their intuition instead, and their intuition is far more developed than in the rest of the world. Intuition is a very powerful thing, more powerful than intellect, in my opinion. That’s had a big impact on my work.
回到美国对我来说,去印度所引发的文化冲击远不如回到美国来得强烈。印度乡村的人们不像我们这样运用理性思考,他们运用直觉,而他们的直觉比世界上其他地方的人发达得多。在我看来,直觉是一种非常强大的东西,比理性更强大。这对我的工作产生了深远的影响。
你的时间有限——活出自己
Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.
你的时间是有限的,所以不要浪费它去过别人的生活。不要被教条束缚——所谓教条,就是活在别人思考的结果里。不要让别人的喧嚣淹没你自己内心的声音。最重要的是,要有勇气去追随你的内心和直觉——它们多少已经知道你真正想成为什么样的人。其他一切都是次要的。
记住自己即将死去——追随内心
Remembering that I’ll be dead soon is the most important tool I’ve ever encountered to help me make the big choices in life. Because almost everything—all external expectations, all pride, all fear of embarrassment or failure—these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart.
记住你即将死去——这是我已知的最有帮助的工具,它帮助我做出人生中的重大选择。因为几乎所有的一切——所有外在的期待、所有的骄傲、所有对尴尬或失败的恐惧——在死亡面前都会烟消云散,只留下真正重要的东西。记住你即将死去是避免认为自己有所失的陷阱的最好方法。你已经赤身裸体了,没有理由不追随你的心。
乔布斯的Stay Hungry, Stay Foolish
2005 年,Steve Jobs 在 Stanford 毕业典礼上演讲,最后送给了在场的年轻人一句「Stay Hungry,Stay Foolish.」这个演讲后来被广为流传,各种中译版也纷纷出现,有些人把这句话翻译为「求知若饥,虚心若愚」,《Cheers 杂志》则把这句话翻译为「饥渴求知,虚怀若愚」。无论如何,我认为这些都是错误的解读。
Go map 底层换用 Swiss Table 性能提升近 50%
在 2024 年 11 月 5 日的 Go compiler and runtime meeting notes 中,我们注意到一个重要信息:来自字节的一位工程师在两年多前提出的「使用 Swiss table 重新实现 Go map」的建议即将落地,该 issue 已经被纳入 Go 1.24 里程碑。