发布于2026-07-15 阅读(0)
扫一扫,手机访问
先把系统软件包更新一下,确保所有组件都是最新版本——这能减少安全漏洞,也能提升兼容性,是后续所有优化工作的基础。
sudo apt update && sudo apt upgrade -y
接下来安装Nginx和PHP-FPM——后者是管理PHP进程的核心组件,顺便把常用扩展(MySQL、GD、CURL等)也一并装上:
sudo apt install nginx php7.4-fpm php7.4-cli php7.4-mysql php7.4-gd php7.4-curl php7.4-mbstring php7.4-xml -y
这里有个小建议:如果追求更高的性能和安全性,可以使用Ondřej Surý的PPA安装较新版本的PHP(比如7.4或8.0),操作也很简单:
sudo add-apt-repository ppa:ondrej/phpsudo apt update
编辑PHP-FPM的池配置文件(位于/etc/php/7.4/fpm/pool.d/www.conf),确保Nginx用户(通常是www-data)拥有进程权限:
user = www-datagroup = www-datalisten.owner = www-datalisten.group = www-data
然后修改Nginx的站点配置(/etc/nginx/sites-a vailable/default),添加PHP处理逻辑,把.php请求转发给PHP-FPM:
location ~ .php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据PHP版本调整路径fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_read_timeout 300; # 增加超时时间,避免大请求中断}
测试Nginx配置并重启服务:
sudo nginx -t && sudo systemctl restart nginx && sudo systemctl restart php7.4-fpm
OPcache是PHP性能提升的关键工具,它能缓存编译后的字节码,减少重复解析的开销。先安装扩展:
sudo apt install php7.4-opcache -y
编辑php.ini(/etc/php/7.4/fpm/php.ini),启用并配置OPcache——以下几个参数值得重点关注:
[opcache]zend_extension=opcache.soopcache.enable=1opcache.memory_consumption=128 # 缓存大小(MB),根据服务器内存调整opcache.interned_strings_buffer=8 # 内部字符串缓存大小opcache.max_accelerated_files=10000 # 最大加速文件数opcache.revalidate_freq=60 # 文件修改检查频率(秒)opcache.fast_shutdown=1 # 快速关闭功能opcache.jit=on # 启用JIT编译(PHP 8+推荐)opcache.jit_buffer_size=128M # JIT缓冲区大小
重启PHP-FPM让配置生效:
sudo systemctl restart php7.4-fpm
还是在php.ini(/etc/php/7.4/fpm/php.ini)中,优化脚本执行的资源限制:
memory_limit = 256M # 脚本最大内存使用量(根据应用需求调整)upload_max_filesize = 50M # 上传文件最大大小post_max_size = 50M # POST请求最大大小max_execution_time = 300 # 脚本最大执行时间(秒)date.timezone = Asia/Shanghai # 设置时区(避免警告)error_reporting = E_ALL & ~E_NOTICE # 开发环境显示所有错误(生产环境建议关闭)display_errors = Off # 生产环境关闭错误显示(防止敏感信息泄露)
重启PHP-FPM应用更改:
sudo systemctl restart php7.4-fpm
编辑Nginx主配置文件(/etc/nginx/nginx.conf),调整以下参数来提升并发处理能力:
worker_processes auto; # 自动匹配CPU核心数worker_cpu_affinity auto; # 自动分配CPU亲和性(减少上下文切换)worker_rlimit_nofile 65535; # 每个worker的最大文件描述符数(与系统限制一致)events {worker_connections 4096; # 每个worker的最大连接数use epoll; # 高性能事件模型(Linux推荐)multi_accept on; # 一次性接受多个连接}http {sendfile on; # 启用sendfile(减少数据拷贝)tcp_nopush on; # 与sendfile配合,优化数据包发送tcp_nodelay on; # 禁用Nagle算法(提升实时性)keepalive_timeout 65; # 保持连接时间(秒)keepalive_requests 100000; # 单个连接最大请求数gzip on; # 启用Gzip压缩(减少传输体积)gzip_comp_level 6; # 压缩级别(1-9,6为平衡点)gzip_types text/plain text/css application/json application/ja vascript text/xml application/xml application/xml+rss text/ja vascript;}
测试Nginx配置并重启:
sudo nginx -t && sudo systemctl restart nginx
调整Linux系统参数,提升网络与文件处理性能:
# 增加文件描述符限制(临时生效)sudo ulimit -n 65535# 永久生效:编辑/etc/security/limits.conf,添加以下内容* soft nofile 65535* hard nofile 65535# 优化网络参数(/etc/sysctl.conf)sudo sysctl -w net.core.somaxconn=65535sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535"sudo sysctl -w net.ipv4.tcp_fin_timeout=30sudo sysctl -w net.ipv4.tcp_fastopen=3sudo sysctl -p # 应用更改
最后,使用工具监控PHP与服务器性能,及时发现瓶颈:
stub_status模块,查看请求处理情况;www.conf中启用pm.status_path = /status,通过Nginx访问/status页面查看进程状态;/var/log/nginx/error.log与/var/log/php7.4-fpm.log,排查错误与异常。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8