为高性能优化 PHP-FPM PHP优质外文翻译 PHP 技术论坛

原文链接:https://learnku.com/php/t/34358 摘要:PHP是无处不在的,可以说是互联网 Web 应用上使用最广泛的语言。 然而,它的高性能并不为人所知,尤其是在涉及到高并发系统时。这就是为什么对于这样特殊的用例,正在被 Node (是的,我知道,它不是一种语言)、Go 和... 微信登录 为高性能优化 PHP-FPM PHP 是无处不在的,可以说是互联网 Web 应用上使用最广泛的语言。 然而,它的高性能并不为人所知,尤其是在涉及到高并发系统时。这就是为什么对于这样特殊的用例,正在被 Node (是的,我知道,它不是一种语言)、Go 和 Elixir 等语言接管。 也就是说,您可以做很多事情来改进服务器上的 PHP 性能。本文主要关注 php-fpm 方面的内容,如果您使用 Nginx,这是在服务器上的默认配置。 如果你知道 php-fpm 是什么,请直接跳到优化部分。 什么是 php-fpm? 许多开发人员对 DevOps 方面的知识不太感兴趣,即使是那些对此感兴趣的开发人员,也极少有人知道它的底层原理。有趣的是,当浏览器发送一个请求到运行 PHP 的服务器上时,PHP 也不是最先进行处理请求的服务;而是,HTTP 服务器,Apache 和 Nginx 是其中最主要的两个。「web 服务器」决定如何与 PHP 进行通信,然后传递请求的类型,数据和头部信息到 PHP 进程。 上图是 PHP 项目的请求 - 响应生命周期(图片来源: ProinerTech) 在现代 PHP 应用中,「find file」部分即为 index.php 文件,它是在服务器配置文件中配置的用于处理所有请求的代理。 如今,Web 服务器究竟如何连接 PHP 正在进化,如果我们要深入研究所有细节,这篇文章的长度将激增。但粗略来说,在 Apache 作为 Web 服务器首选的时间段,PHP 是作为包含在服务器内部的模块。 所以每当一个请求被接收,服务器将开启一个新的进程,它将自动包含 PHP 和执行请求。这个方法被称作 mod_php ,“PHP 作为一个模块” 的缩写。这种方法有其局限性,而 Nginx 和 php-fpm 克服了它。 ...

April 21, 2026 · Yancey

使用 Mihomo(Clash) 搭建透明网关,使局域网设备科学上网 EsunR-Blog

原文链接:https://blog.esunr.site/2025/04/ec8dc9f7a09d.html#0-%E4%BB%80%E4%B9%88%E6%98%AF%E9%80%8F%E6%98%8E%E7%BD%91%E5%85%B3 摘要:使用 Mihomo(Clash) 搭建透明网关,使局域网设备科学上网 本文只探讨在 Linux 设备下(如树莓派、迷你主机)开启 Clash,并将该设备作为透明网关供家庭其他设备使用这一场景,本文需要一定的网络原理基础。 0. 什么是透明网关 如果一个设备想要科学上网,那么他可以在本机安装代理工具来进行网络访问。但是在一个局域网中,网关是可以自定义的,我们可以将希望科学上网的设备网关指向一台可以转发网络流量的设备,从而让这个设备帮我们把流量转发给代理工具,并让代理工具访问到资源后再返回给设备,这就实现了局域网设备无需安装任何代理工具就能实现科学上网的需求。 其实“透明网关”和“旁路由”类似,都是非标准术语,只是社区上都这么叫。只是一般我们讲透明网关强调的是数据转发、拦截的功能,而旁路由可能还有 DHCP、NAT 等功能,旁路由安装了 OpenClash 之类的插件也能实现透明网关的功能。 讲一下为啥不用 OpenClash 来做代理实现同样的功能,因为 OpenClash 设置太复杂了,并且我这边使用的效果会影响局域网内其他设备的网络访问,造成整个局域网都很慢,感觉有很多 BUG。并且 OpenWrt 的资源占用也不低,单纯为了实现透明网关的数据代理不如只用一个轻量的 Linux 系统 + Clash/Mihomo 核心来实现。 1. Clash 端开启 TUN Mode 1.1 使用 Clash(不推荐) 安装 Clash permium 版本: 注意:开源的普通版本不支持 TUN Mode,无法搭建透明网关 Clash 2022 年 3 月的更新在 TUN Mode 的配置中加入了 auto-route 与 auto-detect-interface 两项配置,极大的方便了 Linux 设备开启 TUN 模式,不需要再额外设置 iptables 与 tproxy。 首先在 Clash 配置文件中写入 DNS 与 TUN 配置: dns: enable: true listen: 0.0.0.0:53 enhanced-mode: fake-ip nameserver: - 114.114.114.114 - 223.5.5.5 - 8.8.8.8 tun: enable: true stack: system dns-hijack: - any:53 - tcp://any:53 auto-route: true auto-detect-interface: true 此时再执行 Clash 服务时就已经开启了 TUN Mode。 ...

