温馨提示×

在Debian上使用Composer创建项目的方法

小樊
38
2025-11-29 10:30:47
栏目: 智能运维

在 Debian 上使用 Composer 创建项目的完整步骤

一 准备环境

  • 更新索引并安装依赖:sudo apt update && sudo apt install -y curl php-cli php-mbstring git unzip
  • 以上依赖用于下载与校验 Composer 安装脚本、执行 PHP、处理压缩包与从 Git 拉取依赖。

二 安装 Composer

  • 下载并校验安装脚本(SHA-384):
    • 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;”
  • 全局安装并将可执行文件放入 PATH:
    • sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
  • 验证:composer --version(应输出版本号)。

三 创建项目的三种常用方式

  • 从模板一键创建(推荐)
    • 语法:composer create-project [options] <vendor/package> [] []
    • 示例:composer create-project --prefer-dist laravel/laravel my-laravel-app
    • 常用选项:
      • –prefer-dist:优先使用压缩包发行版(更快、更小)
      • –stability=dev:允许安装 dev/RC 等不稳定版本
      • –no-dev:跳过开发依赖(适合生产部署)
      • –no-scripts:创建时不执行初始化脚本(便于调试)
    • 说明:create-project 会下载模板、安装依赖并执行初始化脚本,适合从零启动项目。
  • 使用框架安装器(以 Laravel 为例)
    • 全局安装安装器:composer global require laravel/installer
    • 确保全局二进制目录在 PATH:echo ‘export PATH=“$HOME/.composer/vendor/bin:$PATH”’ >> ~/.bashrc && source ~/.bashrc
    • 创建项目:laravel new my-laravel-app --prefer-dist
  • 现有项目初始化或从零手动搭建
    • 初始化:composer init(交互式生成 composer.json)
    • 添加依赖:composer require <vendor/package>(如:monolog/monolog)
    • 安装依赖:composer install(基于 composer.lock 精确复现依赖)

四 常用后续操作

  • 生产环境安装:composer install –no-dev --optimize-autoloader
  • 更新依赖:composer update;或指定包:composer update
  • 清理缓存:composer clear-cache
  • 重新生成自动加载:composer dump-autoload
  • 运行自定义脚本:composer run-script (如 post-install-cmd)。

五 常见问题与排查

  • 网络问题:无法连接 repo.packagist.org 时,检查网络/代理,必要时配置代理:composer config -g http-proxy <proxy_url>
  • 权限问题:避免使用 sudo composer;对目标目录赋予当前用户写权限(如 /var/www 下建议用合适的用户或目录)
  • PHP 版本不兼容:升级 PHP 至项目要求版本(参考框架文档)
  • 内存不足:提升内存限制(如 php.ini memory_limit)或在命令前设置:COMPOSER_MEMORY_LIMIT=-1 composer create-project …
  • 创建 Laravel 时的文件权限与密钥:
    • 目录权限:sudo chown -R $USER:$USER storage bootstrap/cache
    • 生成密钥:php artisan key:generate
    • 开发服务器:php artisan serve(默认 http://localhost:8000

0