首页主机资讯如何用Debian Composer进行项目部署

如何用Debian Composer进行项目部署

时间2025-11-21 22:20:03发布访客分类主机资讯浏览956
导读:在 Debian 上使用 Composer 部署 PHP 项目的标准流程 一 环境准备与 Composer 安装 更新索引并安装依赖: sudo apt update sudo apt install -y curl php-cli...

在 Debian 上使用 Composer 部署 PHP 项目的标准流程


一 环境准备与 Composer 安装

  • 更新索引并安装依赖:
    • sudo apt update
    • sudo apt install -y curl php-cli php-mbstring git unzip
  • 下载并验证安装器(SHA-384),然后全局安装:
    • cd ~
    • curl -sS https://getcomposer.org/installer -o composer-setup.php
    • HASH=$(curl -sS https://composer.github.io/installer.sig)
    • php -r “if (hash_file(‘SHA384’, ‘composer-setup.php’) === ‘$HASH’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL; ”
    • php composer-setup.php --install-dir=/usr/local/bin --filename=composer
  • 验证:composer --version(显示版本即成功)

二 获取与安装项目代码

  • 方式 A(全新项目,基于框架):
    • 例如创建 Laravel:composer create-project --prefer-dist laravel/laravel your-project
    • 例如创建 Symfony:composer create-project symfony/website-skeleton your-project
  • 方式 B(已有代码,通过 Git 拉取):
    • git clone /var/www/your-project
    • cd /var/www/your-project
  • 安装依赖:
    • composer.lock:composer install --optimize-autoloader --no-dev
    • 无锁文件:composer install --optimize-autoloader --no-dev
  • 说明:–no-dev 跳过 require-dev(如 PHPUnit);–optimize-autoloader 提升生产环境自动加载性能

三 配置 Web 服务器与 PHP-FPM

  • 安装与启用服务:
    • sudo apt install -y nginx php-fpm
    • sudo systemctl enable --now nginx php-fpm
  • Nginx 站点配置示例(/etc/nginx/sites-available/your-project):
    • server { listen 80; server_name your-domain.com; root /var/www/your-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/php7.4-fpm.sock; # 按实际 PHP 版本调整 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
  • 启用站点并重启服务:
    • sudo ln -s /etc/nginx/sites-available/your-project /etc/nginx/sites-enabled/
    • sudo nginx -t & & sudo systemctl reload nginx
  • 目录与权限建议:
    • Web 可写目录(如 storage、var)属主设为 www-data
      • sudo chown -R www-data:www-data /var/www/your-project/storage /var/www/your-project/var
      • sudo chmod -R 775 /var/www/your-project/storage /var/www/your-project/var

四 部署后优化与常用命令

  • Composer 常用命令:
    • 安装锁文件指定版本:composer install --optimize-autoloader --no-dev
    • 更新依赖:composer update(或指定包:composer update vendor/pkg)
    • 生产优化:composer dump-autoload --optimize
    • 运行自定义脚本:composer run-script post-install-cmd(可在 composer.json 定义钩子)
  • 建议纳入部署脚本的步骤:
    • 拉取代码(git pull)
    • 安装依赖(composer install --optimize-autoloader --no-dev)
    • 执行迁移/缓存(如 Laravel:php artisan migrate --force;php artisan config:cache;php artisan route:cache)
    • 重启 PHP-FPM 与 Web 服务(必要时):sudo systemctl reload php7.4-fpm nginx

五 常见问题与排查

  • 404 或路由不生效:确认 Nginx root 指向框架的 public 目录,且存在 try_files $uri $uri/ /index.php?$query_string; 规则
  • 权限错误:确保 storage、var 等目录对 www-data 可写
  • 类未找到/白屏:执行 composer dump-autoload --optimize,检查是否遗漏 --no-dev 导致开发依赖干扰
  • PHP 版本不匹配:检查 Nginx fastcgi_pass 的 php-fpm.sock 路径与已安装 PHP 版本一致(如 php7.4-fpm.sockphp8.2-fpm.sock
  • Composer 安装缓慢或失败:检查网络、可用内存;必要时设置国内镜像(如国内镜像源)或在 composer.json 配置 repositories 提升稳定性

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何用Debian Composer进行项目部署
本文地址: https://pptw.com/jishu/753770.html
Ubuntu下C++开发环境怎么搭建 Debian能否运行WebLogic应用

游客 回复需填写必要信息