April 21, 2026 · Yancey

修复WPS Office的Fcitx5输入法问题 - 星外之神的博客 wszqkzqk Blog

原文链接:https://wszqkzqk.github.io/2024/03/09/WPS-Fcitx5/ 摘要:天下难事,必作于易;天下大事,必作于细 前言 以前,Fcitx5一般会要求用户在 /etc/environment 中添加有关环境变量的配置,例如: XMODIFIERS=@im=fcitx GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx SDL_IM_MODULE=fcitx GLFW_IM_MODULE=ibus 然而,在Wayland合成器中,如果存在这些环境变量,可能会遇到Fcitx5闪烁的情况,可能会影响用户体验。 Fcitx5在KDE Wayland下建议通过 系统设置->键盘->虚拟键盘 来选择Fcitx5输入法。由于KDE Plasma支持1-3版的Wayland输入法协议,因此,仅建议在环境变量中添加: XMODIFIERS=@im=fcitx 其他环境变量不需要添加。 然而,WPS Office静态链接了Qt5,不受系统的Qt库控制,由于某种原因不能应用这样选择的输入法,导致无法输入中文。 解决方法 由于在以前添加了环境变量的时候,WPS Office是可以正常输入中文的,因此,只要我们单独给WPS Office添加环境变量,就可以解决这个问题。 单独给WPS Office添加环境变量可以由很多方式实现,比如说编辑WPS Office的启动脚本、使用额外启动脚本替代WPS Office的启动脚本、编辑WPS Office的.desktop 文件等等。然而,这些方法会在WPS Office的每次更新后失效。 笔者选择了将WPS Office的.desktop 文件复制到 ~/.local/share/applications 目录下。 cp /usr/share/applications/wps-office*.desktop ~/.local/share/applications/ 然后编辑该文件的启动命令,实现单独给WPS Office添加环境变量。在原有的文件中,找到 Exec= 一行,形如: Exec=/usr/bin/wps %F 为了单独给WPS Office添加环境变量,我们可以将其修改为: Exec=env XMODIFIERS="@im=fcitx" GTK_IM_MODULE="fcitx" QT_IM_MODULE="fcitx" SDL_IM_MODULE=fcitx GLFW_IM_MODULE=ibus /usr/bin/wps %F 这里,我们使用 env 命令来临时添加环境变量,这样,我们就可以在不修改WPS Office的启动脚本的情况下,实现单独给WPS Office添加环境变量。 然后,刷新菜单缓存: update-desktop-database ~/.local/share/applications/ 这样,我们就可以在KDE Wayland的建议配置下正常使用WPS Office的输入法了。 通用配置 对于静态链接Qt等基础库且较老、未适配Wayland输入法协议的专有软件,可以在启动脚本中加入由 7Ji和devome想到的一个通用Hack : case "${XMODIFIERS}" in *@im=fcitx*) export QT_IM_MODULE fcitx export GTK_IM_MODULE fcitx ;; *@im=ibus*) export QT_IM_MODULE ibus export GTK_IM_MODULE ibus export IBUS_USE_PORTAL 1 ;; esac 这个Hack假设了Wayland用户会设置 XMODIFIERS 这一环境变量,然后根据 XMODIFIERS 的值来设置 QT_IM_MODULE 和 GTK_IM_MODULE 。这样可以实现既使用Wayland的推荐设置,又能让这些旧软件正常使用输入法。 ...

April 21, 2026 · Yancey

磊科N60 Pro备份及刷官方OpenWrt教程-OPENWRT专版

