云服务器搭建 ThinkPHP 站点
本文介绍了在云服务器上部署 ThinkPHP 网站的完整流程,包括环境准备(Linux 系统、Nginx/Apache、PHP 7.4+、MySQL)、ThinkPHP 项目上传与目录配置、Nginx 反向代理与伪静态规则设置(重点处理 public 目录和 PATH_INFO 路由)、数据库连接配置及常见权限与路径问题排查,强调安全加固(如禁止访问 runtime 和 config 目录)与生产环境优化建议。
在数字化项目落地中,如何高效、稳定地将 ThinkPHP 应用上线至生产环境,是开发者常面临的实际课题,本文以主流云服务商(如阿里云、腾讯云)的 CentOS 7/8 或 Ubuntu 22.04 为例,提供一套精简、可复现、无冗余的部署流程——全程无需宝塔面板,直击核心步骤,助你 30 分钟内完成一个安全可用的 ThinkPHP 8.x 站点上线。
基础准备:选型与连接
选用轻量应用服务器(LAMP/LEMP 均可,本文以 Nginx + PHP-FPM + MySQL 组合为例),确保实例已开放 80(HTTP)、443(HTTPS)及 22(SSH)端口,通过 SSH 登录后,先更新系统:
sudo apt update && sudo apt upgrade -y # Ubuntu # 或 sudo yum update -y # CentOS
环境安装:极简但完整
安装 Nginx、MySQL 和 PHP 8.1+(ThinkPHP 8 要求 PHP ≥ 8.0):
# Ubuntu 示例(使用ondrej PPA) sudo apt install nginx mysql-server php8.1-fpm php8.1-mysql php8.1-curl php8.1-xml php8.1-mbstring php8.1-zip php8.1-opcache -y
启动并设为开机自启:
sudo systemctl enable nginx php8.1-fpm mysql sudo systemctl start nginx php8.1-fpm mysql
配置 ThinkPHP 运行环境
- 创建站点目录:
sudo mkdir -p /var/www/thinkphp sudo chown -R $USER:$USER /var/www/thinkphp
- 部署代码:进入目录,用 Composer 安装最新 ThinkPHP(推荐 8.0 LTS):
cd /var/www/thinkphp composer create-project topthink/think . --no-dev
- 关键安全设置:
- 将
public目录设为 Web 根目录(非项目根目录!),防止app/、config/等敏感目录被直接访问; - 修改
public/index.php中的define('APP_PATH', __DIR__ . '/../app/');确保路径正确; - 在
app/middleware.php中启用TrustHosts中间件,限制可信域名。
Nginx 配置:适配 ThinkPHP 路由
新建 /etc/nginx/sites-available/thinkphp:
server {
listen 80;
server_name your-domain.com;
root /var/www/thinkphp/public;
index index.php;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
}
location ~ \.php$ {
FastCGI_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 防止敏感目录泄露
location ~ ^/(app|config|route|runtime|vendor|\.env) { deny all; }
}
启用配置:
sudo ln -sf /etc/nginx/sites-available/thinkphp /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
数据库与权限收尾
登录 MySQL 创建数据库:
CREATE DATABASE thinkphp DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'tpuser'@'localhost' IDENTIFIED BY 'StrongPass123!'; GRANT ALL ON thinkphp.* TO 'tpuser'@'localhost'; FLUSH PRIVILEGES;
修改 .env 文件,填入数据库配置,并将 APP_DEBUG=false 关闭调试模式——这是生产环境必须项。
验证与优化
访问 http://your-domain.com,若显示 ThinkPHP 默认欢迎页,即部署成功,建议后续:
- 启用 HTTPS(用 Certbot 一键免费签发);
- 配置
runtime/目录权限:sudo chmod -R 755 runtime/; - 设置定时清理日志(如
find runtime/log -name "*.log" -mtime +7 -delete)。
整个过程不依赖图形界面、不安装冗余组件,所有命令均可复制执行,ThinkPHP 的优雅路由与云服务器的弹性资源结合,让中小项目上线既轻量又可靠——真正的「写好代码,一键上线」,始于一次干净的云上部署。
(全文共1486字)
热门产品
弹性云服务器
强悍硬件配置结合弹性云服务器采用纯SSD架构硬件设备,只需几分钟,便可轻松云端获取和启用,实现您的计算需求。
立刻选购跨境云服务器
助力出海业务快速部署我们在全球多个地域,和可用区部署云数据中心,并采用CN2网络,优化网络访问体验 瞬达全球。
立刻选购企业邮箱
让邮件畅通全球让每一封商务邮件高效送达安全稳定企业邮箱 深耕行业廿余载,业内首推外贸专属邮箱,让邮件畅通全球。
立刻选购裸金属服务器
主流服务器配置裸金属服务器 弹性伸缩的高性能计算服务 可根据客户行业和业务特点,个性化定制服务器租用方案。
立刻选购