ubuntu中thinkphp部署流程是怎样的
Ubuntu下部署ThinkPHP的标准流程

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
在Linux环境下部署ThinkPHP,尤其是搭配Ubuntu,可以说是许多PHP开发者绕不开的“标准动作”。这套组合以稳定高效著称,但要让一切顺畅跑起来,遵循清晰的路径至关重要。下面,就让我们一起梳理一下从零开始的标准部署流程。
一 环境准备
万事开头先筑基。部署的第一步,自然是准备好一个“结实”的运行环境。
- 更新系统并安装基础组件(以 Ubuntu 20.04/22.04 为例,PHP 建议 7.4+):
- 打开终端,一条命令搞定基础包安装:
sudo apt update && sudo apt install -y php php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-gd nginx mysql-server composer
- 打开终端,一条命令搞定基础包安装:
- 安装完成后核对版本与扩展:
- 运行
php -v确认PHP版本。别忘了,ThinkPHP依赖的一些核心扩展,比如PDO、OpenSSL、MBstring等,也需要确保已安装并启用。
- 运行
- 说明:ThinkPHP在Linux系统上运行非常稳定,最常见的Web服务器搭配是Nginx + PHP-FPM,当然,使用Apache也完全没问题。
二 获取与放置项目代码
环境就绪,接下来就是把项目代码“请”到服务器上。这里通常有两种场景。
- 方式一(全新项目):使用 Composer 创建
- 直接使用Composer的create-project命令,可以快速搭建一个全新的ThinkPHP项目骨架:
composer create-project topthink tp6。这里的“tp6”是项目目录名,你可以按需替换成自己的项目名称。
- 直接使用Composer的create-project命令,可以快速搭建一个全新的ThinkPHP项目骨架:
- 方式二(已有项目):上传或克隆到服务器目录(如 /var/www/html/your_project)
- 如果是已有项目,可以通过Git克隆或直接上传到服务器指定目录,例如
/var/www/html/your_project。进入项目根目录后,别忘记运行composer install来安装所有依赖包。
- 如果是已有项目,可以通过Git克隆或直接上传到服务器指定目录,例如
- 目录规范:这里有个关键点——ThinkPHP框架的对外入口是
public目录。因此,后续配置Web服务器时,根目录(Document Root)必须指向项目的这个public子目录。
三 Web服务器配置
代码到位,现在需要为它打开一扇“门”,这就是Web服务器的配置工作。我们分别看看Nginx和Apache的配置要点。
- Nginx 配置要点(站点配置文件通常放在
/etc/nginx/sites-a vailable/下):- 核心配置示例:
- root 指向:
root /var/www/html/your_project/public; - 路由重写:为了让框架的路由系统生效,需要添加规则:
location / { try_files $uri $uri/ /index.php?$query_string; } - PHP 处理:配置PHP-FPM的转发,例如:
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
- root 指向:
- 启用站点与检查:
- 创建软链接启用配置:
sudo ln -s /etc/nginx/sites-a vailable/your_project /etc/nginx/sites-enabled/ - 测试配置语法:
sudo nginx -t - 重启Nginx使配置生效:
sudo systemctl restart nginx
- 创建软链接启用配置:
- 核心配置示例:
- Apache 配置要点(确保启用 mod_rewrite):
- 在虚拟主机配置中,将
DocumentRoot同样设置为项目的public目录。 - 为了让路由重写生效,需要确保项目根目录下存在有效的
.htaccess文件(ThinkPHP通常已自带),并且Apache的mod_rewrite模块已启用。 - 启用模块并重启服务:
sudo a2enmod rewrite;sudo systemctl restart apache2。
- 在虚拟主机配置中,将
四 框架与数据库配置
服务器通了,现在轮到框架自身和数据库的“对暗号”环节。
- 数据库配置:
- 推荐使用
.env文件来管理数据库连接配置,这样更安全、更灵活。示例配置如下:DB_TYPE=mysql;DB_HOST=127.0.0.1;DB_NAME=your_db;DB_USER=your_user;DB_PASSWORD=your_pass;DB_PORT=3306
- 如果是旧版本项目或未采用
.env,则需要在application/database.php这类配置文件中进行相应设置。
- 推荐使用
- 目录权限与运行用户:
- 框架需要写入缓存和日志,因此务必确保
runtime目录有写权限。可以执行:chmod -R 755 runtime;同时,将项目目录的所有者改为Web服务运行用户(如www-data):chown -R www-data:www-data /var/www/html/your_project。
- 框架需要写入缓存和日志,因此务必确保
- 调试模式:
- 在本地开发时开启调试模式很方便,但生产环境务必记得关闭它。找到
config/app.php文件,将‘app_debug’的值设置为false。
- 在本地开发时开启调试模式很方便,但生产环境务必记得关闭它。找到
五 启动、验证与常见问题
配置全部完成,是时候点亮服务,看看成果了。当然,我们也得知道万一出问题该往哪儿看。
- 启动与验证:
- 重启相关服务:
sudo systemctl restart nginx(或 apache2);同时确认PHP-FPM状态:sudo systemctl status php7.4-fpm。 - 访问测试:打开浏览器,访问你的服务器域名或IP地址(例如
https://your_domain_or_ip)。如果一切顺利,你应该能看到ThinkPHP的默认欢迎页面或者你的项目首页。
- 重启相关服务:
- 常见问题快速排查:
- 502 Bad Gateway:这通常是Nginx与PHP-FPM“通信失败”。检查PHP-FPM服务是否在运行,并确认Nginx配置中
fastcgi_pass指向的套接字路径(如/run/php/php7.4-fpm.sock)与实际一致。 - 路由失效/404:访问页面出现404?首先检查Nginx配置是否包含了
try_files重写规则;如果用的是Apache,则确认mod_rewrite已启用且.htaccess文件已生效。 - 日志定位:当遇到不明错误时,日志是最好的帮手。多关注
/var/log/nginx/error.log和PHP-FPM的错误日志,它们能提供最直接的错误线索。
- 502 Bad Gateway:这通常是Nginx与PHP-FPM“通信失败”。检查PHP-FPM服务是否在运行,并确认Nginx配置中
相关攻略
Ubuntu下Node js日志管理实践 一 核心原则与总体架构 想把Node js应用的日志管好,其实离不开几个核心原则。首先,结构化日志是基础。别再输出一堆难以解析的纯文本了,优先选择Winston、Pino、Bunyan这类成熟的日志库。它们不仅能帮你轻松控制日志级别(比如error、warn
Ubuntu 环境下 JS 日志错误码分析指南 一、先明确错误码来源 面对日志里冒出来的错误码,第一步不是埋头苦查,而是得先搞清楚它到底是从哪儿来的。不同的来源,分析路径截然不同。通常,在Ubuntu环境下进行JS开发或运维,遇到的错误码主要来自以下几个地方: Ja vaScript 运行时错误:比
Ubuntu环境下 JS 日志相关的性能瓶颈与排查要点 在Ubuntu上部署Node js应用,日志系统要是没打理好,分分钟就能从“服务助手”变成“性能杀手”。今天咱们就来盘一盘,那些藏在日志里的典型性能瓶颈,以及如何精准地揪出它们。 一 常见瓶颈概览 先来个全景扫描。日志引发的性能问题,通常逃不出
Ubuntu上监控Ja va日志的实用方案 面对Ubuntu服务器上运行的Ja va应用,如何高效地监控其日志,是每个运维和开发人员都会遇到的课题。下面这套从基础到进阶的实用方案,或许能给你带来清晰的思路。 一 快速上手 命令行与systemd 先说几个核心判断:对于绝大多数场景,最直接有效的排查工
Ubuntu Ja va日志解析与排查实操指南 一 定位日志来源与类型 排查问题的第一步,往往是找到对的日志。Ja va应用在Ubuntu系统上产生的日志,大致可以分为这么几类: 应用日志:这是最直接的线索,由Log4j、Logback或ja va util logging等框架生成。它们通常躺在
热门专题
热门推荐
红色沙漠星之塔怎么进入 好消息是,星之塔的进入方式非常直接,它会在主线流程中自动解锁,你完全不需要提前满世界探索或者寻找隐藏入口。 当你跟随主线指引,到达星之塔所在的那片区域后,抬头就能看到它矗立在山顶。接下来要做的很简单:沿着图中这条醒目的红色路线所示的楼梯,一路向上攀登,就能直达山顶的星之塔正门
《王者荣耀世界》即将正式与玩家见面 备受期待的开放世界RPG手游《王者荣耀世界》,已经进入了上线前的最后阶段。官方释放的大量前瞻信息中,地图设计与剧情体验无疑是两大核心亮点。而作为游戏首赛季(S1)的重头戏,全新区域“姑射山”的登场,显然不仅仅是添一张新地图那么简单。它被深度植入了原创剧情,旨在为玩
红色沙漠动力核心怎么获得 想拿到动力核心,目标很明确:找到那些固定刷新的阿比斯守卫。它们常在一些特定地点徘徊,比如坍塌城门区域的悬崖边上,就是不错的狩猎场。 找到目标后先别急着动手,这里有个关键步骤能省下大量时间:在开打前,务必手动保存一下游戏。这相当于给自己买了一份“保险”,万一守卫没掉你想要的东
《王者荣耀世界》已正式官宣将于2026年4月上线 千呼万唤始出来,腾讯天美工作室的开放世界MMOARPG《王者荣耀世界》,终于敲定了2026年4月的上线日期。消息一出,玩家社区的讨论热度再次被点燃。在众多引人注目的首发角色里,“元流之子”以其鲜明的定位和独特的技能设计,成为焦点中的焦点。最近,不少玩
《王者荣耀世界》英雄获取全指南:三种核心方式,快速组建强力阵容 在《王者荣耀世界》的开放世界中开启冒险之旅,作为“元流之子”的你,最令人期待的体验莫过于招募那些熟悉与全新的英雄伙伴。无论是伽罗、东方曜等经典角色,还是“冷春”这样的原创人物,他们的独特故事与强大技能,共同构成了这个东方幻想世界的核心吸





