一、服务器与系统层优化
/etc/selinux/config为SELINUX=disabled)、调整系统运行级别至3(节约资源)、增加文件描述符限制(ulimit -n 65535,永久生效需修改/etc/security/limits.conf)、优化内核参数(如启用SYN Cookies、TCP连接重用,修改/etc/sysctl.conf中的net.ipv4.tcp_syncookies=1、net.ipv4.tcp_tw_reuse=1)。location / { try_files $uri $uri/ /index.php?$query_string; }(路由转发)、location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; }(PHP处理)、gzip on; gzip_types text/css application/javascript;(压缩设置)。二、PHP环境优化
php.ini中添加:[opcache] zend_extension=opcache.so; opcache.enable=1; opcache.memory_consumption=128; opcache.interned_strings_buffer=8; opcache.max_accelerated_files=4000; opcache.revalidate_freq=60(根据服务器内存调整memory_consumption,revalidate_freq控制脚本重新验证频率)。memory_limit(如256M,避免内存溢出)、max_execution_time(如30秒,防止脚本长时间运行)、upload_max_filesize(如20M,适配上传需求)。三、缓存机制优化
config/app.php):'cache' => ['type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'select' => 0](Redis缓存,需安装Redis扩展);生成路由缓存(php think optimize:route,降低路由注册开销);关闭调试模式(app_debug设为false,避免额外性能消耗)。cache()助手函数缓存(如$data = cache('data_key'); if (!$data) { $data = Db::table('table')->select(); cache('data_key', $data, 3600); },缓存1小时);对不常变化的页面(如首页)使用return cache('page_key')缓存整个页面。四、数据库层优化
id、status、create_time)添加索引,避免全表扫描。使用EXPLAIN分析SQL语句(如EXPLAIN SELECT * FROM users WHERE status = 1),确认索引是否生效。SELECT *(只查询所需字段)、减少子查询(用JOIN替代)、避免在WHERE子句中使用函数(如WHERE DATE(create_time) = '2025-10-20',会导致索引失效)。db_config配置persistent => true),减少连接建立与销毁的开销。五、代码层优化
foreach中Db::table()->find()),改用批量查询(Db::table()->whereIn('id', [1,2,3])->select());使用延迟加载(如with方法关联模型,只在需要时加载关联数据)。Db::getInstance())。gzip on;;PHP:ob_start('ob_gzhandler')),减少传输数据量(通常压缩率为50%-70%)。六、静态资源与架构优化
static.example.com指向CDN域名)。base64编码嵌入HTML)。runtime/cache目录)、日志(runtime/log目录)、临时文件(runtime/temp目录),释放服务器磁盘空间(可使用crontab设置每天凌晨清理)。七、监控与分析
top(查看CPU/内存使用率)、vmstat(查看系统级性能)、netstat(查看网络连接)等命令监控服务器状态,及时发现资源瓶颈(如CPU占用过高需扩容、内存不足需优化缓存)。