温馨提示×

ubuntu怎么优化thinkphp

小樊
43
2026-10-10 11:46:14
栏目: 编程语言

在 Ubuntu 上“优化 ThinkPHP”通常可以从系统环境、PHP、Web 服务器、ThinkPHP 自身、缓存与数据库几个方面来做。下面按实战方式给你一套常见且有效的优化方案(以 ThinkPHP 6 / 8 为主,5.1 也基本适用)。


一、Ubuntu 系统层面优化

1. 使用合适的内核参数(高并发)

编辑 /etc/sysctl.conf:

net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

执行:

sysctl -p

2. 文件描述符限制

ulimit -n 65535

永久生效:

/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

二、PHP 优化(非常关键)

1. 安装 PHP 扩展(推荐)

sudo apt install php-fpm php-cli php-mysql php-redis php-opcache php-mbstring php-xml php-curl

2. 开启 OPcache(最重要)

编辑 php.ini(如 /etc/php/8.2/fpm/php.ini):

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0  ; 生产环境

重启:

systemctl restart php8.2-fpm

三、Web 服务器优化(Nginx 示例)

1. Nginx + PHP-FPM

location ~ \.php$ {
    fastcgi_pass   unix:/run/php/php8.2-fpm.sock;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

2. PHP-FPM 进程优化

/etc/php/8.2/fpm/pool.d/www.conf

pm = dynamic
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30

四、ThinkPHP 自身优化

1. 开启生产模式

.env

APP_DEBUG = false

2. 路由缓存(非常重要)

php think optimize:route

3. 配置缓存

php think optimize:config

4. 类库映射(老版本)

php think optimize:autoload

5. 使用缓存驱动

.env

CACHE_DRIVER = redis
SESSION_DRIVER = redis

五、缓存与数据库优化

1. 使用 Redis

sudo apt install redis-server

ThinkPHP 配置:

'cache' => [
    'default' => 'redis',
    'stores' => [
        'redis' => [
            'type' => 'redis',
            'host' => '127.0.0.1',
        ],
    ],
],

2. MySQL 优化

  • 开启慢查询日志
  • 合理加索引
  • 使用连接池(Swoole 场景)

六、进阶(可选)

1. 使用 Swoole 运行 ThinkPHP

composer require topthink/think-swoole
php think swoole start

适合 API / 高并发。

2. 静态资源分离

  • JS/CSS/图片放 CDN
  • Nginx 直接处理静态文件

七、常用检查命令

top
htop
php-fpm -t
nginx -t
redis-cli ping

如果你愿意,可以告诉我:

  • ThinkPHP 版本(5.1 / 6 / 8)
  • 是否用 Nginx / Apache
  • 是网站还是 API
  • 当前服务器配置(CPU / 内存)

我可以给你一套更精准的优化参数。

0 踩