”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 在本地计算机上安装 PHP 和 Composer,无需 XAMPP 或 MAMP

在本地计算机上安装 PHP 和 Composer,无需 XAMPP 或 MAMP

发布于2024-11-03
浏览:988

Install PHP and composer in local machine without XAMPP or MAMP

在计算机上安装 PHP 和 Composer 的综合指南

PHP 是最流行的服务器端脚本语言之一,广泛用于 Web 开发。另一方面,Composer 是 PHP 的依赖关系管理器,可以简化项目中的库和包的管理。在本指南中,我们将逐步介绍在您的计算机上本地安装 PHP 和 Composer 的步骤,重点介绍这种方法相对于使用 XAMPP 或 MAMP 等捆绑解决方案的优势。

先决条件

在我们开始之前,请确保您的系统满足以下要求:

  • 有效的互联网连接。
  • 您计算机上的管理权限。

第 1 步:安装 PHP

原生安装 PHP 可以提供更好的性能,并且是一种更专业的方法,特别是对于生产环境。以下是跨不同操作系统执行此操作的方法:

在 Windows 上

  1. 下载 PHP:

    • 访问 PHP 下载页面并下载最新版本的 PHP。为您的系统选择适当的版本(线程安全)。
  2. 提取PHP:

    • 将下载的 ZIP 文件解压到您选择的目录,例如 C:\php。
  3. 配置环境变量:

    • 打开系统属性(右键单击“此电脑”>“属性”>“高级系统设置”)。
    • 单击“环境变量”。
    • 在“系统变量”下,找到“Path”变量并单击“编辑”。
    • 添加 PHP 目录的路径(例如 C:\php)。
  4. 验证安装:

    • 打开命令提示符并输入 php -v。您应该会看到显示的 PHP 版本。

在 macOS 上

  1. 安装Homebrew(如果未安装):

    • 打开终端并运行以下命令:
     /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. 安装PHP:

    • 在终端中运行以下命令:
     brew install php
    
  3. 验证安装:

    • 安装后,检查 PHP 版本:
     php -v
    

在 Linux 上

  1. 更新包索引:

    • 打开终端并运行:
     sudo apt update
    
  2. 安装PHP:

    • 对于 Ubuntu,运行:
     sudo apt install php
    
  • 对于 CentOS,运行:

     sudo yum install php
    
  1. 验证安装:

    • 检查PHP版本:
     php -v
    

为什么要原生安装?

虽然 XAMPP 和 MAMP 等工具提供了设置开发环境的便捷方法,但它们可能会带来不必要的开销和复杂性。本机安装通常更高效,可以实现更好的资源管理、性能调整以及对 PHP 环境更精细的了解。

第 2 步:安装 Composer

Composer 可以全局安装,允许您管理所有 PHP 项目的依赖关系。

在 Windows 上

  1. 下载 Composer 安装程序:

    • 访问 Composer 下载页面并下载 Composer-Setup.exe 文件。
  2. 运行安装程序:

    • 执行下载的文件并按照说明进行操作。它会自动检测您的 PHP 安装。
  3. 验证安装:

    • 打开命令提示符并键入:
     composer -V
    

在 macOS 和 Linux 上

  1. 下载作曲家:

    • 打开终端并运行以下命令:
     curl -sS https://getcomposer.org/installer | php
    
  2. 将 Composer 移至全局目录:

    • 下载后,将 Composer 移动到 PATH 中的目录:
     sudo mv composer.phar /usr/local/bin/composer
    
  3. 验证安装:

    • 检查Composer版本:
     composer -V
    

结论

您已经在您的机器上成功安装了 PHP 和 Composer!通过选择本机安装,您可以确保更好的性能和更专业的设置。 Composer 将允许您轻松管理库和依赖项,使您的项目保持井井有条并保持最新状态。

请随意探索官方文档以获取更高级的用法和最佳实践:

  • PHP 文档
  • 作曲家文档

编码愉快!


请随意评论文章的任何部分!

