如何在 Debian 10 上安装和使用 PHP Composer

2023-11-07

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

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

本文介绍如何在 Debian 10 系统上安装 Composer。我们还将介绍如何使用 Composer 创建和管理 PHP 项目。

在 Debian 上安装 Composer#

在安装 Composer 之前,请确保您的 Debian 系统上安装了所有必需的软件包:

sudo apt updatesudo apt install wget php-cli php-zip unzip

Composer 提供了一个用以下语言编写的安装程序PHP我们将用它来安装 Composer。

下载安装程序wget :

wget -O composer-setup.php https://getcomposer.org/installer

上面的命令会将文件另存为composer-setup.php in the 当前工作目录 .

Composer 是一个单文件 CLI 应用程序,可以全局安装或作为项目的一部分安装。全局安装需要须藤权限 .

  • 要将 Composer 全局安装为可供所有用户使用的系统范围命令,只需将该文件放置在系统中的目录中即可PATH。以下命令将 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.10.10) successfully installed to: /usr/local/bin/composer
    Use it: php /usr/local/bin/composer

    您现在可以通过运行来使用 Composercomposer在您的终端中。

  • 要在本地安装 Composer,请将文件下载到项目根目录中:

    sudo php composer-setup.php --install-dir=/path/to/project

    这将下载一个名为composer.phar。要使用 Composer,请导航到项目目录并运行php composer.phar

当新的 Composer 版本可用时,您可以使用以下命令更新安装:

sudo composer self-update  

开始使用 Composer#

现在您已经在 Debian 系统上安装了 Composer,我们将向您展示如何创建 PHP 项目。

首先创建一个目录作为项目根目录并保存composer.json文件。该文件描述您的 PHP 项目,包括 PHP 依赖项和其他元数据。

运行以下命令创建项目目录并切换到该目录:

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

接下来,我们将初始化一个新的composer.json文件使用composer require <package name>命令并指定我们要下载的包。在此示例中,我们将创建一个示例应用程序,它将使用名为的包打印当前时间carbon .

运行以下命令来初始化一个新的composer.json文件并安装 Carbon 包:

composer require nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
  - Installing symfony/translation-contracts (v2.1.3): Downloading (100%)         
  - Installing symfony/polyfill-php80 (v1.18.1): Downloading (100%)         
  - Installing symfony/polyfill-mbstring (v1.18.1): Downloading (100%)         
  - Installing symfony/translation (v5.1.3): Downloading (100%)         
  - Installing nesbot/carbon (2.38.0): Downloading (100%)         
symfony/polyfill-mbstring suggests installing ext-mbstring (For best performance)
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
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more

如输出所示,Composer 创建了composer.json文件并下载并安装 Carbon 及其所有依赖项。

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

ls -l
-rw-r--r-- 1 linuxize users   60 Aug 17 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Aug 17 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Aug 17 21:02 vendor
  • vendor- 存储项目依赖项的目录。
  • composer.lock- 包含所有已安装软件包列表(包括软件包版本)的文件。
  • 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.phpComposer 自动生成的文件。该文件将自动加载所有必需的库。

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

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

php testing.php

输出应如下所示:

Now: 2020-08-17 21:08:45

稍后,如果需要更新项目包,请输入:

composer update

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

结论#

我们向您展示了如何在 Debian 10 上安装 Composer 以及如何使用它创建基本的 PHP 项目。