N60 Pro在N60基础上内存升级为DDR4 512M,新增一个USB3.0接口,网口升级为22.5G+31G。 对于有千兆以上大水管,同时需要通过USB连接设备的用户,是一步到位的性价比之选。 磊科官方固件开放SSH,因此对于刷机非常友好。 视频教程: 【磊科N60 Pro刷官方OpenWrt教程】 https://www.bilibili.com/video/BV1nKQLY1Ev1 刷机所需文件及软件链接: 游客,如果您要查看本帖隐藏内容请 回复 1. 官方固件各分区备份教程 需要工具:winscp ssh登录官方固件 ssh useradmin@leike.cc复制代码密码是路由器管理密码。 备份Factory,BL2,u-boot,u-boot-env分区。 Factory分区请务必备份,每台机器都不一样。 dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin复制代码使用WinSCP把保存在路由器/tmp目录的文件传到电脑上 备份官方固件分区。 dd if=/dev/mtd5 of=/tmp/mtd5_ubi.bin复制代码同样使用WinSCP把备份的文件传到电脑上 备份完整Flash(编程器固件) dd if=/dev/mtd5 of=/tmp/mtd5_ubi.bin复制代码2. 刷写u-boot 需要工具:winscp 需要文件:u-boot文件 本帖中用到的u-boot仅支持官方OpenWrt,如您不打算使用官方OpenWrt请不要刷入!!! 使用winscp上传u-boot文件到路由器/tmp目录,输入下面命令写入新的u-boot: mtd write /tmp/u-boot.bin FIP复制代码上面命令执行结束前,确保不要断电,否则你会收到一块砖!!! 输入下面命令擦除官方固件并重启: mtd erase /dev/mtd5 reboot复制代码3. 刷写官方OpenWrt 需要工具:tftpd64.exe 需要文件:initramfs.bin 官方OpenWrt文件 第2步重启后,会自动进入u-boot,下面步骤请使用网线连接路由器lan口。 电脑网线连接到路由器lan口后,设置网卡为静态IP: IP地址:192.168.1.254 子网掩码:255.255.255.0打开tftpd64.exe,打开保存initramfs.bin的文件夹,选择连接路由器的网卡,会自动上传initramfs.bin上传完成后,路由器会自动重启,不要断电,将网卡重新恢复到DHCP模式,稍等片刻。待网卡获取到IP地址后,打开浏览器地址栏输入openwrt复制代码即可进入路由器管理页面,在系统升级页面选择官方openwrt升级文件,上传重启后就刷完了。

April 21, 2026 · Yancey

群辉 synology acme ssl证书配置 - 萌牛小站

原文链接:https://www.moeox.com/282.html 配置步骤1: sudo -i -----登录root cd ~ wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz tar xvf master.tar.gz cd acme.sh-master/ ./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "邮箱地址" ####dnspod export DP_Id="id" -----dnspod export DP_Key="key" -----dnspod ######腾讯云 任选其一 export Tencent_SecretId="xxx" ---腾讯云api export Tencent_SecretKey="xxx" ----腾讯云api export CERT_DOMAIN="域名.com" cd /usr/local/share/acme.sh/ ###dnspod ./acme.sh --issue --server letsencrypt --home . -d "$CERT_DOMAIN" -d *.域名.com --dns dns_dp ####腾讯云 ./acme.sh --issue --server letsencrypt --home . -d "$CERT_DOMAIN" -d *.域名.com --dns dns_tencent ---------导入证书至dsm cd /usr/local/share/acme.sh export SYNO_Username='群辉管理员用户名' export SYNO_Password='密码' export SYNO_Hostname="群辉ip" export SYNO_Scheme="https" ------可选 export SYNO_Port="5001" ------可选 export SYNO_Certificate="default" export SYNO_Create=1 ---------第一次安装证书需要加入这个 export CERT_DOMAIN="域名.com" --------必须填入 不然会报错 export SYNO_DID='cookies' -----------------如果开启了otp两步验证 需要登录网页 然后登录 otp那里选择记住电脑保持登录 下次不用输入otp 登录进页面后 chrome里看cookies里的did值 输入这里 ./acme.sh --insecure --deploy --home . -d "$CERT_DOMAIN" --deploy-hook synology_dsm Bash ...

April 21, 2026 · Yancey

通过ACME让群晖(Synology)自动申请部署Let's Encrypt的SSL证书

