温馨提示×

thinkphp在ubuntu中的部署流程是怎样的

小樊
44
2025-10-25 02:23:29
栏目: 编程语言

ThinkPHP在Ubuntu中的部署流程

1. 环境准备

在Ubuntu上部署ThinkPHP前,需安装Web服务器(Nginx/Apache)、PHP环境及数据库(MySQL),并配置Composer依赖管理工具。

  • 更新系统包
    sudo apt update && sudo apt upgrade -y
    
  • 安装Nginx(推荐):
    sudo apt install nginx -y
    sudo systemctl start nginx && sudo systemctl enable nginx
    
  • 安装PHP及扩展(ThinkPHP 6.x需PHP 7.4+):
    sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
    
  • 安装Composer
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    

2. 配置Web服务器(以Nginx为例)

ThinkPHP需将public目录设为Web根目录,并配置URL重写以支持PATHINFO。

  • 创建Nginx配置文件
    sudo nano /etc/nginx/sites-available/thinkphp_project
    
  • 添加以下内容(替换your_domain_or_ip/var/www/html/thinkphp_project):
    server {
        listen 80;
        server_name your_domain_or_ip;
        root /var/www/html/thinkphp_project/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/php8.1-fpm.sock; # 根据PHP版本调整
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    
  • 启用配置并重启Nginx
    sudo ln -s /etc/nginx/sites-available/thinkphp_project /etc/nginx/sites-enabled/
    sudo nginx -t  # 测试配置语法
    sudo systemctl restart nginx
    

3. 部署ThinkPHP项目

  • 上传项目文件:通过SCP、Git或FTP将本地项目上传至/var/www/html/thinkphp_project(或其他目录)。
  • 安装依赖:进入项目目录,运行Composer安装依赖:
    cd /var/www/html/thinkphp_project
    composer install --no-dev --optimize-autoloader
    
  • 配置数据库:编辑.env文件(位于项目根目录),修改数据库连接信息:
    DB_TYPE=mysql
    DB_HOST=127.0.0.1
    DB_NAME=your_database
    DB_USER=your_username
    DB_PASSWORD=your_password
    DB_PORT=3306
    
  • 设置目录权限:确保Web服务器用户(通常为www-data)有读写权限:
    sudo chown -R www-data:www-data /var/www/html/thinkphp_project
    sudo chmod -R 755 /var/www/html/thinkphp_project
    sudo chmod -R 775 runtime  # runtime目录需可写
    

4. 启动项目与测试

  • 启动PHP-FPM(若未自动启动):
    sudo systemctl start php8.1-fpm && sudo systemctl enable php8.1-fpm
    
  • 测试访问:在浏览器输入服务器IP或域名,若看到ThinkPHP欢迎页面则部署成功。

5. 安全与优化(可选但重要)

  • 关闭调试模式:修改.env文件,设置APP_DEBUG=false
  • 启用HTTPS:使用Let’s Encrypt免费证书,配置Nginx支持HTTPS:
    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d your_domain_or_ip
    
  • 配置缓存:开启OPcache提升性能,编辑/etc/php/8.1/fpm/php.ini,取消opcache.enable=1注释。

常见问题排查

  • 502 Bad Gateway:检查PHP-FPM是否运行(sudo systemctl status php8.1-fpm),确认Nginx配置中的fastcgi_pass路径正确。
  • 路由失效:确保Nginx配置中包含try_files $uri $uri/ /index.php?$query_string;,且location /块未被覆盖。
  • 权限问题:若出现“Permission denied”,重新检查目录权限(www-data:www-data)和runtime目录可写性。

0