15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
01.11.2024
1 +1

如何在共享/虚拟主机上安装 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/monolog

Composer 将解决依赖关系、将包下载到 vendor 目录中,并更新 composer.json 和 composer.lock。

9c. 从 composer.json 安装所有依赖

部署项目或克隆存储库时,使用以下命令安装所有声明的依赖:

composer install

对于生产环境,使用 –no-dev 标志跳过仅开发包:

composer install --no-dev --optimize-autoloader

9d. 更新依赖

要将所有包更新到其最新允许的版本:

composer update

要更新特定包:

composer update vendor/package-name

9e. 自动加载

Composer 会自动生成自动加载器。在 PHP 入口点的顶部包含它:

<?php
require 'vendor/autoload.php';

这一行代码使您可以访问所有已安装的包和您在 composer.json 中定义的任何自定义命名空间。

故障排除常见问题

问题原因解决方案
composer: command not found二进制文件不在 PATH 中将安装目录添加到 PATH 并重新加载 shell
PHP Fatal error: Allowed memory size exhaustedPHP 内存限制太低运行 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

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用