在数字安全日益重要的今天 为您的网络存储器(NAS)配置 HTTPS 证书是保护数据传输的关键一步。Synology NAS 用户可以通过 Let's Encrypt 免费获得 SSL 证书,但是默认的方法需要开放网络端口,这可能不是每个人都愿意做的。幸运的是,有一种替代方案:使用 DNS-01 验证和 acme.sh 脚本。这篇文章将指导您如何使用 acme.sh 为您的 Synology NAS 设置 HTTPS 证书,而无需开放额外的网络端口。 现有的一些介绍群晖配置免费Let's Encrypt证书的方法,要么是表达不清,要么是需要一些技术功底,对小白并不友好。M学院对官方文档重新整理一下,并且亲测有效,这是目前位置我们认为最好的方案也是唯一全部成功的方案。 准备工作 在开始之前,确保您有以下条件: 拥有一个域名,并且可以控制其 DNS 记录。 对您的 Synology NAS 有管理员权限。 SSH 访问权限。 安装 acme.sh 首先,您需要在您的设备上安装 acme.sh。通过 SSH 登录到您的 NAS 并执行以下命令: Bash 复制 sudo su cd ~ wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz tar xvf master.tar.gz cd acme.sh-master/ ./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "email@gmail.com" source ~/.profile 配置 DNS 以 Cloudflare 为例,您需要设置两个环境变量,以便 acme.sh 能够设置 DNS 记录。如果您使用的是其他 DNS 提供商,查阅 acme.sh 的 DNS API 文档来找到正确的设置方法。 ...

April 21, 2026 · Yancey

【代理新姿势】科学上网最新AnyTLS协议快速上手,收集了两年的各代理协议反馈分享,reality依旧稳如老狗! - 科学上网 技术分享

原文链接:https://bulianglin.com/archives/anytls.html 摘要:视频教程youtube播放地址:https://youtu.be/yUJ--0eUs_oGIA高速VPS推荐: https://d.m123.org家宽住宅VPS推荐: https://v.m1... 首页 正文 视频教程 youtube播放地址: https://youtu.be/yUJ--0eUs_o GIA高速VPS推荐: https://d.m123.org 家宽住宅VPS推荐: https://v.m123.org 自用专线机场推荐: https://b.m123.org AnyTLS https://github.com/anytls/anytls-go 一个试图缓解 嵌套的TLS握手指纹(TLS in TLS) 问题的代理协议。 anytls-go 是该协议的参考实现。 灵活的分包和填充策略 连接复用,降低代理延迟 简洁的配置 支持AnyTLS协议的代理工具 sing-box https://github.com/SagerNet/sing-box 包含 anytls 协议的服务器和客户端 mihomo https://github.com/MetaCubeX/mihomo 包含 anytls 协议的服务器和客户端 Shadowrocket https://apps.apple.com/app/shadowrocket/id932747118 Shadowrocket 2.2.65+ 实现了 anytls 协议的客户端 NekoBox For Android https://github.com/MatsuriDayo/NekoBoxForAndroid/releases NekoBox For Android 1.3.8+ 实现了 anytls 协议的客户端 搭建方式 通过anytls-go 服务端 ./anytls-server -l 0.0.0.0:8443 -p 密码 #后台运行 nohup ./anytls-server -l 0.0.0.0:8443 -p 密码 > /dev/null 2>&1 & #结束进程 pkill -f anytls-server Shell ...

April 21, 2026 · Yancey

Converting GL.iNet MT3000 (Beryl AX) from CN to Global - Hardware Questions and Recommendations

原文链接:https://forum.openwrt.org/t/converting-gl-inet-mt3000-beryl-ax-from-cn-to-global/165159/4 摘要:Hi, I recently purchased a MT3000 (Beryl AX) from Taobao, and realized the VPN and Adguard features were unavailable due to the router having CN version. According to the instructions shared in their forum for the MT2500… Converting GL.iNet MT3000 (Beryl AX) from CN to Global Hardware Questions and Recommendations kentnek Hi, I recently purchased a MT3000 (Beryl AX) from Taobao, and realized the VPN and Adguard features were unavailable due to the router having CN version. According to the instructions shared in their forum for the MT2500 (before it got deleted by admin), I can change the CN flag to US in the bootloader located in /dev/mmcblk0boot1. ...

April 21, 2026 · Yancey

gl-country-switcherunlocker.sh at main · mrgenius45gl-country-switcher · GitHub

原文链接:https://github.com/mrgenius45/gl-country-switcher/blob/main/unlocker.sh Skip to content

April 21, 2026 · Yancey