作者选择Open Sourcing Mental Illness Ltd作为Write for DOnations计划的一部分接受捐赠。
简介
PHP是一种流行的服务器脚本语言,以创建动态和交互式网页而闻名。使用你所选择的语言并开始运行是学习编程的第一步。
本教程将指导你在Ubuntu上安装PHP 7.4,并通过命令行建立一个本地编程环境。还将安装一个依赖管理器,Composer,并通过运行一个脚本来测试安装。
前提条件
要完成本教程,你需要一台安装了Ubuntu 18.04的本地或虚拟机,并有管理权限和互联网连接到该机器。你可以通过Ubuntu发布页面下载这个操作系统。
第一步 - 设置PHP 7.4
你将在命令行上完成安装和设置,这是一种与计算机交互的非图形化方式。也就是说,不是点击按钮,而是输入文字,并通过文字接收计算机的反馈。
命令行,也被称为shell或终端,可以帮助你修改和自动化你每天在计算机上做的许多任务,是软件开发人员的一个重要工具。有许多终端命令需要学习,可以使你做更强大的事情。文章《Linux终端简介》可以让你更好地掌握终端。
在Ubuntu上,你可以通过点击屏幕左上角的Ubuntu图标,在搜索栏中输入terminal ,找到终端程序。点击终端应用程序的图标来打开它。或者,你可以同时敲击键盘上的CTRL 、ALT 和T 键来自动打开终端应用程序。

