在Ubuntu 14.04上安装和使用Composer的方法

简介: 在Ubuntu 14.04上安装和使用Composer的方法

简介

Composer 是一个流行的 PHP 依赖管理工具,主要用于简化项目依赖项的安装和更新。它会检查特定项目依赖的其他软件包,并根据项目要求使用适当的版本进行安装。

本教程将展示如何在 Ubuntu 14.04 服务器上安装并开始使用 Composer。

先决条件

在进行本教程之前,您需要:

  • 运行 Ubuntu 14.04 的服务器
  • 以具有 sudo 权限的常规用户身份访问服务器

步骤 1 — 安装依赖项

在下载和安装 Composer 之前,我们需要确保服务器已安装所有依赖项。

首先,通过运行以下命令更新软件包管理器缓存:

sudo apt-get update

现在,让我们安装依赖项。我们需要使用 curl 下载 Composer,使用 php5-cli 进行安装和运行,git 则被 Composer 用于下载项目依赖项。您可以使用以下命令安装所有内容:

sudo apt-get install curl php5-cli git

现在您可以继续下一步。

步骤 2 — 下载并安装 Composer

Composer 的安装非常简单,只需一个命令即可完成:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

这将下载并安装 Composer 作为名为 composer 的系统命令,位于 /usr/local/bin 下。输出应如下所示:

#!/usr/bin/env php
All settings correct for using Composer
Downloading...
Composer successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

要测试您的安装,请运行:

composer

您应该会得到类似以下的输出:

______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.0-dev (9859859f1082d94e546aa75746867df127aa0d9e) 2015-08-17 14:57:00
Usage:
 command [options] [arguments]
Options:
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question
 --profile             Display timing and memory usage information
 --working-dir (-d)    If specified, use the given directory as working directory.
. . .

这意味着 Composer 已成功安装在您的系统上。

步骤 3 — 生成 composer.json 文件

为了在项目中使用 Composer,您需要一个 composer.json 文件。composer.json 文件基本上告诉 Composer 需要为您的项目下载哪些依赖项,以及允许安装每个软件包的哪些版本。这对于保持项目一致性并避免安装可能导致向后兼容性问题的不稳定版本非常重要。

您无需手动创建此文件 - 这样做很容易遇到语法错误。当您使用 require 命令向项目添加依赖项时,Composer 会自动生成 composer.json 文件。还可以以相同的方式添加其他依赖项,而无需手动编辑此文件。

使用 Composer 在项目中安装软件包作为依赖项通常涉及以下步骤:

  • 确定应用程序需要哪种类型的库
  • 在 Packagist.org 上研究适合的开源库,这是 Composer 的官方存储库
  • 选择您想要依赖的软件包
  • 运行 composer require 将依赖项包含在 composer.json 文件中并安装软件包

我们将通过一个简单的演示应用程序来看看这是如何工作的。

该应用程序的目标是将给定的句子转换为 URL 友好的字符串 - slug。这通常用于将页面标题转换为 URL 路径(如本教程的 URL 的最终部分)。

让我们从为我们的项目创建一个目录开始。我们将其命名为 slugify

cd ~
mkdir slugify
cd slugify

在 Packagist 上搜索包

现在是时候在 Packagist.org 上搜索一个可以帮助我们生成 slugs 的包了。如果你在 Packagist 上搜索 “slug” 这个词,你会得到类似于这样的结果:

!Packagist 搜索结果: easy-slug/easy-slug, muffin/slug, ddd/slug, zelenin/slug, webcastle/slug, anomaly/slug-field_type

你会在列表中看到每个包右侧有两个数字。顶部的数字代表该包被安装的次数,底部的数字显示了该包在 GitHub 上被 star 的次数。你可以根据这些数字重新排序搜索结果(在搜索栏右侧寻找两个图标)。一般来说,安装次数和 star 数更多的包往往更加稳定,因为有很多人在使用。同时,检查包的描述是否相关也很重要 - 这确实是你要找的吗?

