温馨提示×

ThinkPHP Linux环境如何配置

小樊
49
2025-08-25 15:21:45
栏目: 编程语言

以下是Linux环境下配置ThinkPHP的步骤:

1. 安装基础环境

  • 更新系统
    sudo apt update && sudo apt upgrade -y # Ubuntu/Debian  sudo yum update -y # CentOS/RHEL  
  • 安装PHP及扩展
    # Ubuntu/Debian  sudo apt install php php-fpm php-mysql php-mbstring php-xml php-curl -y # CentOS/RHEL  sudo yum install php php-fpm php-mysqlnd php-mbstring php-curl php-xml -y 
  • 安装Web服务器
    • Nginx
      sudo apt install nginx # Ubuntu/Debian  sudo yum install nginx # CentOS/RHEL  
    • Apache(可选):
      sudo apt install apache2 # Ubuntu/Debian  sudo yum install httpd # CentOS/RHEL  

2. 安装Composer

curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer 

3. 部署ThinkPHP项目

  • 使用Composer创建项目(推荐)
    composer create-project topthink/think tp6 # 替换为项目目录名  
  • 或手动下载
    解压项目至Web根目录(如/var/www/html/tp6),确保public目录可访问。

4. 配置Web服务器

  • Nginx配置
    编辑/etc/nginx/sites-available/tp6(新建文件),添加:
    server { listen 80; server_name yourdomain.com; root /var/www/html/tp6/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.x-fpm.sock; # 根据PHP版本调整  } } 
    启用配置并重启Nginx:
    sudo ln -s /etc/nginx/sites-available/tp6 /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl restart nginx 
  • Apache配置
    启用mod_rewrite模块:
    sudo a2enmod rewrite sudo service apache2 restart 
    在项目根目录创建.htaccess文件,内容参考。

5. 配置数据库

修改项目根目录.env文件:

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_db_name DB_USERNAME=your_db_user DB_PASSWORD=your_db_password 

6. 设置权限与运行

  • 设置目录权限
    sudo chown -R www-data:www-data /var/www/html/tp6 # Ubuntu/Debian  sudo chown -R apache:apache /var/www/html/tp6 # CentOS/RHEL  sudo chmod -R 755 /var/www/html/tp6/runtime 
  • 启动项目
    • 开发环境:进入项目目录运行php think run
    • 生产环境:通过Nginx/Apache访问http://yourdomain.com

7. 优化与安全(可选)

  • 关闭调试模式:修改.envAPP_DEBUG=false
  • 配置HTTPS:使用Certbot免费申请SSL证书。

常见问题

  • 502 Bad Gateway:检查PHP-FPM是否运行,确认Nginx中fastcgi_pass路径正确。
  • 路由失效:确保服务器支持PATHINFO,Nginx配置包含try_files规则。

参考来源:

0