如何在Ubuntu 18.04上安装PHP 7.4并搭建本地开发环境

引言

PHP是一种流行的服务器脚本语言,用于创建动态和交互式web页面。开始使用你选择的语言是学习编程的第一步。

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

前期准备

要完成本教程,您需要安装Ubuntu 18.04的本地或虚拟机,并具有管理权限和到该机器的互联网连接。您可以通过Ubuntu发布页面下载此操作系统。

第1步 设置PHP 7.4

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

命令行,也称为shell或终端,可以帮助您修改和自动化您每天在计算机上执行的许多任务,是软件开发人员的一个重要工具。要学习许多终端命令,它们可以让你做更强大的事情。这篇介绍Linux终端的文章可以让你更好地适应终端。

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

您需要避免依赖PHP的默认版本,因为默认版本可能会根据您运行代码的位置更改。您可能还希望安装一个不同的版本以匹配您正在使用的应用程序,或者升级到较新的版本,如PHP 8。

运行以下命令来更新apt-get本身,它确保你可以访问你想要安装的任何内容的最新版本:

shell 复制代码
sudo apt-get update

接下来,安装software-properties-common,它可以管理额外的软件资源:

shell 复制代码
sudo apt -y install software-properties-common

-y标志将自动同意安装。如果不这样做,每次安装都会在终端窗口中收到一个提示。

接下来,安装ppa:ondrej/php仓库,它将提供所有版本的PHP:

shell 复制代码
sudo add-apt-repository ppa:ondrej/php

最后,再次更新apt-get,让你的包管理器可以看到新列出的包:

shell 复制代码
sudo apt-get update

现在您可以使用以下命令安装PHP 7.4了:

shell 复制代码
sudo apt -y install php7.4

检查安装的版本:

shell 复制代码
php -v

你看到类似下面的内容:

shell 复制代码
OutputPHP 7.4.0beta4 (cli) (built: Aug 28 2019 11:41:49) ( NTS )ight (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==

shell 复制代码
sudo apt-get install php7.4-PACKAGE_NAME

你也可以一次安装多个包。以下是一些你最可能需要安装的常用模块:

shell 复制代码
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模块:

shell 复制代码
php -m

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

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

第2步 设置Composer进行依赖管理(可选)

库是一组代码,可以帮助你解决常见问题,而不需要自己编写所有内容。由于有许多可用的库,使用依赖管理器将帮助您管理多个库,从而提高编写PHP的经验。

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

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

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

设想:

  • 你有一个项目依赖于几个库。
  • 其中一些库依赖于其他库。

Composer:

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

简而言之,有两种安装Composer的方法:作为项目的一部分在本地安装,或者作为系统范围内可执行的全局安装。无论哪种方式,都需要从本地安装开始。

本地安装

要在本地快速安装Composer,请在终端中运行此脚本:

shell 复制代码
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版本:

shell 复制代码
php composer.phar --version

要在本地使用Composer,你需要将composer.phar文件放在项目的根目录下。你可以在安装Composer之前从你的项目目录开始。你也可以在安装后移动文件。你也可以使用--install-dir选项将Composer安装到特定的目录中,并使用--filename选项(重新)命名它。

由于Composer是跨项目使用的,因此建议您继续阅读下一部分,并将Composer设置为全局运行。

全局安装

您可以将Composer PHAR放置在您希望的任何位置。如果你把它放在$PATH目录下,你可以全局访问它。您甚至可以使它在Ubuntu(和其他Unix系统)上可执行,并在不直接使用PHP解释器的情况下调用它。

本地安装完成后,运行以下命令将composer.phar移动到当前路径下的目录:

shell 复制代码
sudo mv composer.phar /usr/local/bin/composer

如果你只想为自己的用户安装它,并避免需要root权限,你可以使用~/.local/bin,它在一些Linux发行版中默认可用:

shell 复制代码
mv composer.phar ~/.local/bin/composer

现在要运行Composer,请使用composer而不是php composer.phar。要检查你的Composer版本,请运行:

shell 复制代码
composer --version

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

运行这个命令来初始化一个项目:

shell 复制代码
composer init

运行此命令将启动安装向导。您在向导中输入的详细信息稍后可以更新,因此可以保留默认值,只需按ENTER。如果你不准备安装任何依赖项,你可以选择no。在每个提示框中输入你的详细信息:

shell 复制代码
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文件夹只包含您从其他供应商安装的软件包。这些供应商将在自己的版本控制系统中维护自己的代码。您应该只跟踪您编写的代码。你只需要提交你的composer.jsoncomposer.lock文件,而不是提交vendor文件夹。

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

第3步 测试PHP环境

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

shell 复制代码
sudo nano hello.php

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

hello.php

php 复制代码
<?php
echo 'Hello World!';
?>

一旦添加了文本,保存并关闭文件。你可以按住CTRL键,按下x键。然后选择yENTER

现在您可以测试,以确保PHP正确地处理您的脚本。键入php来告诉php处理文件,然后是文件的名称:

shell 复制代码
php hello.php

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

shell 复制代码
OutputHello World!

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

总结

至此,您已经在本地Ubuntu机器上设置了PHP 7.4编程环境,可以开始编码项目了。

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

相关推荐
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端