此教程的早期版本是由 alenaholligan编写的。
介绍
PHP是一个流行的服务器脚本语言,以创建动态和交互式网页而闻名,使用您所选择的语言创建和运行是学习编程的第一步。
本教程将指导您在 Ubuntu 上安装 PHP 8.1 并通过命令行设置本地编程环境,您还将安装依赖管理器 Composer,并通过运行脚本来测试您的安装。
前提条件
要完成本教程,您需要一个本地或虚拟机,安装了Ubuntu 22.04 并具有管理访问和与该机器的互联网连接,您可以通过 Ubuntu 发布页面下载此操作系统。
步骤 1 - 设置 PHP 8.1
您将在命令行上完成安装和设置,这是与您的计算机交互的非图形方式,也就是说,而不是点击按钮,您将键入文本并通过文本收到您的计算机的反馈。
命令行,也被称为壳或终端,可以帮助您修改和自动化您每天在计算机上执行的许多任务,并且是软件开发人员必不可少的工具。
在Ubuntu上,你可以通过点击屏幕的左上角的Ubuntu图标来找到终端应用程序,然后在搜索栏中键入终端
。
<$>[note] 注: Ubuntu 22.04 配备了 PHP 8.1 在其存储库中,这意味着如果您尝试在没有指定版本的情况下安装 PHP,它将使用 8.1。
如果你想在 Ubuntu 22.04 服务器上使用不同的 PHP 版本,你可以使用 phpenv 项目来安装和管理不同的版本。
运行以下命令来更新可用的包列表,然后安装 PHP 8.1:
1sudo apt update
1sudo apt install --no-install-recommends php8.1
不安装推荐
旗帜将确保不安装其他软件包,如Apache Web 服务器。
通过以下命令检查您的PHP版本信息:
1php -v
你会得到这样的输出:
1[secondary_label Output]
2PHP 8.1.2 (cli) (built: Apr 7 2022 17:46:26) (NTS)
3Copyright (c) The PHP Group
4Zend Engine v4.1.2, Copyright (c) Zend Technologies
5 with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
除了PHP本身,您可能还需要安装一些额外的PHP模块,您可以使用这个命令来安装额外的模块,以您想要安装的包代替PACKAGE_NAME
:
1sudo apt-get install php8.1-PACKAGE_NAME
您还可以一次安装多个软件包,以下是您最有可能想要安装的最常见模块的一些建议:
1sudo 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
- 命令解释器,用来测试 PHP 脚本从壳或执行一般 shell 脚本任务php8.1-common
- 文档,示例和常见模块为 PHPphp8.1-mysql
- 用来与 MySQL 数据库php8.1-zip
- 用来与压缩文件php8.1-gd
- 用来与 imagesphp8.1-mbstring
- 用来管理非 ASCII 字符串php8.1-curl
- 让你在 PHPphp8.1-xml
- 用来与 XML 数据_M
与 Apache 相关的 PHP 配置存储在 /etc/php/8.1/apache2/php.ini
. 您可以使用以下命令列出所有加载的 PHP 模块:
1php -m
您已经安装了PHP并验证了您正在运行的版本,您还安装了任何需要的PHP模块,并能够列出您已加载的模块。
您现在可以开始使用PHP,但您可能希望使用各种库快速构建PHP应用程序。
步骤 2 — 设置成份器来管理依赖性(可选)
库是一个代码的集合,可以帮助您解决常见问题,而无需自己写一切. 由于有许多库可用,使用依赖管理器将帮助您管理多个库,因为您在写PHP时变得更有经验。
Composer是PHP中的依赖管理工具,它允许您声明您的项目依赖的库,并将管理安装和更新这些包。
虽然类似,但Composer不是一个包管理器,在同一个意义上是yum
或apt
。它处理包
或库,但它在每个项目的基础上管理它们,安装它们在您的项目内的目录(例如供应商
)中。
这个想法并不新鲜,而Composer的灵感源于Node的npm
和Ruby的bundler
。
假设:
- 您有一个依赖于多个库的项目。
- 其中一些库依赖于其他库。
作曲家:
- 允许您声明您所依赖的库。
- 查找哪些版本的软件包可以和需要安装,并通过将其下载到您的项目中安装它们。
- 允许您在一个命令中更新所有依赖性。
- 允许您查看基本使用章节,了解有关声明依赖性的更多细节。
要安装 Composer,请先下载安装程序,使用以下‘curl’命令:
1curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
接下来,检查下载的安装程序是否匹配了 Composer Public Keys / Signatures页面上发现的最新安装程序的 SHA-384 哈希。
1HASH=`curl -sS https://composer.github.io/installer.sig`
要验证获得的值,您可以运行:
1echo $HASH
1[secondary_label Output]
255ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae
现在,按照Composer 下载页面提供的下面的PHP代码执行,以验证安装脚本是否安全运行:
1php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
你会看到以下的输出:
1[label Output]
2Installer verified
如果输出说安装程序破坏
,你需要再次下载安装脚本并重复检查你是否使用正确的哈希,然后重复验证过程。
要在全球范围内安装composer
,请使用以下命令,下载并安装composer
作为名为composer
的全系统命令,在/usr/local/bin
下:
1sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
您将收到类似于此的输出:
1[secondary_label Output]
2All settings correct for using Composer
3Downloading...
4
5Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer
6Use it: php /usr/local/bin/composer
要测试您的安装,运行:
1composer
您将收到如下的输出:
1[secondary_label Output]
2 ______
3 / ____/___ ____ ___ ____ ____ ________ _____
4 / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
5/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
6\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
7 /_/
8Composer version 2.3.5 2022-04-13 16:43:00
9
10Usage:
11 command [options] [arguments]
12
13Options:
14 -h, --help Display help for the given command. When no command is given display help for the list command
15 -q, --quiet Do not output any message
16 -V, --version Display this application version
17 --ansi|--no-ansi Force (or disable --no-ansi) ANSI output
18 -n, --no-interaction Do not ask any interactive question
19 --profile Display timing and memory usage information
20 --no-plugins Whether to disable plugins.
21 --no-scripts Skips the execution of all scripts defined in composer.json file.
22 -d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.
23 --no-cache Prevent use of the cache
24 -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
25. . .
这验证了 Composer 已成功安装在您的系统上,并且在整个系统中可用。
<$>[注] 注: 如果您希望在您的服务器上托管的每个项目都有单独的 Composer 执行程序,则可以本地安装,每个项目的基础上。
要做到这一点,请使用命令 php /tmp/composer-setup.php
没有任何参数. 此命令将在当前目录中生成一个 composer.phar
文件,您可以使用 php composer.phar
.
<$>
步骤 3 — 在 PHP 项目中使用 Composer
作为最后一步,您可以选择使用composer init
初始化您的项目。这将创建composer.json
文件,以管理您的项目依赖性。初始化项目还允许您定义项目细节,如作者和许可证,并使用Composer的自动加载功能
(https://getcomposer.org/doc/01-basic-usage.md# autoloading)。
首先,创建一个目录,并将其更改为包含您的项目文件:
1cd ~
2mkdir example-project
3cd example-project
现在开始你的项目:
1composer init
运行此命令将启动安装向导. 您在向导中输入的详细信息可以稍后更新,所以请放心离开默认值,只需按ENTER
。 如果您尚未准备好安装任何依赖,您可以选择不
。
1[secondary_label Output]
2
3 Welcome to the Composer config generator
4
5This command will guide you through creating your composer.json config.
6
7Package name (<vendor>/<name>) [sammy/example-project]: sammy/project1
8Description []:
9Author [n to skip]: Sammy <sammy@digitalocean.com>
10Minimum Stability []:
11Package Type (e.g. library, project, metapackage, composer-plugin) []: project
12License []:
13
14Define your dependencies.
15
16Would you like to define your dependencies (require) interactively [yes]? no
17Would you like to define your dev dependencies (require-dev) interactively [yes]? no
18
19Add PSR-4 autoload mapping? Maps namespace "Sammy\Project1" to the entered relative path. [src/, n to skip]: n
20
21{
22 "name": "sammy/project1",
23 "type": "project",
24 "authors": [
25 {
26 "name": "Sammy",
27 "email": "[email protected]"
28 }
29 ],
30 "require": {}
31}
32
33Do you confirm generation [yes]? yes
在您确认生成之前,您将看到composer.json
文件的样本,它将被引导程序创建. 如果一切看起来很好,您可以确认是
的默认值。
第一次定义任何依赖时,Composer 会创建一个供应商
文件夹。 所有依赖都安装在这个供应商
文件夹中。Composer 还会创建一个composer.lock
文件。 此文件指定了您项目中使用的每个依赖和次依赖的 **准确版本。
<$>[note]
注: 供应商
文件夹不应该与您的版本控制系统(VCS)联系在一起。供应商
文件夹只包含您从其他供应商安装的软件包。这些单独的供应商将在自己的版本控制系统中保留自己的代码。您只应该跟踪您写的代码。而不是发送供应商
文件夹,您只需要发送您的composer.json
和composer.lock
文件。您可以在如何使用Git:参考指南
中了解更多有关忽略特定文件的信息。
现在你已经安装了 PHP 和使用 Composer 管理项目依赖的方法,你已经准备好测试你的环境。
步骤三:测试PHP环境
要测试您的系统是否正确配置为PHP,您可以创建并运行一个基本的PHP脚本。
1nano hello.php
这将打开一个空的文件. 将以下文本,即有效的PHP代码,放入文件中:
1[label hello.php]
2<?php
3echo 'Hello World!';
4?>
一旦你添加了文本,保存并关闭文件. 您可以通过握住CTRL
键并按x
键来做到这一点. 然后选择y
并按ENTER
。
现在你可以测试,以确保PHP正确处理你的脚本。输入php
,告诉PHP处理文件,然后是文件名称:
1php hello.php
如果 PHP 被正确处理,你只会看到引文中的字符:
1[secondary_label Output]
2Hello World!
PHP 已经成功处理了脚本,这意味着您的 PHP 环境已成功安装,您已经准备好继续您的编程之旅。
结论
此时,您已在 Ubuntu 系统上设置了 PHP 8.1 编程环境,并可以开始编码项目。
在开始编码之前,您可能需要设置一个集成开发环境(IDE)。虽然有许多IDEs可供选择,但 VS Code是一个流行的选择,因为它提供了许多强大的功能,如图形界面,语法突出和调试。
當您的本地機器準備好進行軟體開發時,您可以依照 How To Work With Strings in PHP繼續學習更多關於PHP的編碼。