如何在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本身,它确保你可以访问你想要安装的任何内容的最新版本:

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 )ight (c) The PHP Group
Zend Engine v3.4.0-dev, Copyright (c) Zend Technologieswith 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不是与yumapt相同意义上的包管理器。它处理包或库,但它以每个项目为基础管理它们,将它们安装在一个目录中(例如: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文件夹只包含您从其他供应商安装的软件包。这些供应商将在自己的版本控制系统中维护自己的代码。您应该只跟踪您编写的代码。你只需要提交你的composer.jsoncomposer.lock文件,而不是提交vendor文件夹。

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

第3步 测试PHP环境

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

sudo nano hello.php

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

hello.php

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

一旦添加了文本,保存并关闭文件。你可以按住CTRL键,按下x键。然后选择yENTER
现在您可以测试,以确保PHP正确地处理您的脚本。键入php来告诉php处理文件,然后是文件的名称:

php hello.php

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

OutputHello World!

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

总结

至此,您已经在本地Ubuntu机器上设置了PHP 7.4编程环境,可以开始编码项目了。
在开始编码之前,您可能需要设置一个集成开发环境(IDE)。虽然有许多IDE可供选择,但VS Code是一个流行的选择,因为它提供了许多强大的功能,如图形界面、语法高亮和调试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/54483.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React 使用 useRef() 获取循环中所有子组件实例

目录 背景思考实现完整代码&#xff1a;成功运行后的界面如下&#xff1a; 知识点总结uesRef() 作对象处理useImperativeHandle() 父组件操作引入子组件的内部方法最后 背景 之前项目中使用了antd pro 中的 可编辑表格 (EditableProTable)&#xff0c;在页面中表格要经过多层遍…

vue实现表格的动态高度

需求:表格能够根据窗口的大小自动适配页面高度 防抖和节流函数的使用场景是当需要对频繁触发的事件进行限制时,例如: 防抖函数常用于限制用户在短时间内多次触发某一事件,例如搜索框输入并搜索,当用户一直在输入时,我们可以使用防抖函数来避免多次请求搜索结果,减轻服…

Http与Https

1.简单介绍 HTTP&#xff1a;最广泛应用的网络通信协议&#xff0c;基于TCP&#xff0c;数据传输简单高效&#xff0c;数据是明文。 HTTPS&#xff1a;是HTTP的加强版&#xff0c;是HTTPSSL。在HTTP的基础上加了安全机制&#xff0c;一方面保证数据的安全传输&#xff0c;另一…

【UniApp开发小程序】私聊功能后端实现 (买家、卖家 沟通商品信息)【后端基于若依管理系统开发】

声明 本文提炼于个人练手项目&#xff0c;其中的实现逻辑不一定标准&#xff0c;实现思路没有参考权威的文档和教程&#xff0c;仅为个人思考得出&#xff0c;因此可能存在较多本人未考虑到的情况和漏洞&#xff0c;因此仅供参考&#xff0c;如果大家觉得有问题&#xff0c;恳…

【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页

【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页 文章目录 一、前言二、安装和基本使用1. 添加依赖2. 基础配置和初始化 三、实际业务中的用法1. 与 API 集成2. 错误处理 四、完整示例1. 创建一个无限滚动列表2. 使用在你的应用中3. 完整代码示例 五、总…

VSCode如何为远程安装预设(固定)扩展

背景 在使用VSCode进行远程开发时&#xff08;python开发之远程开发工具选择_CodingInCV的博客-CSDN博客&#xff09;&#xff0c;特别是远程的机器经常变化时&#xff08;如机器来源于动态分配&#xff09;&#xff0c;每次连接新的远程时&#xff0c;都不得不手动安装一些开…

Unity - MenuItem特性

MenuItem(string itemName, bool isValidateFunction, int priority) 参数1&#xff1a;菜单名 参数2&#xff1a;是否使用自定义条件控制菜单项是否可点击&#xff0c;默认为false&#xff0c;一般不赋值&#xff0c;需要用的话需要定义两个MenuItem MenuItem 1 : 自定义条件…

Springboot_Redis

Springboot默认使用lettuce操作redis,底层是netty jdeis并发差些 Redis的Template 分为两种, 一种是StringRedisTemplate&#xff0c;另一种是RedisTemplate 根据不同的数据类型&#xff0c;大致的操作也分为这5种&#xff0c;以StringRedisTemplate为例 stringRedisTempla…

软件设计师学习笔记5-流水线技术

目录 1.流水线的概念 2.流水线计算 2.1流水线周期及执行时间 2.2流水线吞吐量 1.流水线的概念 考点&#xff1a;相关参数计算&#xff1a;流水线执行时间计算、流水线吞吐率、流水线加速比、流水线效率(后两者的计算中级不考) 流水线是指在程序执行时多条指令重叠进行操作…

聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化

聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化 目录 聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化&#xff0c;聚类结果可视化&#xff0c;MATLAB程…

Maven的超级POM

对于我们创建的一个maven工程&#xff0c;即便我们自己的pom.xm文件中没有明确指定一个父工程&#xff08;父POM&#xff09;&#xff0c;其实也默认继承了超级POM&#xff0c;就好比JAVA类继承Object类一样。 maven官网关于超级POM的介绍&#xff1a; https://maven.apache.o…

MyBatis plus 多数据源实现

1. 项目背景 最近写文章发布到【笑小枫】小程序和我的个人网站上&#xff0c;因为个人网站用的是halo框架搭建&#xff0c;两边数据结构不一致&#xff0c;导致我每次维护文章都需要两边维护&#xff0c;这就很烦~ 于是&#xff0c;本文就诞生了。通过项目连接这两个数据库&a…

左偏树\可并堆

https://www.luogu.com.cn/problem/P3377 作用&#xff1a;可并堆 形态&#xff1a;堆满二叉树 即左节点最小深度大于等于右节点最小深度 合并过程&#xff1a;

Scikit-learn降维与度量学习代码批注及相关练习

一、代码批注 代码来自&#xff1a;https://scikit-learn.org/stable/auto_examples/decomposition/plot_pca_iris.html#sphx-glr-auto-examples-decomposition-plot-pca-iris-py import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes…

idea连接linux远程docker详细教程操作

1&#xff1a;修改docker配置文件docker.service vi /usr/lib/systemd/system/docker.service2&#xff1a;找到 ExecStart&#xff0c;在最后面添加 -H tcp://0.0.0.0:2375 # for containers run by docker ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/…

F5负载均衡器参与的Kubernetes架构选项介绍

F5负载均衡器在业内有着很高的知名度&#xff0c;因为它不仅是F5的代表作&#xff0c;负载均衡&#xff08;Load Balance&#xff09;这一词汇正是由F5发明并引入国内的。当前&#xff0c;F5的能力不断拓展&#xff0c;从早期聚焦F5负载均衡器到现在的分布式云应用架构&#xf…

Ae 效果:CC Jaws

过渡/CC Jaws Transition/CC Jaws CC Jaws&#xff08;CC 锯齿&#xff09;效果为视频或图像创造独特的锯齿状过渡效果。它允许用户控制中心点、方向、高度、宽度和形状&#xff0c;从而提供多种独特的过渡样式。 ◆ ◆ ◆ 效果属性说明 Completion 完成度 控制过渡效果的完成…

大数据日常运维命令

1、HDFS NameNode /usr/local/fqlhadoop/hadoop/sbin/hadoop-daemon.sh start namenode /usr/local/fqlhadoop/hadoop/sbin/hadoop-daemon.sh stop namenode bin/hdfs haadmin -DFSHAAdmin -getServiceState n1 2、HDFS DataNode /usr/local/fqlhadoop/hadoop/sbin/hadoop-…

探索搜索算法:从顺序到启发式的多种搜索方法

探索搜索算法&#xff1a;从顺序到启发式的多种搜索方法 搜索算法在计算机科学中起着至关重要的作用&#xff0c;帮助我们在大量数据中查找目标值、解决问题&#xff0c;或者找到最优解。本文将深入介绍不同类型的搜索算法&#xff0c;包括顺序搜索、二分搜索、插值搜索、哈希…

Gradio、Streamlit和Dash应用场景和功能比较

文章目录 应用比较GradioStreamlitplotly dash应用比较 gradiostreamlitdash主要使用场景可交互的小demo工作流、Dashboarddashboard、生产环境的复杂演示应用上手难度简单简单中等组件丰富度低中高Jupyter Notebook支持是否是是否完全开源是是部分企业级功能未开源GitHub star…