ubuntu上如何部署thinkphp多实例
在Ubuntu上部署ThinkPHP多实例需先安装Nginx和PHP-FPM,配置PHP-FPM的socket通信,为每个实例单独创建Nginx站点配置并启用URL重写规则,部署应用后设置目录权限为www-data,最后重启服务并放行防火墙。核心在于多站点配置与PHP-FPMsocket复用。
在Ubuntu上部署ThinkPHP多实例,操作上并不复杂,但有几个关键细节需要留心。下面一步步拆解,确保你能顺利跑起来。

1. 安装Nginx和PHP-FPM
第一步,先把基础环境搭好。确认系统里已经装上了Nginx和PHP-FPM,如果没有,直接用下面两组命令搞定:
sudo apt update
sudo apt install nginx php-fpm
值得留意的是,不同Ubuntu版本默认的PHP版本可能不一样,安装时系统会自动匹配,不用担心。
2. 配置PHP-FPM
PHP-FPM的配置文件通常藏在 /etc/php/7.x/fpm/pool.d/www.conf(具体的版本号请根据你实际装的PHP版本来)。打开它,找到监听地址这一行:
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
然后把 listen 的值改成类似这样:
listen = /var/run/php/php7.x-fpm.sock
为什么强调这个?因为Nginx需要通过这个socket和PHP-FPM通信,路径不对,后面全白搭。
3. 配置Nginx
接下来是重头戏——为每个ThinkPHP实例单独创建一个Nginx站点配置。假设你打算跑两个实例,分别放在 /var/www/html/app1 和 /var/www/html/app2 目录下。
实例1配置
sudo nano /etc/nginx/sites-a vailable/app1
填入以下内容:
server {
listen 80;
server_name app1.example.com;
root /var/www/html/app1;
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.x-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
实例2配置
sudo nano /etc/nginx/sites-a vailable/app2
内容几乎一样,只需把 server_name 和 root 改成对应的域名和路径:
server {
listen 80;
server_name app2.example.com;
root /var/www/html/app2;
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.x-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
这里有个小细节:ThinkPHP的路由依赖URL重写,所以 try_files 那段是必须的,否则访问非首页会报404。
4. 启用Nginx服务器块
配置文件写好了,得让它生效。创建软链接:
sudo ln -s /etc/nginx/sites-a vailable/app1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-a vailable/app2 /etc/nginx/sites-enabled/
5. 测试并重启Nginx
千万记得先测试配置有没有语法错误:
sudo nginx -t
如果输出 syntax is ok 和 test is successful,那就放心重启:
sudo systemctl restart nginx
6. 防火墙放行HTTP流量
如果你的Ubuntu开启了UFW防火墙,得允许Nginx的HTTP访问:
sudo ufw allow 'Nginx Full'
这一步很容易被忽略,但漏掉的话外部根本访问不到站点。
7. 部署ThinkPHP应用
把两个应用的代码分别丢到 /var/www/html/app1 和 /var/www/html/app2 目录里。至于怎么上传或克隆代码,就看你的习惯——可以用scp、git,或者直接解压。
8. 设置目录权限
Nginx默认以 www-data 用户运行,所以需要把应用目录的所有权交给他:
sudo chown -R www-data:www-data /var/www/html/app1
sudo chown -R www-data:www-data /var/www/html/app2
别小看这一步,权限不对会导致页面白屏或者无法写入运行时文件(比如runtime目录)。
9. 访问验证
现在,通过浏览器分别访问 http://app1.example.com 和 http://app2.example.com,两个ThinkPHP实例应该都能正常工作了。如果域名还没解析,也可以先在本地hosts文件里把域名指向服务器IP,测试一阵再说。
整个流程走下来,核心就是Nginx多站点配置和PHP-FPM的socket复用。只要路径、权限和重写规则不出错,多实例就能稳定运行。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















