如何在 CentOS 7 上安装和使用 PHP Composer

2023-10-22

Composer是 PHP 的依赖管理器(类似于Node.js 的 npm or Python 的点子 ).

Composer 将提取您的项目所依赖的所有必需的 PHP 包并为您管理它们。它用于所有现代 PHP 框架和平台,例如 Laravel、Symfony、Drupal 和马真托2 .

在本教程中,我们将介绍在 CentOS 7 计算机上安装和使用 Composer 的步骤。

先决条件#

在继续本教程之前,请确保您已满足以下先决条件:

  • 登录身份为具有 sudo 权限的用户
  • Have PHP 7 安装在 CentOS 7 上 system.

在 CentOS 上安装 Composer#

以下步骤描述了如何在 CentOS 7 系统上安装 Composer。

  1. 首先安装 PHP CLI(命令行界面)包和所有其他依赖项:

    sudo yum install php-cli php-zip wget unzip
  2. 安装 PHP CLI 后,使用以下命令下载 Composer 安装程序脚本:

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

    上面的命令将下载composer-setup.php文件在当前工作目录 .

  3. 验证脚本的数据完整性比较脚本SHA-384哈希与在上找到的最新安装程序哈希作曲家公钥/签名 page.

    下列wget命令将从 Composer 的 Github 页面下载最新 Composer 安装程序的预期签名并将其存储在名为的变量中HASH:

    HASH="$(wget -q -O - 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;"

    如果哈希值匹配,将显示以下消息:

    Installer verified

    如果哈希值不匹配,您将看到Installer corrupt。在这种情况下,您需要重新下载Composer安装脚本并仔细检查$HASH变量与回显 $HASH。验证安装程序后,您可以继续下一步。

  4. 运行以下命令将 Composer 安装在/usr/local/bin目录:

    sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    All settings correct for using Composer
    Downloading...
    
    Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer
    Use it: php /usr/local/bin/composer

    The composer作为系统范围的命令安装,所有用户都可以使用。

  5. 最后一步是验证安装:

    composer

    上面的命令将打印 Composer 的版本、命令和参数。

    ______
    / ____/___  ____ ___  ____  ____  ________  _____
    / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
    \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                        /_/
    Composer version 1.8.5 2019-04-09 17:46:47
    
    Usage:
        command [options] [arguments]

    至此,您已经在 CentOS 系统上成功安装了 Composer。

如果您想按项目安装 Composer,请使用以下命令php composer-setup.php这将创建一个名为的文件composer.phar在您当前的工作目录中。您可以通过运行来使用作曲家./composer.phar <command>.

开始使用 Composer#

现在 Composer 已安装在 CentOS 系统上,我们将向您展示如何在 PHP 项目中使用 Composer。

首先创建一个目录作为项目根目录并保存composer.json file.

composer.json文件描述您的 PHP 项目,包括 PHP 依赖项和其他元数据。

创建项目目录并切换到它 with:

mkdir ~/my-first-composer-projectcd ~/my-first-composer-project

在此示例中,我们将创建一个示例应用程序,它将使用名为的包打印当前时间carbon .

运行以下命令来初始化新的 Composer 项目并安装 Carbon 包:

composer require nesbot/carbon
Using version ^2.2 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
  - Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
  - Installing symfony/translation (v4.1.4): Downloading (100%)
  - Installing nesbot/carbon (2.2.0): Downloading (100%)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
Writing lock file
Generating autoload files

正如您从上面的输出中看到的,Composer 将创建composer.json文件,它将下载并安装 Carbon 及其所有依赖项。

If you 列出您的项目目录,你会看到它包含两个文件composer.json and composer.lock, and a vendor目录。

ls -l
-rw-r--r-- 1 linuxize users   60 Aug 29 00:50 composer.json
-rw-r--r-- 1 linuxize users 6.8K Aug 29 00:50 composer.lock
drwxr-xr-x 5 linuxize users 4.0K Aug 29 00:50 vendor
  • The vendor目录是存放项目依赖的目录。
  • The composer.lock包含所有已安装软件包及其版本的列表。
  • The composer.json描述 PHP 项目和所有 PHP 依赖项。
您可以搜索 Composer 存储库包装学家对于 PHP 包。

Composer 提供了自动加载功能,允许我们使用 PHP 类而无需使用require or include文件。

创建一个名为testing.php并添加以下代码:

<?php

require __DIR__ . '/vendor/autoload.php';

