ThinkPHP项目在Ubuntu上的部署流程如下:
-
安装基础环境
- 更新系统:
sudo apt update && sudo apt upgrade -y - 安装PHP及扩展:
sudo apt install php php-fpm php-mysql php-mbstring php-xml php-curl - 安装Web服务器(Nginx/Apache):
- Nginx:
sudo apt install nginx - Apache:
sudo apt install apache2,并启用mod_rewrite模块:sudo a2enmod rewrite
- Nginx:
- 安装Composer:
curl -sS https://getcomposer.org/installer | php,移动到全局路径:sudo mv composer.phar /usr/local/bin/composer
- 更新系统:
-
部署项目文件
- 下载项目(手动或通过Composer):
- 手动下载:
wget或scp项目压缩包,解压至指定目录(如/var/www/html/thinkphp)。 - Composer创建:
composer create-project topthink/think 项目名。
- 手动下载:
- 设置目录权限:
sudo chown -R www-data:www-data /var/www/html/thinkphp,sudo chmod -R 755 /var/www/html/thinkphp。
- 下载项目(手动或通过Composer):
-
配置Web服务器
- Nginx:
- 创建配置文件:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/thinkphp。 - 编辑配置,添加以下内容:
server { listen 80; server_name your_domain_or_ip; root /var/www/html/thinkphp/public; index index.php index.html; 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; } } - 启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/thinkphp /etc/nginx/sites-enabled/,sudo systemctl restart nginx。
- 创建配置文件:
- Apache:
- 创建虚拟主机配置文件:
sudo vi /etc/apache2/sites-available/thinkphp.conf,内容参考Nginx或官方文档。 - 启用配置并重启Apache:
sudo a2ensite thinkphp.conf,sudo systemctl restart apache2。
- 创建虚拟主机配置文件:
- Nginx:
-
配置数据库
- 登录MySQL:
sudo mysql -u root -p,创建数据库及用户:CREATE DATABASE thinkphp_db; CREATE USER 'thinkphp_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON thinkphp_db.* TO 'thinkphp_user'@'localhost'; FLUSH PRIVILEGES; - 修改项目配置文件
application/database.php,填入数据库连接信息。
- 登录MySQL:
-
测试部署
- 访问
http://your_domain_or_ip,若显示ThinkPHP欢迎页面则部署成功。 - 常见问题:
- 502 Bad Gateway:检查PHP-FPM是否运行,确认Nginx的
fastcgi_pass路径正确。 - 路由失效:确保Nginx配置中包含
try_files规则,且服务器支持PATHINFO。
- 502 Bad Gateway:检查PHP-FPM是否运行,确认Nginx的
- 访问
参考来源: