ubuntu

thinkphp项目在ubuntu上的部署流程

小樊
44
2025-09-04 21:30:28
栏目: 编程语言

ThinkPHP项目在Ubuntu上的部署流程如下:

  1. 安装基础环境

    • 更新系统: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
    • 安装Composer:curl -sS https://getcomposer.org/installer | php,移动到全局路径:sudo mv composer.phar /usr/local/bin/composer
  2. 部署项目文件

    • 下载项目(手动或通过Composer):
      • 手动下载:wgetscp项目压缩包,解压至指定目录(如/var/www/html/thinkphp)。
      • Composer创建:composer create-project topthink/think 项目名
    • 设置目录权限:sudo chown -R www-data:www-data /var/www/html/thinkphpsudo chmod -R 755 /var/www/html/thinkphp
  3. 配置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.confsudo systemctl restart apache2
  4. 配置数据库

    • 登录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,填入数据库连接信息。
  5. 测试部署

    • 访问http://your_domain_or_ip,若显示ThinkPHP欢迎页面则部署成功。
    • 常见问题:
      • 502 Bad Gateway:检查PHP-FPM是否运行,确认Nginx的fastcgi_pass路径正确。
      • 路由失效:确保Nginx配置中包含try_files规则,且服务器支持PATHINFO。

参考来源

0
看了该问题的人还看了