如何在 Ubuntu 22.04 上安装 PHP 8.1 并设置本地开发环境

来自菜鸟教程
跳转至:导航、​搜索

本教程的上一版本由 alenaholligan 编写。

介绍

PHP 是一种流行的服务器脚本语言,以创建动态和交互式网页而闻名。 使用您选择的语言开始并运行是学习编程的第一步。

本教程将指导您在 Ubuntu 上安装 PHP 8.1 并通过命令行设置本地编程环境。 您还将安装一个依赖管理器 Composer,并通过运行脚本来测试您的安装。

先决条件

要完成本教程,您需要一台安装了 Ubuntu 22.04 的本地或虚拟机,并且具有管理访问权限以及与该机器的 Internet 连接。 您可以通过 Ubuntu 发布页面 下载此操作系统。

第 1 步 — 设置 PHP 8.1

您将在命令行上完成安装和设置,这是一种与计算机交互的非图形方式。 也就是说,您将输入文本并通过文本从计算机接收反馈,而不是单击按钮。

命令行,也称为 shell 或终端,可以帮助您修改和自动化您每天在计算机上执行的许多任务,并且是软件开发人员必不可少的工具。 有许多终端命令需要学习,可以让你做更强大的事情。 文章 An Introduction to the Linux Terminal 可以让您更好地了解终端。

在 Ubuntu 上,您可以通过单击屏幕左上角的 Ubuntu 图标并在搜索栏中输入 terminal 来找到终端应用程序。 单击终端应用程序图标将其打开。 或者,您可以同时按下键盘上的 CTRLALTT 键以自动打开终端应用程序。

注意: Ubuntu 22.04 在其存储库中附带 PHP 8.1。 这意味着如果您尝试安装没有指定版本的 PHP,它将使用 8.1。

如果你想在你的 Ubuntu 22.04 服务器上使用不同版本的 PHP,你可以使用 phpenv 项目 来安装和管理不同的版本。


运行以下命令来更新可用软件包列表,然后安装 PHP 8.1:

sudo apt update
sudo apt install --no-install-recommends php8.1

--no-install-recommends 标志将确保不安装其他软件包,例如 Apache Web 服务器。

使用以下命令检查您的 PHP 版本信息:

php -v

您将收到如下输出:

OutputPHP 8.1.2 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

除了 PHP 本身,您可能还想安装一些额外的 PHP 模块。 您可以使用此命令安装其他模块,将 PACKAGE_NAME 替换为您要安装的软件包:

sudo apt-get install php8.1-PACKAGE_NAME

您还可以一次安装多个软件包。 以下是您最可能要安装的最常见模块的一些建议:

sudo apt-get install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath

此命令将安装以下模块:

  • php8.1-cli - 命令解释器,用于从 shell 测试 PHP 脚本或执行一般 shell 脚本任务
  • php8.1-common - PHP 的文档、示例和常用模块
  • php8.1-mysql - 用于处理 MySQL 数据库
  • php8.1-zip - 用于处理压缩文件
  • php8.1-gd - 用于处理图像
  • php8.1-mbstring - 用于管理非 ASCII 字符串
  • php8.1-curl - 让您在 PHP 中发出 HTTP 请求
  • php8.1-xml - 用于处理 XML 数据
  • php8.1-bcmath - 使用精度浮点数

Apache 相关的 PHP 配置存储在 /etc/php/8.1/apache2/php.ini 中。 您可以使用以下命令列出所有已加载的 PHP 模块:

php -m

您已经安装了 PHP 并验证了您正在运行的版本。 您还安装了所有必需的 PHP 模块,并且能够列出您已加载的模块。

您现在可以开始使用 PHP,但您可能希望使用各种库来快速构建 PHP 应用程序。 在测试您的 PHP 环境之前,首先为您的项目设置一个依赖项管理器。

第 2 步 — 为依赖管理设置 Composer(可选)

库是代码的集合,可以帮助您解决常见问题,而无需自己编写所有内容。 由于有许多库可用,使用依赖管理器将帮助您管理多个库,因为您在编写 PHP 方面变得更有经验。

Composer 是 PHP 中用于依赖管理的工具。 它允许您声明您的项目所依赖的库,并将管理安装和更新这些包。

尽管相似,但 Composer 与 yumapt 的意义不同。 它处理“包”或库,但它基于每个项目管理它们,将它们安装在一个目录中(例如 vendor) 在你的项目中。 默认情况下,它不会全局安装任何东西。 因此,它是一个 依赖管理器。 但是,为了方便起见,它确实通过 global 命令支持全局项目。

这个想法并不新鲜,Composer 受到 Node 的 npm 和 Ruby 的 bundler 的强烈启发。

认为:

  • 您有一个依赖于多个库的项目。
  • 其中一些库依赖于其他库。

作曲家:

  • 使您能够声明所依赖的库。
  • 找出可以并且需要安装哪些软件包的哪些版本,并通过将它们下载到您的项目中来安装它们。
  • 使您能够在一个命令中更新所有依赖项。
  • 使您能够查看基本用法一章以了解有关声明依赖项的更多详细信息。

要安装 Composer,首先使用以下 curl 命令下载安装程序:

curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

接下来,验证下载的安装程序是否与在 Composer 公钥/签名 页面上找到的最新安装程序的 SHA-384 哈希匹配。 为了便于验证步骤,您可以使用以下命令以编程方式从 Composer 页面获取最新的哈希并将其存储在 shell 变量中:

