标签 LNMP 下的文章

前言

博主继续分享关于 LNMP 安装和优化的实战经验。这些年来,个人的长期实战证明,LNMP 的优化效果非常显著,尤其是在提升网站性能方面。今天,博主将重点介绍在 LNMP 一键安装脚本成功搭建好 WEB 环境后,必须进行的 PHP 性能优化。这一步骤对于提升整体系统的响应速度和稳定性至关重要,能够显著改善网站的加载速度和用户体验。

第一步:/usr/local/php/etc/php-fpm.conf 文件优化

pm = dynamic

pm.max_children = 50

pm.start_servers = 10

pm.min_spare_servers = 10

pm.max_spare_servers = 50

pm.max_requests = 1024

pm.process_idle_timeout = 10s

request_terminate_timeout = 300

request_slowlog_timeout = 0

slowlog = var/log/slow.log

这里的前四个设置是为了调整PHP-CGI进程数的,每个PHP-CGI进程大约占用20MB的内存。因此,建议根据自己VPS的配置

另外一个标红的 timeout 时间就设置为300吧,博主一直是这么设置的,博主也试过其他的数值,在使用过程中个人感觉300是最佳的。当然这也是我个人的观点。也可以根据自己的使用习惯设置。

第二步:/usr/local/php/etc/php.ini 文件优化

隐藏PHP版本号

将文件里面的 expose_php = On 修改为 expose_php = Off 。

解决缓存优化时session问题

session.cache_limiter = nocache 修改为 session.cache_limiter = none 。

第三步: 优化opcache内存大小

/usr/local/php/conf.d/004-opcache.ini

修改里面 opcache.memory_consumption 参数,如博主的修改为 opcache.memory_consumption=256 ,明显,opcache可用内存改为256MB。

大家需要根据自己的VPS配置进行修改。

第四步:优化Memcached内存大小

/etc/init.d/memcached

修改里面的 CACHESIZE 参数,如博主修改为: CACHESIZE=256 ,即Memcached可用内存为256MB内存。

同样,大家可以根据自己的VPS配置进行优化。

总结:

以上PHP优化不可以用于LNMP的php优化,但是其它的web环境是可以的。

另外,博主强烈建议大家启用 OPcache 和 Memcached 来进一步加速网站性能。OPcache 能有效提升 PHP 脚本的执行速度,减少服务器的负担,而 Memcached 则通过缓存常用数据,显著降低数据库查询压力。如果没有安装这两个缓存优化工具,那么第三步和第四步的优化步骤就可以跳过,因为它们的作用已经被这两个缓存工具所覆盖,能够大大提高网站的响应速度和稳定性。

演示站点:https://mirror.dal.ao

项目地址:dalao-org/MirrorOne

老项目重构求点 Star

前言

可能很多人还记得前几年的 Oneinstack/lnmp 脚本被收购后出现供应链投毒的问题。

OneInStack 疑似供应链投毒 Nginx

但是投毒的方式并不是在脚本本身进行了修改,而是在脚本依赖的 oneinstack 托管的软件包里直接进行了投毒。相当于是脚本下载了含木马的软件包。因此,在那之后我就写了一个 Python 脚本来爬取 Oneinstack 全部依赖的软件包的官方下载地址,并通过 GitHub Actions 自动运行,生成 Cloudflare/Netlify 支持的跳转脚本。当 lnmp 这一类脚本请求下载时,会被自动跳转到原始的官方链接。

当时的代码记录

举个例子

当你请求下载 MySQL 8.4.6 的时候,请求镜像地址 https://mirror.dal.ao/src/mysql-8.4.6-linux-glibc2.28-x86_64.tar.xz 会直接 302 跳转到 https://downloads.mysql.com/archives/get/p/23/file/mysql-8.4.6-linux-glibc2.28-x86_64.tar.xz

MirrorOne

这两天因为重新部署服务器,因此重新把这个项目拾起来重构了一番。将原本依赖 GitHub Actions 的运行方式彻底抛弃了,改为 FastAPI 后端 + 定时任务来处理。主要原因有以下几个:

  1. GitHub Actions 访问 PHP 的官方站点频繁出错
  2. Netlify 和 Cloudflare Pages 都有跳转规则数量上限
  3. 自托管可以处理局域网等受限网络的情况

新的特点

  1. 新增了 WebUI 界面,允许管理员进行设置,包括对抓取的软件包版本的限制、版本类型限制。避免了命令行程序设置的麻烦。
  1. 重定向和缓存的双重镜像模式。在默认的重定向模式下,对软件包下载的请求仍然会被重定向到官方下载链接;而缓存模式下,会从托管的服务器下载。但为了避免恶意利用,当系统在缓存模式下时,仍然可以通过 force_redirect=true 请求参数来强制使用重定向模式。
  2. 标准化的爬虫 Scraper 基类,可以更容易地添加更多软件包。

📌 转载信息
转载时间:
2026/1/14 10:53:34