所有托管服务节省 15%

测试技能,享折扣

使用代码: Skills 开始使用
China
Linux 虚拟服务器

如何在共享/虚拟主机上安装 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 自动加载 — 消除整个代码库中手动 requireinclude 语句的需要。

如果您在共享虚拟主机VPS 主机环境上运行 PHP 应用程序,安装 Composer 是迈向专业、可维护开发工作流的第一步。

先决条件

开始之前,请确认满足以下要求:

要求详情
主机访问在您的主机账户上启用SSH访问
PHP版本PHP 7.2或更高版本(强烈推荐PHP 8.x)
PHP扩展opensslpharmbstringjson必须启用
权限能够写入您的主目录或$PATH中的目录
终端客户端终端(macOS/Linux)或PuTTY / Windows Terminal(Windows)

> 注意:如果您使用的是没有SSH访问的托管共享主机计划,请联系您的主机提供商启用它。AlexHost的共享网络主机计划包括SSH访问,为您提供所需的控制权。

步骤 1:通过 SSH 连接到您的服务器

打开您的终端应用程序并建立与您的托管账户的 SSH 连接:

ssh username@yourdomain.com

username 替换为您实际的 SSH 用户名,将 yourdomain.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 Hosting 计划的用户可以完全控制安装或更新 PHP 版本。

还要验证所需的扩展是否已加载:

php -m | grep -E 'openssl|phar|mbstring|json'

所有四个扩展都应该出现在输出中。

第 3 步:下载 Composer 安装程序

Composer 提供了一个官方的基于 PHP 的安装程序脚本。使用以下命令下载它:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

这会将 composer-setup.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 来将 ~/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

交互式向导将提示您输入:

  • 包名称(例如,yourname/project
  • 描述
  • 作者信息
  • 最低稳定性
  • 所需依赖

这会生成一个 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.jsoncomposer.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 foundBinary not in $PATHAdd the install directory to $PATH and reload shell
PHP Fatal error: Allowed memory size exhaustedPHP memory limit too lowRun php -d memory_limit=-1 /usr/local/bin/composer install
SSL certificate problemMissing CA certificatesInstall ca-certificates package or update PHP's openssl config
The requested PHP extension ... is missingRequired extension disabledEnable the extension in php.ini or contact your host
Permission denied on /usr/local/binNo sudo accessInstall Composer locally in ~/bin as described in Step 7

保持 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 证书配对,以在生产环境中保护您的 PHP 应用程序和 API 端点。

结论

在虚拟或共享主机环境中安装 PHP Composer 是一个简单的过程,可以显著改进您的 PHP 开发工作流程。通过遵循本指南,您已经:

  1. ✅ 通过 SSH 连接到您的服务器
  2. ✅ 验证了 PHP 可用性和所需的扩展
  3. ✅ 下载并加密验证了 Composer 安装程序
  4. ✅ 根据您的访问级别全局或本地安装了 Composer
  5. ✅ 学习了如何初始化项目、安装软件包和管理依赖项

Composer 不仅仅是一个便利工具 — 它是一个专业标准。保持它的更新并在您的项目中一致地使用它可以确保您的 PHP 应用程序保持安全、可维护和可扩展

无论您是在共享网络主机上运行小型网站,还是在专用服务器上运行复杂应用程序,AlexHost 都提供了您有效使用 Composer 所需的基础设施和启用 SSH 的环境。