如何在共享/虚拟主机上安装 PHP Composer:完整指南
PHP Composer 是 PHP 的事实上的标准依赖管理器,使开发人员能够声明、安装和管理其项目所依赖的库。无论您是在构建 Laravel 应用程序、Symfony API 还是自定义 PHP 项目,Composer 都是您工作流中不可或缺的工具。
本综合指南将引导您完成在虚拟或共享托管环境中安装 PHP Composer 的每一步——从 SSH 访问到全局配置和实际使用。
什么是 PHP Composer,为什么需要它?
PHP Composer 是一个处理项目级依赖管理的包管理器。与其手动下载库和管理自动加载不同,Composer 会自动解决依赖关系、下载正确的版本并生成优化的自动加载器。
主要优势包括:
- 自动化依赖解决 — Composer 处理版本冲突和嵌套依赖。
- 可重现的构建 — composer.lock 文件确保每个团队成员和部署环境使用相同的包版本。
- 庞大的生态系统 — 可访问 Packagist(默认 Composer 存储库)上的 350,000 多个包。
- PSR-4 自动加载 — 消除整个代码库中手动 require 和 include 语句的需要。
如果您在共享网络托管或 VPS 托管环境中运行 PHP 应用程序,安装 Composer 是迈向专业、可维护开发工作流的第一步。
前置条件
开始之前,请确认满足以下要求:
| 要求 | 详情 |
|---|---|
| 托管访问 | 在您的托管账户上启用 SSH 访问 |
| PHP 版本 | PHP 7.2 或更高版本(强烈推荐 PHP 8.x) |
| PHP 扩展 | 必须启用 curl、json、openssl、zip |
| 权限 | 能够写入您的主目录或 PATH 中的目录 |
| 终端客户端 | 终端(macOS/Linux)或 PuTTY / Windows 终端(Windows) |
> 注意:如果您使用的是没有 SSH 访问的托管共享托管计划,请联系您的托管提供商启用它。AlexHost 的共享网络托管计划包括 SSH 访问,为您提供所需的控制。
第 1 步:通过 SSH 连接到您的服务器
打开您的终端应用程序并建立与您的托管账户的 SSH 连接:
ssh username@yourdomain.com将 username 替换为您的实际 SSH 用户名,将 example.com 替换为您的域名或服务器 IP 地址。
示例:
ssh john@203.0.113.45身份验证后,您将进入您的主目录(通常是 /home/username)。您可以使用以下命令确认您的当前位置:
pwd第 2 步:验证 PHP 是否可用
在下载 Composer 之前,请确认 PHP 已安装且可从命令行访问:
php -v您应该看到类似的输出:
PHP 8.2.10 (cli) (built: Sep 5 2023 08:15:22) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies如果找不到 PHP,或版本低于 7.2,请联系您的托管提供商或升级您的环境。VPS 托管计划的用户可以完全控制安装或更新 PHP 版本。
还要验证所需的扩展已加载:
php -m | grep -E 'openssl|phar|mbstring|json'所有四个扩展应该出现在输出中。
第 3 步:下载 Composer 安装程序
Composer 提供了一个官方的基于 PHP 的安装程序脚本。使用以下命令下载它:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"这会将 installer.php 安装程序脚本下载到您的当前工作目录。
第 4 步:验证安装程序的完整性
这一步对于安全至关重要。在执行安装程序之前,始终验证其 SHA-384 哈希值,以确保文件未被篡改或在下载过程中损坏。
4a. 从官方 Composer 公钥页面获取预期的哈希值:
访问 https://composer.github.io/pubkeys.html 以检索最新的安装程序哈希值。
4b. 运行验证命令:
HASH="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"然后将其与发布的哈希值进行比较:
php -r "if (hash_file('sha384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"如果您看到“Installer verified”,请继续。如果您看到“Installer corrupt”,请立即停止、删除文件并重新下载。
或者,您可以使用官方 Composer 文档中的单行命令,将 EXPECTED_HASH 替换为公钥页面中的值:
php -r "if (hash_file('sha384', 'composer-setup.php') === 'EXPECTED_HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"第 5 步:运行 Composer 安装程序
验证安装程序后,执行它以安装 Composer:
php composer-setup.php执行成功后,您将看到类似的输出:
All settings correct for using Composer
Downloading...
Composer (version 2.x.x) successfully installed to: /home/username/composer.phar
Use it: php composer.phar现在在您的当前目录中创建了 composer.phar 文件。在这个阶段,您已经可以通过调用 php composer.phar 来使用 Composer,但使其全局可访问要方便得多。
第 6 步:清理安装程序脚本
删除设置脚本,因为不再需要它:
php -r "unlink('composer-setup.php');"第 7 步:全局安装 Composer
要从系统上的任何地方运行 Composer,仅使用 composer 命令,请将 composer.phar 二进制文件移动到系统 PATH 中包含的目录。
在 VPS 或专用服务器上(具有 sudo 访问权限):
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer在共享托管上(没有 sudo 访问权限):
如果您没有 sudo 权限,请在您的主目录中本地安装 Composer:
mkdir -p ~/bin
mv composer.phar ~/bin/composer
chmod +x ~/bin/composer然后通过将以下行附加到您的 .bashrc 或 .bash_profile 来将 ~/.composer/vendor/bin 添加到 PATH:
export PATH="$HOME/bin:$PATH"重新加载 shell 配置:
source ~/.bashrc> 专业提示:如果您需要完整的 root 访问权限和对 PHP 环境的更大控制,请考虑升级到 VPS 托管计划或专用服务器以获得不受限制的系统级配置。
第 8 步:验证安装
确认 Composer 已安装且全局可访问:
composer --version预期输出:
Composer version 2.x.x 2024-xx-xx xx:xx:xx要对您的环境进行完整诊断,请运行:
composer diagnose此命令检查您的 PHP 配置、网络连接和 Composer 设置,报告任何潜在问题。
第 9 步:使用 Composer 管理 PHP 依赖
现在已安装 Composer,以下是如何在 PHP 项目中有效使用它。
9a. 初始化新项目
导航到您的项目目录并初始化新的 Composer 项目:
cd /path/to/your/project
composer init交互式向导将提示您输入:
- 包名称(例如 myvendor/myproject)
- 描述
- 作者信息
- 最低稳定性
- 所需的依赖
这会生成 composer.json 文件——您项目依赖配置的核心。
9b. 安装包
要向您的项目添加库,请使用 require 命令:
composer require vendor/package-name实际示例:
# Install Guzzle HTTP client
composer require guzzlehttp/guzzle
# Install Carbon date library
composer require nesbot/carbon
# Install Monolog logging library
composer require monolog/monologComposer 将解决依赖关系、将包下载到 vendor 目录中,并更新 composer.json 和 composer.lock。
9c. 从 composer.json 安装所有依赖
部署项目或克隆存储库时,使用以下命令安装所有声明的依赖:
composer install对于生产环境,使用 –no-dev 标志跳过仅开发包:
composer install --no-dev --optimize-autoloader9d. 更新依赖
要将所有包更新到其最新允许的版本:
composer update要更新特定包:
composer update vendor/package-name9e. 自动加载
Composer 会自动生成自动加载器。在 PHP 入口点的顶部包含它:
<?php
require 'vendor/autoload.php';这一行代码使您可以访问所有已安装的包和您在 composer.json 中定义的任何自定义命名空间。
故障排除常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| composer: command not found | 二进制文件不在 PATH 中 | 将安装目录添加到 PATH 并重新加载 shell |
| PHP Fatal error: Allowed memory size exhausted | PHP 内存限制太低 | 运行 php -d memory_limit=-1 composer.phar install |
| SSL: certificate problem: unable to get local issuer certificate | 缺少 CA 证书 | 安装 ca-certificates 包或更新 PHP 的 openssl.cafile 配置 |
| The zip extension and unzip command are both missing | 所需扩展已禁用 | 在 php.ini 中启用扩展或联系您的主机 |
| Permission denied on /usr/local/bin/composer | 没有 sudo 访问权限 | 如第 7 步所述,在 ~/.composer 中本地安装 Composer |
保持 Composer 最新
Composer 包括内置的自我更新机制。定期运行以下命令以确保您拥有最新版本:
composer self-update如果需要,回滚到上一个版本:
composer self-update --rollback保持最新状态可确保您受益于最新的安全补丁、错误修复和性能改进。
为 PHP 开发选择合适的托管环境
您选择的托管环境会显著影响您有效使用 Composer 等工具的能力。
- 共享网络托管 — 适合较小的 PHP 项目。SSH 访问可用,但系统级更改受到限制。Composer 可以在您的主目录中本地安装。
- VPS 托管 — 对大多数 PHP 开发人员来说是理想的。完整的 root 访问允许全局 Composer 安装、自定义 PHP 配置以及对您的堆栈的完全控制。
- 带 cPanel 的 VPS — 结合了 VPS 的强大功能和图形控制面板的便利性,使 PHP 和 Composer 管理更加便捷。
- 专用服务器 — 最适合需要最大性能、隔离和资源可用性的高流量 PHP 应用程序。
将您的托管与适当的 SSL