我们需要的是一个简单的字符串转换成 slug 的工具。从搜索结果来看,包 cocur/slugify 似乎是一个很好的选择,安装次数和 star 数都很合理(该包在页面上的位置比截图显示的稍微靠下一些)。

你会注意到 Packagist 上的包有一个 vendor 名称和一个 package 名称。每个包都有一个唯一的标识符(命名空间),格式与 Github 用于其仓库的格式相同:vendor/package。我们想要安装的库使用的命名空间是 cocur/slugify 这个命名空间是我们在项目中需要用来引入这个包的。

引入一个包

现在我们知道了确切要安装的包,我们可以运行 composer require 来将其作为一个依赖项包含,并且为项目生成 composer.json 文件:

composer require cocur/slugify
使用版本 ^1.3 for cocur/slugify
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing cocur/slugify (v1.3)
    Downloading: 100%         
Writing lock file
Generating autoload files

从输出中可以看出,Composer 自动决定了应该使用哪个版本的包。如果你现在检查你的项目目录,你会发现其中有两个新文件:composer.jsoncomposer.lock,还有一个 vendor 目录:

ls -l
total 12
-rw-rw-r-- 1 sammy sammy   59 Sep  9 16:22 composer.json
-rw-rw-r-- 1 sammy sammy 2835 Sep  9 16:22 composer.lock
drwxrwxr-x 4 sammy sammy 4096 Sep  9 16:22 vendor

composer.lock 文件用于存储关于安装了哪些版本的每个包的信息,并确保如果其他人克隆你的项目并安装其依赖项时使用相同的版本。vendor 目录是项目依赖项的所在地。vendor 文件夹 不应该 被提交到版本控制 - 你只需要包含 composer.jsoncomposer.lock 文件。

理解版本约束

如果你检查你的 composer.json 文件的内容,你会看到类似于这样的内容:

cat composer.json
{
    "require": {
        "cocur/slugify": "^1.3"
    }
}

你可能会注意到 composer.json 文件中版本号前面的特殊字符 ^。Composer 支持多种不同的约束和格式来定义所需的包版本,以提供灵活性同时保持项目的稳定性。由自动生成的 composer.json 文件使用的插入符(^)操作符是推荐的操作符,用于最大的互操作性,遵循语义化版本。在这种情况下,它将 1.3 定义为最低兼容版本,并允许更新到 2.0 以下的任何未来版本。

一般来说,你不需要在你的 composer.json 文件中修改版本约束。然而,一些情况可能需要你手动编辑约束 - 例如,当你需要升级你所需库的一个主要新版本时,或者当你想要使用的库不遵循语义化版本。

以下是一些示例,以帮助你更好地理解 Composer 版本约束的工作方式:

约束 含义 允许的示例版本
^1.0 >= 1.0 < 2.0 1.0, 1.2.3, 1.9.9
^1.1.0 >= 1.1.0 < 2.0 1.1.0, 1.5.6, 1.9.9
~1.0 >= 1.0 < 2.0.0 1.0, 1.4.1, 1.9.9
~1.0.0 >= 1.0.0 < 1.1 1.0.0, 1.0.4, 1.0.9
1.2.1 1.2.1 1.2.1
1.* >= 1.0 < 2.0 1.0.0, 1.4.5, 1.9.9
1.2.* >= 1.2 < 1.3 1.2.0, 1.2.3, 1.2.9

要更深入地了解 Composer 版本约束,请查看它们的官方文档。

步骤 4 — 包含自动加载脚本

Composer 还提供了一个自动加载脚本,您可以将其包含在项目中,以便免费获得自动加载功能。这样可以更轻松地处理依赖关系并定义自己的命名空间。

您需要做的唯一一件事就是在 PHP 脚本中,在任何类实例化之前,包含 vendor/autoload.php 文件。

让我们回到 slugify 示例应用程序。我们将创建一个 test.php 脚本,在其中我们将使用 cocur/slugify 库:

vim test.php
<?php
require __DIR__ . '/vendor/autoload.php';
use Cocur\Slugify\Slugify;
$slugify = new Slugify();
echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!');

您可以在命令行中运行该脚本:

php test.php

这应该会产生输出 hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it

步骤 5 — 更新项目依赖项

每当您想要更新项目依赖项时,只需运行 update 命令:

composer update

这将检查您项目中所需库的更新版本。如果找到更新的版本并且与 composer.json 文件中定义的版本约束兼容,它将替换先前安装的版本。composer.lock 文件将被更新以反映这些更改。

您还可以通过运行以下命令来更新一个或多个特定库:

composer update vendor/package vendor2/package2

结论

Composer 是每个 PHP 开发人员都应该掌握的强大工具。

除了为管理项目依赖关系提供了一种简单可靠的方式之外,它还为社区创建的 PHP 包的共享和发现建立了新的事实标准。

本教程涵盖了在 Ubuntu 14.04 上开始使用 Composer 的基本知识。


目录
相关文章
|
2天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
43 25
|
13天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
218 15
|
7天前
|
Ubuntu
Ubuntu下载ISO镜像的方法
步骤 1:访问Ubuntu官方网站 打开浏览器,输入Ubuntu的官方网址:https://cn.ubuntu.com/download/desktop 接着,点击“Ubuntu Desktop”或你需要的Ubuntu版本。
52 6
|
1月前
|
弹性计算 Ubuntu Java
OS-Copilot-ubuntu镜像版本的具体测试使用(安装方式有单独注明)
作为一名个人开发者,我主要负责云资源的运维和管理。在使用OS Copilot的过程中,我遇到了一些配置问题,特别是在ECS实例中设置AccessKey时,但最终成功解决了。通过使用OS Copilot的-t/-f/管道功能,我大大提升了效率,减少了命令编写的工作量,特别是在搭建Java运行环境时效果显著。此外,| 功能帮助我快速理解文档,整体体验非常流畅,推荐给其他开发者使用。
42 6
|
2月前
|
JSON Ubuntu 开发者
ubuntu 22安装lua环境&&编译lua cjson模块
通过上述步骤,可以在 Ubuntu 22.04 系统上成功安装 Lua 环境,并使用 LuaRocks 或手动编译的方式安装 lua-cjson 模块。本文详细介绍了每一步的命令和操作,确保每一步都能顺利完成,适合需要在 Ubuntu 系统上配置 Lua 开发环境的开发者参考和使用。
217 13
|
2月前
|
监控 Ubuntu 安全
debian或Ubuntu中开启ssh允许root远程ssh登录的方法
在Debian或Ubuntu系统中启用root用户的SSH远程登录需要编辑SSH配置文件、设置root密码并重启SSH服务。虽然这可以在某些情况下提供便利,但必须注意安全性,通过使用强密码、限制IP访问、使用SSH密钥认证等方法来保护服务器的安全。
782 5
|
2月前
|
监控 关系型数据库 MySQL
Ubuntu24.04安装Librenms
此指南介绍了在Linux系统上安装和配置LibreNMS网络监控系统的步骤。主要内容包括:安装所需软件包、创建用户、克隆LibreNMS仓库、设置文件权限、安装PHP依赖、配置时区、设置MariaDB数据库、调整PHP-FPM与Nginx配置、配置SNMP及防火墙、启用命令补全、设置Cron任务和日志配置,最后通过网页完成安装。整个过程确保LibreNMS能稳定运行并提供有效的网络监控功能。
|
2月前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
1393 12
|
3月前
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
142 10
|
3月前
|
Ubuntu API 开发工具
PSOPT在Ubuntu22.04下的安装
通过上述步骤,可以在Ubuntu 22.04下成功安装并配置PSOPT。PSOPT是一个功能强大的工具,适用于解决各种最优控制问题。确保在安装前满足系统要求,并仔细按照步骤操作,可以避免大多数常见问题。通过MATLAB与PSOPT的结合,您可以更高效地处理复杂的控制问题,并获得准确的解决方案。
55 5