有关 Composer 的更多信息,请访问官方文档 page.

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

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

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

  • 如何使用 php 将 *.xlsb 转换为数组或 *.csv

    我正在尝试转换 xlsb文件到php array or csv文件 或至少 xls 我尝试使用PHPExcel 但看起来它无法识别该文件中的内容 我注意到 你可以重命名 xlsb文件到 zip文件 然后使用命令行解压缩unzip zip 之
  • 克隆和引用传递问题

    所以在过去的几天里 我一直在绞尽脑汁地试图让一个类能够正确克隆 问题是克隆不会删除 重做任何引用传递 结果是 主数据对象仍然作为引用传递 从而完全抵消了克隆的效果 这是问题的简化版本 class my class private data
  • 在 ruby​​ 中使用 Blowfish 加密字符串返回的字符串比 php 中的相同过程要短

    这让我很困惑 当我尝试使用以下输入用 Blowfish 加密字符串时 key 某个键 输入 输入字符串 我得到以下结果 ruby 79af8c8ee9220bde php 79af8c8ee9220bdec2d1c9cfca7b13c6 我
  • 如何修复 Laravel 中未找到的“PDF”类

    在我的 Laravel 应用程序中遇到以下错误 CollaboPDFController php 第 14 行中的 FatalErrorException 未找到 PDF 类 这是我的ColaboPDFController php
  • XP及PHP MYSQL 练级系统

    我已经查看了所有提出的问题和答案 但我似乎找不到最适合我的答案 我想做的是开发一个系统 当用户达到一定的 XP 限制时 系统会进入下一个级别 它显示了下一个 XP 之前需要多少 XP So lvl1 0 gt lvl2 256 gt lvl
  • WordPress 安装中发现的恶意 PHP 代码有什么作用?

    我能够解码在一些 WordPress 文件中找到的以下 PHP 脚本 只是出于好奇 有人可以告诉我这段代码实际上是做什么的吗 看起来它已经以某种方式复制到同一服务器上的其他 WordPress 安装中
  • 打印一个模式以显示最多 5 行 5 列的数字,例如 5 4 3 2 1 和下一行 4 3 2 1 5 直到第 5 行

    这是一个正方形图案 每行有 5 列 共有 5 行 图案如下所示 5 4 3 2 1 4 3 2 1 5 3 2 1 5 4 2 1 5 4 3 1 5 4 3 2 我的代码如下以获得模式 但当计数器达到 1 并显示在相应的列值中时 我无法重
  • 为什么 SORT_REGULAR 在 PHP 中产生不一致的结果?

    我正在开发一个类 它使 PHP 中的数组排序变得更容易 并且我一直在使用 SORT 常量 但是行为或SORT REGULAR 默认排序类型 似乎有所不同 具体取决于您在数组中添加项目的顺序 此外 我找不到任何模式来解释为什么会出现这种情况
  • php递归合并

    我需要以某种不同的方式合并一些数组 我使用 array merge recursive 然而 有一些事情我需要改变 但我不知道如何改变 这是来自 php net 的引用 但是 如果数组具有相同的数字键 则后面的值 不会覆盖原始值 但会追加
  • 如何在 Laravel 5 中的视图模板上显示会话数据

    我正在尝试在 Laravel 5 中的视图模板上显示会话数据 但是它似乎没有显示任何内容 这是我用来设置会话的代码 Session set bookingConfirmed BookingDates where id Session get
  • 使用 DateTime 类计算日期差异时出错

    我正在尝试使用 DateTime 类 php gt 5 3 来计算 2 个日期的差异 手册中的示例简单明了 我尝试了该示例并且效果很好 但如果改变开始和结束日期 就会出现问题 this gt start date 2011 03 01 th
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • Laravel 类邮件程序不存在

    我将应用程序从 5 更新到 5 2 现在 当我调用 Mail send 时 它会返回一个异常 Class mailer 不存在 Mail send emails mail data gt content function m use to
  • PHP 负面因素不断增加

    我这里有这个代码 remaining 0 foreach clientArrayInvoice as key gt row remaining remaining row total 它的作用是 它获取总计值并将它们相加 但是当我有负值时
  • MySQL 中布尔值的 TINYINT 与 ENUM(0, 1)

    MyISAM 表和 MySQL 5 1 中具有 0 和 1 值的 Tinyint 或 ENUM 0 1 哪个更好 您可以使用BIT 1 如中提到的MySQL 5 1 参考 http dev mysql com doc refman 5 1
  • PHP:如何检查总数。 URL 中的参数?

    我正在使用 REQUEST 检索参数 有没有办法找到总数 URL 中的参数 而不是检索每个参数然后进行计数 这将为您提供总数 分隔的 URL 查询参数 count explode SERVER QUERY STRING 如果您只想要唯一的参
  • Heredoc:常用的“EOT”实际上是什么意思?

    PHP s 定界例子 http www php net manual en language types string php language types string syntax heredoc似乎总是使用 EOT 有时是 EOD 作
  • 如何在 PHP >= 5.3 严格模式下向对象添加属性而不产生错误

    这必须很简单 但我似乎找不到答案 我有一个通用的 stdClass 对象 foo没有属性 我想添加一个新属性 bar尚未定义 如果我这样做 foo new StdClass foo gt bar 1234 严格模式下的 PHP 会抱怨 将属
  • PHP 相当于朋友或内部

    php 中是否有相当于 朋友 或 内部 的东西 如果没有 是否有任何模式可以遵循来实现这种行为 Edit 抱歉 但标准 Php 不是我想要的 我正在寻找类似于马戏团长所做的事情 我有一些类在后端进行 C 风格的系统调用 并且杂耍已经开始变得
  • 在 PHP 命令行上显示完整的堆栈跟踪

    Problem 我的 PHP 堆栈跟踪缩写为 Stack trace 0 www html table app create php 128 SoapClient gt call call Array 1 www html table ap

