在 Ubuntu 上使用 ThinkPHP 进行开发
一 环境准备
- 更新系统并安装 PHP 及常用扩展(按你的 PHP 版本调整,示例为 PHP 7.4;如使用 PHP 8.x,将版本号替换为 8.0/8.1/8.2/8.3):
- sudo apt update
- sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
- 安装 Nginx(或 Apache,二选一;以下以 Nginx 为例):
- sudo apt install nginx
- sudo systemctl start nginx && sudo systemctl enable nginx
- 安装 Composer(PHP 依赖管理工具):
- curl -sS https://getcomposer.org/installer | php
- sudo mv composer.phar /usr/local/bin/composer
- 可选:如使用 Apache,需启用 mod_rewrite 模块。
二 创建项目
- 方式一(推荐)使用 Composer 创建项目:
- 进入站点目录:cd /var/www/html
- 创建项目:composer create-project topthink tp
- 方式二 全局安装 ThinkPHP 并使用 think 命令创建项目:
- 全局安装:composer global require topthink
- 将 Composer 全局 bin 加入 PATH(写入 ~/.bashrc 或 ~/.zshrc):export PATH=“$HOME/.composer/vendor/bin:$PATH”
- 创建项目:think new my_project
- 说明:ThinkPHP 6 的入口在 public/ 目录,部署或访问时应指向该目录。
三 配置与运行
- 数据库配置:在项目根目录编辑 .env,设置数据库连接(示例为 MySQL):
- DB_TYPE=mysql
- DB_HOST=127.0.0.1
- DB_NAME=your_database_name
- DB_USER=your_database_user
- DB_PASSWORD=your_database_password
- DB_PORT=3306
- DB_PREFIX=
- 开发服务器(快速本地开发):
- cd tp
- php think run(默认监听 http://127.0.0.1:8000)
- Nginx 配置要点(将站点根目录指向 public,并支持 PATHINFO):
- 示例 server 配置:
- server {
- listen 80;
- server_name your_domain_or_ip;
- root /var/www/html/tp/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; # 按实际 PHP 版本调整
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- }
- 启用站点并重启服务:
- sudo ln -s /etc/nginx/sites-availablephp_project /etc/nginx/sites-enabled/
- sudo nginx -t && sudo systemctl restart nginx
- Apache 配置要点(启用 mod_rewrite,DocumentRoot 指向 public):
- DocumentRoot /var/www/html/your_project/public
- 在 public 或项目根目录放置 .htaccess 以启用重写(示例规则见文末“常见问题”)。
四 常见问题与优化
- 502 Bad Gateway:检查 PHP-FPM 是否运行(systemctl status php*-fpm),并确认 Nginx 中 fastcgi_pass 的 .sock 路径与 PHP 版本一致(如 php7.4-fpm.sock/php8.1-fpm.sock)。
- 路由 404 或白屏:确保 Nginx 包含 try_files $uri $uri/ /index.php?$query_string;,且站点根目录为 public。
- Composer 安装慢:使用国内镜像加速
- composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
- 目录权限:确保 runtime 可写
- chmod -R 755 runtime
- chown -R www-data:www-data /var/www/html/tp
- 安全与性能(生产环境建议):
- 关闭调试:在 config/app.php 设置 ‘app_debug’ => false
- 禁止访问 .env:location ~ /.env { deny all; }
- 开启 OPcache、使用 Redis 会话/缓存。
五 快速验证
- 访问地址:
- 内置服务器:打开 http://127.0.0.1:8000
- Nginx/Apache:打开 http://your_domain_or_ip
- 看到 ThinkPHP 欢迎页或默认页面即表示环境搭建成功。