HASH=`curl -sS https://composer.github.io/installer.sig`

要验证获得的值,您可以运行:

echo $HASH
Output55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae

现在执行 Composer 下载页面 中提供的以下 PHP 代码,以验证安装脚本可以安全运行:

php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

您将看到以下输出:

输出

Installer verified

如果输出显示 Installer corrupt,您需要再次下载安装脚本并仔细检查您使用的哈希是否正确。 然后,重复验证过程。 当您拥有经过验证的安装程序时,您可以继续。

要全局安装 composer,请使用以下命令下载并安装 Composer 作为系统范围的命令,名为 composer,位于 /usr/local/bin 下:

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

您将收到与此类似的输出:

OutputAll settings correct for using Composer
Downloading...

Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

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

composer

您将收到如下输出:

Output   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.3.5 2022-04-13 16:43:00

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display help for the given command. When no command is given display help for the list command
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi|--no-ansi           Force (or disable --no-ansi) ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
      --no-scripts               Skips the execution of all scripts defined in composer.json file.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
      --no-cache                 Prevent use of the cache
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
. . .

这将验证 Composer 是否已成功安装在您的系统上并且在系统范围内可用。

注意: 如果您希望在服务器上托管的每个项目都有单独的 Composer 可执行文件,您可以在本地安装它,基于每个项目。 当您的系统用户无权在系统范围内安装软件时,此方法也很有用。

为此,请使用不带任何参数的命令 php /tmp/composer-setup.php。 此命令将在您的当前目录中生成一个 composer.phar 文件,您可以使用 php composer.phar 运行该文件。


第 3 步 — 在 PHP 项目中使用 Composer

作为最后一步,您可以选择使用 composer init 初始化您的项目。 这将创建 composer.json 文件来管理您的项目依赖项。 初始化项目还将让您定义项目详细信息,例如作者和许可证,并使用 Composer 的自动加载功能 。 您可以现在定义依赖项或稍后添加它们。

首先,创建一个目录并将其更改为包含您的项目文件:

cd ~
mkdir example-project
cd example-project

现在初始化您的项目:

composer init

运行此命令将启动设置向导。 您在向导中输入的详细信息可以稍后更新,因此请随时保留默认设置,只需按 ENTER。 如果您还没有准备好安装任何依赖项,您可以选择 no。 在每个提示符处输入您的详细信息:

Output
                                            
  Welcome to the Composer config generator  
                                            


This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [sammy/example-project]:  sammy/project1
Description []:
Author [n to skip]: Sammy <sammy@digitalocean.com>
Minimum Stability []: 
Package Type (e.g. library, project, metapackage, composer-plugin) []: project
License []: 

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no

Add PSR-4 autoload mapping? Maps namespace "Sammy\Project1" to the entered relative path. [src/, n to skip]: n

{
    "name": "sammy/project1",
    "type": "project",
    "authors": [
        {
            "name": "Sammy",
            "email": "sammy@digitalocean.com"
        }
    ],
    "require": {}
}

Do you confirm generation [yes]? yes

在确认生成之前,您将看到向导将创建的 composer.json 文件的示例。 如果一切正常,您可以确认 yes 的默认值。 如果需要重新开始,请选择 no

第一次定义任何依赖项时,Composer 将创建一个 vendor 文件夹。 所有依赖项都安装到此 vendor 文件夹中。 Composer 还会创建一个 composer.lock 文件。 此文件指定项目中使用的每个依赖项和子依赖项的 exact 版本。 这确保了运行程序的任何机器都将使用每个包的完全相同的版本。

注意: 永远不要将 vendor 文件夹提交到您的版本控制系统 (VCS)。 vendor 文件夹仅包含您从其他供应商处安装的软件包。 这些单独的供应商将在自己的版本控制系统中维护自己的代码。 您应该只跟踪您编写的代码。 无需提交 vendor 文件夹,您只需提交 composer.jsoncomposer.lock 文件。 您可以在 如何使用 Git:参考指南 中了解有关忽略特定文件的更多信息。


现在您已经安装了 PHP,并且可以使用 Composer 管理您的项目依赖项,您已经准备好测试您的环境了。

第 3 步 — 测试 PHP 环境

要测试您的系统是否为 PHP 正确配置,您可以创建并运行一个基本的 PHP 脚本。 调用此脚本 hello.php

nano hello.php

这将打开一个空白文件。 将以下文本(有效的 PHP 代码)放入文件中:

你好.php

<?php
echo 'Hello World!';
?>

添加文本后,保存并关闭文件。 您可以通过按住 CTRL 键并按下 x 键来执行此操作。 然后选择y并按ENTER

现在您可以进行测试以确保 PHP 正确处理您的脚本。 输入 php 告诉 PHP 处理文件,后跟文件名:

php hello.php

如果 PHP 处理正确,您将只看到引号内的字符:

OutputHello World!

PHP 已成功处理脚本,这意味着您的 PHP 环境已成功安装,您已准备好继续您的编程之旅。

结论

此时,您已经在 Ubuntu 系统上设置了 PHP 8.1 编程环境,可以开始编码项目了。

在开始编码之前,您可能需要设置一个集成开发环境 (IDE)。 虽然有许多 IDE 可供选择,但 VS Code 是一个受欢迎的选择,因为它提供了许多强大的功能,例如图形界面、语法高亮和调试。

在您的本地机器准备好进行软件开发后,您可以按照 如何在 PHP 中使用字符串 继续了解有关 PHP 编码的更多信息。