要避免依赖默认的PHP版本,因为默认版本可能会根据运行代码的地方而改变。你也可能希望安装一个不同的版本来匹配你正在使用的应用程序,或者升级到一个较新的版本,如 PHP 8。
运行下面的命令来更新apt-get 本身,这可以确保你可以访问你想安装的任何东西的最新版本。
sudo apt-get update
接下来,安装software-properties-common ,它增加了对其他软件源的管理。
sudo apt -y install software-properties-common
-y 标志将自动同意该安装。如果没有这个,每次安装时你都会在终端窗口收到提示。
接下来,安装版本库ppa:ondrej/php ,它将为你提供所有的 PHP 版本。
sudo add-apt-repository ppa:ondrej/php
最后,再次更新apt-get ,这样你的软件包管理器就可以看到新列出的软件包。
sudo apt-get update
现在准备用下面的命令来安装 PHP 7.4。
sudo apt -y install php7.4
检查已安装的版本。
php -v
你会收到与下面类似的东西。
OutputPHP 7.4.0beta4 (cli) (built: Aug 28 2019 11:41:49) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v7.4.0beta4, Copyright (c), by Zend Technologies
除了PHP本身,你可能还想安装一些额外的PHP模块。可以用这个命令来安装额外的模块,把 PACKAGE_NAME换成你想安装的包。
sudo apt-get install php7.4-PACKAGE_NAME
你也可以一次安装多个软件包。下面是一些你最可能要安装的最常见的模块的建议。
sudo apt-get install -y php7.4-cli php7.4-json php7.4-common php7.4-mysql php7.4-zip php7.4-gd php7.4-mbstring php7.4-curl php7.4-xml php7.4-bcmath
这个命令将安装以下模块。
php7.4-cli- 命令解释器,对于从 shell 测试 PHP 脚本或执行一般的 shell 脚本任务很有用php7.4-json- 用于处理JSON数据php7.4-common- PHP的文档、例子和常用模块php7.4-mysql- 用于处理MySQL数据库的工作php7.4-zip- 用于处理压缩文件php7.4-gd- 用于处理图像php7.4-mbstring- 用于管理非 ASCII 字符串php7.4-curl- 让你在PHP中进行HTTP请求php7.4-xml- 用于处理XML数据php7.4-bcmath- 用于处理精确的浮点数
与Apache相关的PHP配置被存储在/etc/php/7.4/apache2/php.ini 。可以用下面的命令列出所有加载的 PHP 模块。
php -m
你已经安装了 PHP 并验证了你所运行的版本。还安装了任何需要的 PHP 模块,并且能够列出已经加载的模块。
你可以现在就开始使用 PHP,但你很可能想使用各种库来快速建立 PHP 应用程序。在测试你的PHP环境之前,首先为你的项目设置一个依赖管理器。
第2步 - 为依赖性管理设置Composer(可选
库是一个代码的集合,可以帮助你解决常见的问题,而不需要自己编写所有的东西。由于有很多库可用,随着你在编写PHP方面的经验增加,使用一个依赖性管理器将帮助你管理多个库。
Composer是一个在PHP中进行依赖性管理的工具。它允许你声明你的项目所依赖的库,并将管理安装和更新这些包。
尽管相似,Composer并不是像yum 或apt 那样的包管理器。它处理 "包 "或库,但它在每个项目的基础上管理它们,将它们安装在你的项目中的一个目录中(例如:vendor )。默认情况下,它不会在全局安装任何东西。因此,它是一个_依赖性管理器_。然而,它确实支持一个全局项目,以方便通过global 命令。
这个想法并不新鲜,Composer受到了Node的npm 和Ruby的bundler 的强烈启发。
假设。
- 你有一个依赖几个库的项目。
- 其中一些库依赖于其他库。
Composer。
- 使你能够声明你所依赖的库。
- 找出哪些版本的软件包可以和需要被安装,并通过下载它们来安装到你的项目中。
- 使你能够在一个命令中更新你所有的依赖。
- 使你能够看到基本用法一章中关于声明依赖关系的更多细节。
简而言之,有两种方法来安装Composer:在本地作为你项目的一部分,或者在全局作为系统范围内的可执行文件。无论哪种方式,你都将从本地安装开始。
本地安装
要在当前目录下快速安装Composer,在终端运行这个脚本。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
这个安装脚本会检查一些php.ini 的设置,如果设置不正确会发出警告,然后在当前目录下下载最新的composer.phar 。这四行将依次进行。
- 下载安装程序到当前目录
- 验证安装程序的SHA-384,你也可以在这里进行交叉检查
- 运行安装程序
- 删除安装程序
安装程序会检查一些PHP设置,然后下载composer.phar 到你的工作目录。这个文件是Composer的二进制文件。它是一个PHAR(PHP归档文件),它是PHP的一种归档格式,可以在命令行上运行,除此之外。
为了运行 Composer,你使用php composer.phar 。作为一个例子,运行这个命令可以看到你所安装的Composer的版本。
php composer.phar --version
为了在本地使用Composer,你希望你的composer.phar 文件在你项目的根目录下。你可以在安装Composer之前在你的项目目录下开始。你也可以在安装后移动该文件。你也可以通过使用--install-dir 选项将Composer安装到一个特定的目录,另外使用--filename 选项将其(重新)命名。
由于Composer是跨项目使用的东西,建议你继续到下一部分,将Composer设置为全局运行。
在全球范围内
你可以把Composer PHAR放在任何你希望的地方。如果你把它放在一个属于你的$PATH ,你就可以在全球范围内访问它。你甚至可以让它在Ubuntu(和其他Unix系统)上执行,不直接使用PHP解释器就可以调用它。
在本地安装后,运行此命令将composer.phar 移到你的路径中的一个目录。
sudo mv composer.phar /usr/local/bin/composer
如果你想只为你的用户安装它,避免需要root权限,你可以使用~/.local/bin ,它在一些Linux发行版中是默认可用的。
mv composer.phar ~/.local/bin/composer
现在要运行Composer,使用composer ,而不是php composer.phar 。要检查你的Composer版本,请运行。
composer --version
作为最后一步,你可以选择用composer init 来初始化你的项目。这将创建composer.json 文件来管理你的项目依赖关系。初始化项目还可以让你定义项目细节,如作者和许可证,并使用Composer的自动加载功能。你可以现在就定义依赖关系,或者以后再添加。
运行这个命令来初始化一个项目。
composer init
运行这个命令将启动设置向导。你在向导中输入的细节可以在以后更新,所以你可以随意保留默认值,只按ENTER 。如果你还没有准备好安装任何依赖,你可以选择no 。在每个提示下输入你的详细信息。
OutputThis command will guide you through creating your composer.json config.
Package name (sammy/php_install): sammy/project1
Description []:
Author [Sammy <sammy@digitalocean.com>, n to skip]:
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
{
"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 文件。这个文件指定了项目中使用的每个依赖项和子依赖项的确切版本。这保证了你的程序在任何机器上运行时,都会使用完全相同版本的软件包。
注意: vendor 文件夹不应该被提交到你的版本控制系统(VCS)。vendor 文件夹只包含你从其他供应商那里安装的软件包。那些单独的供应商将在他们自己的版本控制系统中维护他们自己的代码。你应该只跟踪你编写的代码。你不需要提交vendor 文件夹,而只需要提交你的composer.json 和composer.lock 文件。你可以在《如何使用Git》中了解更多关于忽略特定文件的信息。A Reference Guide》中了解更多关于忽略特定文件的信息。
现在已经安装了 PHP,并使用 Composer 来管理项目的依赖关系,可以准备测试环境了。
第3步 - 测试PHP环境
为了测试系统对 PHP 的配置是否正确,可以创建并运行一个基本的 PHP 脚本。将此脚本称为hello.php 。
sudo nano hello.php
这将打开一个空白文件。在该文件中放入以下文本,这是有效的PHP代码。
hello.php
<?php
echo 'Hello World!';
?>
一旦你添加了文本,保存并关闭该文件。你可以通过按住CTRL 键和按x 键来做到这一点。然后选择y ,并按下ENTER 。
现在你可以测试一下,确保PHP正确地处理你的脚本。键入php 来告诉 PHP 处理该文件,然后是文件的名称。
php hello.php
如果 PHP 处理得当,你将只看到引号内的字符。
OutputHello World!
PHP已经成功处理了该脚本,这意味着你的PHP环境已经成功安装,你可以继续你的编程之旅了。
总结
至此,你已经在本地Ubuntu机器上建立了一个PHP 7.4的编程环境,可以开始一个编码项目。
在开始编码之前,你可能想设置一个集成开发环境(IDE)。虽然有很多IDE可以选择,但VS Code是一个很受欢迎的选择,因为它提供了很多强大的功能,如图形界面、语法高亮和调试。
当你的本地机器准备好进行软件开发时,你可以通过学习《如何在PHP中使用字符串》继续学习更多关于PHP的编码。