随机推荐

  • Bash 脚本中出现错误时退出的综合指南

    Bash 脚本对于系统管理员 程序员甚至想要自动执行重复任务的普通用户来说都是必不可少的工具 然而 当脚本由于错误或不可预见的情况而未按预期运行时 可能会成为令人沮丧的根源 正确的错误处理对于维护脚本的可靠性 一致性和性能至关重要 本文将提
  • 如何使用 Sed 命令替换文件中的字符串

    您是否遇到过需要替换许多文件中的单词或句子的情况 您可以复制并粘贴它 或者也许有一个现有的脚本可以完成这项工作 但是 如果您只需要在其他地方用另一个单词或句子替换它呢 您可以使用 find 但这太通用了 需要为此任务编写脚本 如果您甚至不知
  • ss 与 netstat 命令之间的比较

    在 Linux 中进行网络分析和故障排除时 最常用的两个命令是 ss 和 netstat 这两个命令都允许您显示有关网络连接和套接字的信息 但它们在功能 速度和效率方面有所不同 在本文中 我们将比较 ss 和 netstat 命令的功能 性
  • 什么是主目录?

    在操作系统领域 无论是 Linux MacOS 还是 Windows 主目录的概念在维护用户数据 隐私和整个系统组织方面发挥着重要作用 了解主目录的重要性和功能对于任何使用计算机的人来说都是至关重要的 什么是主目录 主目录在 Unix 和类
  • 添加 Git 远程源存储库的实用指南

    Git 已成为全球开发人员不可或缺的工具 可实现高效的代码版本控制和协作 Git 最强大的功能之一是它能够使用远程存储库 这使得团队能够无缝协作进行项目 在本文中 我们将指导您完成将 Git 远程存储库添加到本地项目的过程 帮助您简化协作并
  • 如何在 Debian 9 (Stretch) 上安装 Ansible

    Ansible 是一种自动化工具 用于从单台计算机管理多个远程主机 它为您提供了针对大量远程主机的轻松配置 例如 您在多台机器上执行相同的任务 Ansible 为您提供了自动执行这些任务的选项 本教程将帮助您在 Debian 9 Stret
  • 如何列出 Ubuntu 和 Debian 中已安装的存储库

    存储库是 Linux 操作系统的软件包集合 您可以创建一个包含实际包的中央存储库 然后配置其他系统以与主存储库连接 从那里 您可以安装 更新软件包 Ubuntu 和其他基于 Debian 的系统使用 APT 高级软件包工具 作为软件包管理器
  • 如何使用屏幕截图安装 Debian 11 (Bullseye)

    Debian 11 0于2021年8月14日发布 Debian 11的代号是Bullseye Debian 是广泛使用的 Linux 操作系统之一 也是企业设置和配置服务器的流行选择 它刚刚发布了名为 Bullseye 的最新版本 Bull
  • Bash 转换字符串小写(4 种方法)

    在编程中 您经常会发现自己正在处理文本字符串 在 Bash 脚本编写中 您可能遇到的一项常见任务是需要将字符串转换为小写 出于诸如使字符串比较不区分大小写或规范化用户输入等原因 这可能是必要的 在本文中 我们将探索在 Bash 中将字符串转
  • 如何在 Linux 中按名称终止进程:综合指南

    Linux 与任何其他操作系统非常相似 其操作依赖于进程 有时 这些进程可能会变得无响应或消耗过多的系统资源 从而需要终止它们 以下文章详细介绍了如何在 Linux 中通过名称杀死进程 这对于 Linux 用户和管理员来说都是一项至关重要的
  • 如何在 Ubuntu、Debian、LinuxMint 上安装 Joomla 3.9 CMS

    本教程将帮助您在基于 Debian 的系统上安装和配置 Joomla CMS 第 1 步 设置 LAMP 服务器 首先 在您的系统上配置 LAMP 服务器 从系统终端执行以下命令来安装 LAMP 服务器 首先 在系统中添加所需的 PPA 存
  • 如何更改MySQL用户密码

    在本教程中 我们将向您展示如何更改 MySQL 用户密码 这些说明适用于任何现代 Linux 发行版 例如 Ubuntu 18 04 和 CentOS 7 先决条件 根据您系统上运行的 MySQL 或 MariaDB 服务器版本 您将需要使
  • 如何在 Ubuntu 18.04 上安装 Skype

    Skype是世界上最受欢迎的通信应用程序之一 可让您免费进行在线音频和视频通话 并以经济实惠的价格拨打全球手机和固定电话 Skype 不是开源应用程序 也不包含在 Ubuntu 存储库中 在本教程中 我们将向您展示如何在 Ubuntu 18
  • 如何在 Debian 10 上安装 MariaDB

    MariaDB 是一个开源 多线程关系数据库管理系统 向后兼容 MySQL 的替代品 MariaDB 是 Debian 中 MySQL 的默认实现 本教程介绍如何在 Debian 10 上安装 MariaDB 在 Debian 10 上安装
  • 如何在 Debian 10 上设置 Nginx 服务器块

    服务器块是一种 Nginx 指令 它定义特定域的设置 允许您在一台服务器上运行多个网站 对于每个网站 您可以设置网站文档根目录 包含网站文件的目录 创建单独的安全策略 使用不同的 SSL 证书等等 本文介绍如何在 Debian 10 上设置
  • 如何在 Ubuntu 20.04 上安装 Google Chrome 网络浏览器

    谷歌浏览器是世界上使用最广泛的网络浏览器 它是专为现代网络构建的快速 易于使用且安全的浏览器 Chrome 适用于所有主要操作系统和硬件平台 并允许您在所有设备上同步书签 历史记录和密码 本文介绍如何在 Ubuntu 20 04 上安装 G
  • 如何在 Ubuntu 20.04 上安装 TeamViewer

    团队查看器是一个跨平台解决方案 用于远程控制 网络会议 桌面共享和计算机之间的文件传输 本文介绍如何在 Ubuntu 20 04 上安装 TeamViewer 先决条件 您需要以 root 或用户身份登录须藤访问能够在 Ubuntu 系统上
  • 如何在 CentOS 7 上挂载 exFAT 驱动器

    exFAT 扩展文件分配表 是 Microsoft 专有的文件系统 针对 SD 卡和 USB 闪存驱动器等闪存设备进行了优化 它旨在取代旧的 32 位 FAT32 文件系统 该系统无法存储大于 4 GB 的文件 最新版本的 Windows
  • 如何在 Python 中检查文件或目录是否存在

    在编写 Python 脚本时 您可能希望仅在文件或目录存在或不存在时执行特定操作 例如 您可能想要读取数据或将数据写入配置文件 或者仅在文件不存在时才创建该文件 在Python中 有很多不同的方法来检查文件是否存在并确定文件的类型 本教程展
  • 如何在 Debian 10 上安装和使用 PHP Composer

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