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

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

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

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]删除
最新教程 更多>
  • 如何为Apache PHP应用程序配置环境变量?
    如何为Apache PHP应用程序配置环境变量?
    Apache PHP 应用程序的环境变量配置开发依赖环境变量的 PHP 应用程序时,必须清楚地了解如何配置环境变量使用 Apache 时设置这些变量。本文旨在提供有关配置可在 PHP 中访问的环境变量的指导,确保 Web 应用程序的正确运行。具体来说,为同一服务器中的各个域配置单独的环境变量是一种常...
    编程 发布于2024-11-08
  • 如何从 Activity 访问 ViewPager 片段方法?
    如何从 Activity 访问 ViewPager 片段方法?
    从 Activity 访问 ViewPager Fragment 方法许多移动应用程序使用片段,即代表模块化屏幕部分的独立组件。使用视图分页器管理多个片段可实现流畅的导航和页面动画。有时,开发人员需要在片段中执行特定操作以响应外部事件,例如用户在视图寻呼机上滑动。然而,实现此功能可能会遇到某些挑战。...
    编程 发布于2024-11-08
  • 如何在 Python 中按列值对散点图着色?
    如何在 Python 中按列值对散点图着色?
    按列值对散点图着色在 Python 中,Matplotlib 库提供了多种自定义散点图美观的方法。一项常见任务是根据特定列中的值分配颜色。Seaborn 集成一种解决方案是利用基于 Matplotlib 构建的 Seaborn 库。 Seaborn 提供 sns.relplot 和 sns.Face...
    编程 发布于2024-11-08
  • 为什么 fmt.Printf 显示负整数的二进制表示与 Go 中预期的不同?
    为什么 fmt.Printf 显示负整数的二进制表示与 Go 中预期的不同?
    二进制补码和 fmt.Printf:解开二进制表示之谜处理有符号整数时,计算机使用二进制补码来表示负值。这与典型的二进制表示不同,其中符号由单独的位指示。例如,在二进制补码中,整数 -5 表示为 1111 1011。但是,使用 fmt.Printf 打印二进制表示形式可能会产生意外结果。例如,以下代...
    编程 发布于2024-11-08
  • 读取控制台输入
    读取控制台输入
    InputStream读取方法: read():允许您直接从流中读取字节。 read()的三个版本: int read():读取单个字节并在流末尾返回-1。 int read(byte data[]):读取字节,直到数据数组填满、到达流末尾或发生错误。返回读取的字节数,如果到达流末尾则返回 -1。 ...
    编程 发布于2024-11-08
  • PHP 构造函数属性推广初学者指南
    PHP 构造函数属性推广初学者指南
    PHP 8 引入了一个名为 构造函数属性提升 的奇妙功能。如果您是 PHP 或一般编程新手,这可能听起来有点复杂。但别担心!本博客将通过大量编码示例向您介绍它是什么、为什么有用以及如何使用它。开始吧! 什么是建筑商财产促销? 在 PHP 8 之前,创建具有属性的类并在构造函数中初始化...
    编程 发布于2024-11-08
  • 如何使用 CNTLM 访问工作场所代理后面的 pip?
    如何使用 CNTLM 访问工作场所代理后面的 pip?
    与 CNTLM 的 PIP 代理连接要使用 CNTLM 访问工作场所代理后面的 pip,用户可能会遇到 --proxy 选项的问题。然而,利用环境变量提供了可靠的解决方案。CNTLM 配置验证可以通过运行“cntlm.exe -c cntlm.ini -I -M http://google.com”...
    编程 发布于2024-11-08
  • 如何使用 MySQL 数据库中的时间序列数据填充 JFreechart TimeSeriesCollection?
    如何使用 MySQL 数据库中的时间序列数据填充 JFreechart TimeSeriesCollection?
    从 MySQL DB 填充 JFreechart TimeSeriesCollection此问题旨在使用 JFreechart TimeSeriesCollection 显示一个月中几天的温度变化。然而,最初的实现面临着从数据库中准确读取数据的挑战。时序数据的精确读取要解决数据读取问题,需要考虑之间...
    编程 发布于2024-11-08
  • ValueError:无法将 NumPy 数组转换为张量 - 已解决?
    ValueError:无法将 NumPy 数组转换为张量 - 已解决?
    ValueError: Failed to Convert NumPy Array to Tensor问题描述尝试使用 TensorFlow 训练具有 LSTM 层的神经网络时,出现以下情况发生错误:ValueError: Failed to convert a NumPy array to a T...
    编程 发布于2024-11-08
  • 为什么Java重载不能基于返回类型?
    为什么Java重载不能基于返回类型?
    Java 中的返回类型重载:不兼容尽管 Java 具有多方面的功能,但该语言在重载函数时还是存在限制仅通过更改返回类型。这就提出了一个常见的问题:为什么 Java 禁止这样的重载?答案在于重载的基本性质。重载允许多个具有相同名称的函数共存于一个类中,并通过它们的参数签名进行区分。然而,当返回类型也用...
    编程 发布于2024-11-08
  • 强密码生成器
    强密码生成器
    看看我做的这支笔!
    编程 发布于2024-11-08
  • Angular 和 15 的改进
    Angular 和 15 的改进
    1) 在没有构造函数的情况下在 Angular 14 中使用注入注入服务。 以前,注入任何服务总是需要具有构造函数的类: class MyClass { constructor(private myService: MyService) {} } 现在,我们可以在函数和类中注入服务。我们只需要声...
    编程 发布于2024-11-08
  • 面向对象编程:掌握 DSA 的第一步
    面向对象编程:掌握 DSA 的第一步
    Imagine you're walking through a bustling factory. You see different machines, each designed for a specific purpose, working together to create a fina...
    编程 发布于2024-11-08
  • 如何修复 Android 中的“java.lang.String 类型的值无法转换为 JSONObject”错误?
    如何修复 Android 中的“java.lang.String 类型的值无法转换为 JSONObject”错误?
    排除“java.lang.String 类型的值\u003cbr\u003e 无法转换为 JSONObject”错误在您的 Android 应用程序中,您遇到与 JSON 解析相关的错误。具体来说,您会看到以下异常:org.json.JSONException: Value <br of t...
    编程 发布于2024-11-08
  • 如何在 JavaScript 中强制硬刷新并防止缓存问题?
    如何在 JavaScript 中强制硬刷新并防止缓存问题?
    解决 JavaScript 缓存问题:使用 JavaScript 清除缓存部署新的 JavaScript 代码时,看不到反映的最新更新是令人沮丧的。此问题通常是由于缓存的浏览器响应而引起的。为了消除这个问题,我们可以利用 JavaScript 函数 window.location.reload(tr...
    编程 发布于2024-11-08

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

Copyright© 2022 湘ICP备2022001581号-3