在Ubuntu上部署ThinkPHP分布式系统,其实并没有想象中那么复杂,只要掌握关键步骤就能顺利完成。整体流程包括:安装PHP运行环境、配置Web服务器、上传项目文件,最后设置缓存和队列等分布式组件。下面我们逐步讲解,确保清晰易懂。

1. 安装PHP运行环境
安装PHP是第一步,同时建议将常用扩展一并安装。执行以下命令即可(Ubuntu官方源已包含):
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
特别提醒:php-fpm必须安装,后续Nginx需要它来处理PHP请求。
2. 安装Nginx或Apache服务器
选择哪个?均可。ThinkPHP兼容两种服务器,此处以Nginx为例,因为高并发环境下其稳定性更出色。
sudo apt install nginx
3. 配置Nginx服务器
安装完成后,需配置Nginx处理请求。编辑默认站点的配置文件(路径为/etc/nginx/sites-a vailable/default),粘贴以下内容,并替换域名和项目路径:
server {
listen 80;
server_name your_domain.com;
root /path/to/your/thinkphp/project;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
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;
include fastcgi_params;
}
}
接下来启用配置并检查语法:
sudo ln -s /etc/nginx/sites-a vailable/default /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
4. 部署ThinkPHP项目文件
将ThinkPHP项目代码上传至服务器指定目录,例如/var/www/thinkphp_project。务必确保目录权限正确,且runtime目录可写,否则项目无法正常运行。
5. 配置分布式系统支持
接下来是关键环节。ThinkPHP支持主从复制、负载均衡、缓存共享等多种分布式方案。这里演示最常用的一种:使用Redis实现分布式缓存和队列。
安装Redis
sudo apt install redis-server
配置ThinkPHP连接Redis
打开项目配置文件config/app.php,添加Redis连接配置:
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
'password' => '', // 没有密码就留空
'select' => 0,
'timeout' => 0,
'persistent_id' => '',
'prefix' => '',
],
配置队列驱动
接着在config/queue.php中,将队列驱动指向Redis:
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
'block_for' => null,
],
],
完成上述配置后,多个应用节点即可共享Redis中的缓存数据和任务队列。
6. 启动分布式服务节点
若使用多节点集群,每个节点需启动独立的PHP-FPM实例并监听不同的socket。编辑/etc/php/7.4/fpm/pool.d/www.conf(根据实际PHP版本),复制一份pool配置并修改listen地址:
listen = /run/php/php7.4-fpm1.sock
listen = /run/php/php7.4-fpm2.sock
修改后重启PHP-FPM:
sudo systemctl restart php7.4-fpm
7. 测试部署结果
在浏览器中访问你的域名或服务器IP。如果看到ThinkPHP的欢迎页面或自定义应用界面,说明部署成功。生产环境中还需考虑安全性、日志切割、自动重启等细节,但核心架构已搭建完成。
总的来说,在Ubuntu上部署ThinkPHP分布式系统并不困难,关键在于理解每个步骤的目的:安装环境、配置服务器、连接Redis、启动多实例。按照本流程操作一遍,你会发现分布式部署其实触手可及。