版本声明 本文转载于:https://dev.to/mustafa-sabah/install-php-and-composer-in-local-machine-without-xampp-or-mamp-1170?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-07-22
  • 如何使用Python有效地以相反顺序读取大型文件?
    如何使用Python有效地以相反顺序读取大型文件?
    在python 反向行读取器生成器 == ord('\ n'): 缓冲区=缓冲区[:-1] 剩余_size- = buf_size lines = buffer.split('\ n'....
    编程 发布于2025-07-22
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示Achieving Text-Only Extraction with Python's MLStripperTo streamline the stripping process, the Python standard librar...
    编程 发布于2025-07-22
  • 对象拟合:IE和Edge中的封面失败,如何修复?
    对象拟合:IE和Edge中的封面失败,如何修复?
    To resolve this issue, we employ a clever CSS solution that solves the problem:position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%)...
    编程 发布于2025-07-22
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-07-22
  • 如何使用组在MySQL中旋转数据?
    如何使用组在MySQL中旋转数据?
    在关系数据库中使用mySQL组使用mySQL组进行查询结果,在关系数据库中使用MySQL组,转移数据的数据是指重新排列的行和列的重排以增强数据可视化。在这里,我们面对一个共同的挑战:使用组的组将数据从基于行的基于列的转换为基于列。 Let's consider the following ...
    编程 发布于2025-07-22
  • 如何将来自三个MySQL表的数据组合到新表中?
    如何将来自三个MySQL表的数据组合到新表中?
    mysql:从三个表和列的新表创建新表 答案:为了实现这一目标,您可以利用一个3-way Join。 选择p。*,d.content作为年龄 来自人为p的人 加入d.person_id = p.id上的d的详细信息 加入T.Id = d.detail_id的分类法 其中t.taxonomy =...
    编程 发布于2025-07-22
  • 使用jQuery如何有效修改":after"伪元素的CSS属性?
    使用jQuery如何有效修改":after"伪元素的CSS属性?
    在jquery中了解伪元素的限制:访问“ selector 尝试修改“:”选择器的CSS属性时,您可能会遇到困难。 This is because pseudo-elements are not part of the DOM (Document Object Model) and are th...
    编程 发布于2025-07-22
  • Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    在ASP.NET async void void async void void void void void的设计无需返回asynchroncon而无需返回任务对象。他们在执行过程中增加未偿还操作的计数,并在完成后减少。在某些情况下,这种行为可能是有益的,例如未期望或明确预期操作结果的火灾和...
    编程 发布于2025-07-22
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制在PHP中,多次定义一个相同名称的函数是一个no-no。尝试这样做,如提供的代码段所示,将导致可怕的“不能重新列出”错误。 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_re...
    编程 发布于2025-07-22
  • 如何从PHP中的数组中提取随机元素?
    如何从PHP中的数组中提取随机元素?
    从阵列中的随机选择,可以轻松从数组中获取随机项目。考虑以下数组:; 从此数组中检索一个随机项目,利用array_rand( array_rand()函数从数组返回一个随机键。通过将$项目数组索引使用此键,我们可以从数组中访问一个随机元素。这种方法为选择随机项目提供了一种直接且可靠的方法。
    编程 发布于2025-07-22
  • CSS可以根据任何属性值来定位HTML元素吗?
    CSS可以根据任何属性值来定位HTML元素吗?
    靶向html元素,在CSS 中使用任何属性值,在CSS中,可以基于特定属性(如下所示)基于特定属性的基于特定属性的emants目标元素: 字体家庭:康斯拉斯(Consolas); } 但是,出现一个常见的问题:元素可以根据任何属性值而定位吗?本文探讨了此主题。的目标元素有任何任何属性值,属...
    编程 发布于2025-07-22
  • Go语言垃圾回收如何处理切片内存?
    Go语言垃圾回收如何处理切片内存?
    Garbage Collection in Go Slices: A Detailed AnalysisIn Go, a slice is a dynamic array that references an underlying array.使用切片时,了解垃圾收集行为至关重要,以避免潜在的内存泄...
    编程 发布于2025-07-22
  • 在Pandas中如何将年份和季度列合并为一个周期列?
    在Pandas中如何将年份和季度列合并为一个周期列?
    pandas data frame thing commans date lay neal and pree pree'和pree pree pree”,季度 2000 q2 这个目标是通过组合“年度”和“季度”列来创建一个新列,以获取以下结果: [python中的concate...
    编程 发布于2025-07-22
  • CSS强类型语言解析
    CSS强类型语言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    编程 发布于2025-07-22

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3