如何用Debian Composer进行项目部署
导读:在 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
- Web 可写目录(如 storage、var)属主设为 www-data:
四 部署后优化与常用命令
- 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.sock 或 php8.2-fpm.sock)
- Composer 安装缓慢或失败:检查网络、可用内存;必要时设置国内镜像(如国内镜像源)或在 composer.json 配置 repositories 提升稳定性
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用Debian Composer进行项目部署
本文地址: https://pptw.com/jishu/753770.html