use Carbon\Carbon;

printf("Now: %s", Carbon::now());

我们来逐行分析一下代码。

在开始 php 标签之后的第一行中,我们包括vendor/autoload.php由 Composer 自动生成的文件,它将自动加载所有库。

接下来,我们使用别名Carbon\Carbon as Carbon在最后一行,我们使用 Carbon 打印当前时间now method.

通过键入以下内容运行脚本:

php testing.php

输出应如下所示:

Now: 2018-09-26 20:08:18

稍后,如果您想更新 PHP 包,您只需运行:

composer update

上面的命令将检查已安装软件包的较新版本,如果找到较新版本并且版本约束与指定的匹配composer.json,Composer 会更新包。

结论#

您已经学习了如何在 CentOS 7 计算机上安装 Composer。我们还向您展示了如何使用 Composer 创建基本的 PHP 项目。

想了解更多关于Composer的信息,请访问官方作曲家文档 page.

如果您有任何疑问,请在下面留言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 7 上安装和使用 PHP Composer 的相关文章

  • 使用Ajax使用php将记录插入mysql数据库

    如何使用 Ajax 对此代码进行编码 请帮助 我是 Bignner 我已经编写了这段代码 它可以工作 但我想与 ajax 一起使用 因为不想重新加载页面 PHP文件 Code For Making Form And getting Data
  • PHP 中的 is_callable 和 function_exists 到底有什么区别?

    我正在开发一个项目 在该项目中我使用了旧版本中已弃用的函数 但不希望我的脚本在旧版本中使用时停止 所以我检查该函数是否存在 如果不存在则创建它 有什么区别function exists and is callablePHP 中哪个更好用 i
  • 使用哈希检查具有 $_POST 值的页面是否已刷新

    当将表单发布到同一个PHP页面时 正确的方法是什么来查找页面是否被意外刷新而不是再次提交 这是我现在正在使用的 tmp implode POST myHash md5 tmp if isset SESSION myHash SESSION
  • symfony2以管理员用户身份访问私有文件

    在我的 Symfony2 3 项目中 我有一个前端网站和一个后端 后端通过 security yml 文件进行安全保护 只有 role admin 用户可以访问后端 我现在想要的是只有管理员用户可以下载 pdf 文件存储在资产中 有没有办法
  • Jwt 令牌是唯一的

    我正在使用 JWT 网络令牌系统 我能够成功生成令牌 我在 Laravel 中创建 JWT 令牌 如下所示 我正在使用以下技术堆栈 拉拉维尔 5 2 http laravel com 框架 JWT 包裹 https github com t
  • 检查 2 个数组是否至少有 1 个相等的值 [重复]

    这个问题在这里已经有答案了 目前我有2个数组 array 1 2 3 4 array 4 5 6 7 我如何检查它们是否至少有一个相等的值 上面的示例有 1 个相等值 gt 4 因此该函数应返回 true 数组相交 http php net
  • jQuery - 找不到 ajax url

    好吧 我确信这真的很容易 而且我很愚蠢 但似乎无法弄清楚它的真相 我正在尝试从名为 custom js 的 js 文件对 helpers php 中的某些代码进行简单的 AJAX 调用 然而 我不断收到 404 错误 因为我似乎没有正确遍历
  • PHP file_get_contents 有限制吗? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 使用 PHP / Javascript 检测应用内浏览器 (WebView)

    我开发了一个适用于 iOS 和 Android 的应用程序 它使用应用程序内浏览器 Webview 从我的网络服务器访问 HTML 文件 我不希望用户可以在不使用该应用程序的情况下访问此文件 是否有可能检测用户是否使用应用程序或直接通过此智
  • 2 个使用 jQuery 或 Ajax 的自动完成/建议输入框,第二个框基于多个项目的第一个选择

    我尝试过很多 jquery 和 ajax 自动完成脚本 我发现很难尝试将它们中的任何一个集成到我需要的东西中 让我解释一下我想要实现的目标 我需要 2 个自动完成框 第二个从第一个中提取数据 它们还必须都支持多个条目 查询数据库中的数据 我
  • 在 Drupal 8 中如何在保存节点之前操作值?

    我有一个编辑节点表单 当用户输入新值并单击提交来编辑节点时 我首先想取回旧节点 操作该值 然后保存 更新节点 以下是我的解决方案 但它不起作用 function custom module form node form alter form
  • 如何将javascript变量放入php echo [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想将 JavaScript 变量添
  • 为什么服务器端和客户端脚本无法交互?

    我是客户端和服务器端脚本的新手 我想知道它们为什么不能交互 Code Conquest 指出的主要区别here http www codeconquest com website client side vs server side 就是它
  • PHP:调用 __call 而不是 __callStatic

    我正在开发一个自定义 ORM 这里有一个简化的示例来演示该问题 class Foo public static function callStatic name args if name getBar return Bar return N
  • 如何使用 file_put_contents() 写入变量值?

    一整天都在试图解决这个问题 假设这只是一个小错误 我正在尝试使用file put content将变量值放入另一个 php 文件中 下面的代码将解释 将数据写入php的文件
  • 流浪家园慢

    我有一个基于 Laravel Homestead 的 vagrant 服务器 用于在本地测试我的 Laravel 站点 大部分情况下它运行得很好 然而 最近 我遇到了问题 它会停止几分钟 典型 到几个小时 罕见 这种情况每 15 分钟左右就
  • 从 Woocommerce 商店页面中的特定自定义元数据中过滤产品

    我需要过滤 WooCommerce 商店页面 并且只想显示需要自定义产品元数据的产品 这是我在archive product php Hook woocommerce before shop loop hooked wc print not
  • PHP 一次只能看到 20 个上传文件

    当我尝试一次上传超过 20 个文件时 网络服务器只能看到前 20 个文件 任何其他文件都会被忽略 问题是什么 简单的代码可以尝试
  • 调用php中未定义的方法DateTime::add方法

    我使用 php 5 2 9 作为 xampp 安装的一部分 我正在为我的网络应用程序使用 codeigniter 框架 当我调用 DateTime add 时 Call to undefined method显示错误 我的代码是 date
  • 扫描图像到可读文本

    我想知道是否有一种方法可以通过编写代码来将带有文本的扫描图像转换为可读文本 那可能吗 OCRTools http www ocrtools com是我用于 net 的 对于Java 我用过Aspire http asprise com pr

随机推荐

  • NumPy Meshgrid 从零到英雄

    Python 的 NumPy是处理数组 矩阵数据最常用的库 矩阵可以被视为二维值 网格 其中网格中每个值的位置由一对值 i j 给出 这些值表示该值在网格中的行号和列号 在本教程中 我们将了解如何使用 Python 中的 NumPy 库创建
  • Python 中的快速排序算法(逐步)

    在编程世界中 大多数问题的答案都可以在存储在各种数据结构中的数据中并借助一些标准算法找到 今天 我们将讨论快速排序算法以及如何在 Python 中实现它 在开始确定这些答案之前 您将需要一组数据 在许多情况下是排序数据 来执行进一步的计算
  • Python 优先级队列(分步指南)

    队列是一种按称为 FIFO 的顺序检索数据项的数据结构 先进先出 在 FIFO 中 第一个插入的元素将首先从队列中弹出 优先级队列是队列数据结构的高级版本 具有最高优先级的元素被放置在优先级队列的最顶部 并且是第一个被出列的元素 有时 队列
  • 如何检查 MySQL 数据库和表的大小

    MySQL是一种关系型数据库管理系统 广泛用作Linux系统的数据库系统 本文将帮助您通过 SQL 查询计算 MySQL 或 MariaDB 服务器中表和数据库的大小 MySQL将与数据库中的表相关的所有信息存储在information s
  • 如何更改 Azure 应用服务中的时区

    TimeZone 对于时间关键的应用程序起着重要作用 在这种情况下 您必须为正在运行的操作系统设置正确的时区 我们的一位用户询问有关在 Azure 应用服务中设置时区的问题 在本教程中 您将学习如何为运行的应用程序设置时区Azure 应用服
  • 如何在 Bash 中将标准错误存储到变量

    在 Bash 中 您可以使用以下命令将命令的标准错误输出存储到变量中 2 gt 1 运营商和 命令替换语法 这里 2 gt 将错误消息重定向到 1 代表标准输出 在 bash shell 的情况下 它作为标准输出设备 For example
  • C 程序求三个数字中最大的

    在本文中 我们将探讨计算机编程中一个常见且简单的问题 找到三个给定数字中最大的数字 我们用来解决这个问题的语言是 C 一种通用的过程计算机编程语言 C 提供了有效映射到典型机器指令所需的结构 换句话说 它是一种流行的系统编程语言 尽管它也用
  • 如何使用 DNF 将 Fedora 23 升级到 Fedora 24

    软呢帽24最终版本已发布于2016 年 6 月 21 日 Fedora 工作站用户可能需要升级工作站才能使用最新版本 本教程将帮助您将 Fedora 23 升级到 Fedora 24 工作站使用命令行实用程序 DNF 这是升级 Fedora
  • RDBMS 与 NoSQL:为您的项目选择正确的数据库

    为项目选择正确的数据库可能是一个关键决策 会极大地影响项目的成功 最流行的两类数据库是关系数据库管理系统 RDBMS 和 NoSQL 数据库 每种都有其优点和缺点 选择最终取决于项目的具体要求 本文将对 RDBMS 和 NoSQL 数据库进
  • 如何在 Linux 上设置 LogMeIn (Hamachi) VPN

    Hamachi 用于使用或设置 VPN 并通过 VPN 网络连接系统 这提供了一种快速 更简单的方法来创建 VPN 网络和连接系统 您可以在 logmein com 上创建免费帐户并创建网络 您可以使用免费帐户在每个网络中添加最多 5 个系
  • Java 技巧:将字符串转换为日期

    在 Java 编程领域 日期和时间操作是一项基本技能 但是 日期通常作为字符串传递 这需要将这些字符串转换为 Date 对象以进行有效操作 在本综合指南中 我们将详细介绍在 Java 中将字符串转换为日期的过程 了解基础知识 表示日期的字符
  • UFW:通用防火墙规则和命令

    防火墙是一种安全系统 它根据预定义的安全规则监视和控制传入和传出的网络流量 它是任何安全网络的重要组成部分 无论是个人计算机还是大型企业网络 Uncomplicated Firewall UFW 是一个用户友好的命令行界面 用于管理 ipt
  • 编辑 crontab 文件的要点

    在系统管理领域 有一种强大的工具可以让您高效地安排任务 crontab 使用 crontab 您可以在指定的日期和时间执行脚本和命令 这使其成为基于 Unix 的系统中非常有用的实用程序 但是 要充分利用其潜力 您需要了解编辑 cronta
  • 如何在 Linux 中创建交换文件

    交换文件是 Linux 操作系统的重要组件 它通过提供额外的虚拟内存来帮助提高性能 它是在系统物理内存 RAM 填满时保留用作虚拟内存的磁盘空间 在 Linux 中创建交换文件有助于防止系统崩溃和不稳定 在本文中 我们将逐步讨论如何在 Li
  • 如何在 phpMyAdmin 中添加多个主机

    phpMyAdmin 默认配置仅允许连接到本地 MySQL 服务器 但是如果我们运行多个数据库服务器 那么如果我们可以从单个 phpMyAdmin 安装中选择需要连接的服务器 那就太好了 本操作指南将帮助您在 phpMyAdmin 中添加多
  • Bash 选择(制作菜单)

    在本教程中 我们将介绍以下基础知识select在 Bash 中构建 The select构造允许您生成菜单 Bash select构造 The select构造从项目列表生成菜单 它的语法几乎与for loop select ITEM in
  • 如何在 CentOS 7 上安装和配置 Redmine

    Redmine 是最流行的开源项目管理和问题跟踪软件工具之一 它是跨平台和跨数据库的 构建在 Ruby on Rails 框架之上 Redmine包括对多个项目 wiki 问题跟踪系统 论坛 日历 电子邮件通知等的支持 在本教程中 我们将介
  • 如何在 Ubuntu 18.04 上部署 Rocket.Chat

    Rocket Chat 是一个开源团队交流平台 是自托管的 Slack 替代品 它使用 Meteor 框架开发 提供各种功能 包括帮助台聊天 文件共享 视频会议 语音消息 API 等 对于想要托管自己的聊天系统的公司和社区来说 Rocket
  • .bashrc 与 .bash_profile

    如果您在命令行上花费大量时间 您很可能想要自定义您的 shell 环境 这可能意味着创建别名 将新目录添加到 PATH 或更改 shell 提示符的外观 您可能遇到过一些教程 其中他们说将您的配置放在 bashrc bash profile
  • 如何在 CentOS 7 上安装和使用 PHP Composer

    Composer是 PHP 的依赖管理器 类似于Node js 的 npm or Python 的点子 Composer 将提取您的项目所依赖的所有必需的 PHP 包并为您管理它们 它用于所有现代 PHP 框架和平台 例如 Laravel