全面详尽的 PHP 环境搭建教程

news2024/9/22 19:37:03

目录

目录

PHP 环境搭建概述

在 Windows 上搭建 PHP 环境

使用集成环境 XAMPP

安装步骤

配置和测试

常用配置

手动安装 Apache、PHP 和 MySQL

安装 Apache

安装 PHP

安装 MySQL

配置 PHP 连接 MySQL

在 Linux 上搭建 PHP 环境

使用 LAMP 方案

安装 Apache

安装 MySQL 或 MariaDB

安装 PHP

配置 Apache

重启 Apache

测试 PHP

安装和配置 Nginx、PHP-FPM 和 MySQL

安装 Nginx

安装 PHP-FPM

配置 Nginx

测试 PHP

在 macOS 上搭建 PHP 环境

使用 MAMP 集成环境

安装 MAMP

配置和测试

使用 Homebrew 手动安装

安装 Homebrew

安装 Apache

安装 PHP

安装 MySQL

配置 Apache

测试 PHP

常见问题及解决方案

Apache 无法启动

PHP 脚本不执行,浏览器直接下载

MySQL 无法连接

权限问题

防火墙阻止访问

总结

参考资料


PHP(Hypertext Preprocessor)是一种广泛应用的开源脚本语言,特别适用于 Web 开发,并可嵌入 HTML 中。为了开始使用 PHP,首先需要在本地或服务器上搭建一个 PHP 运行环境。本教程将详细介绍如何在不同操作系统下搭建 PHP 开发环境,包括 Windows、Linux 和 macOS。我们将涵盖手动搭建和使用集成环境两种方式,并提供完整的配置步骤和注意事项,帮助您顺利完成环境搭建。


PHP 环境搭建概述

在开始编写 PHP 程序之前,需要搭建一个能运行 PHP 脚本的环境。通常,这个环境包括:

  • Web 服务器:如 Apache、Nginx 等,用于处理 HTTP 请求。
  • PHP 解析器:解释和运行 PHP 脚本。
  • 数据库服务器:如 MySQL、MariaDB,用于存储和管理数据。

为了方便开发者,市面上有许多集成了以上组件的安装包,如 XAMPP、WAMP、MAMP 等,它们可以一次性安装所有必要的组件,节省配置时间。


在 Windows 上搭建 PHP 环境

使用集成环境 XAMPP

XAMPP 是一种易于安装的 Apache 发行版,包含 MariaDB、PHP 和 Perl,适用于 Windows、Linux 和 macOS。对于初学者和需要快速搭建环境的开发者来说,XAMPP 是一个理想的选择。

安装步骤
  1. 下载 XAMPP

    访问 XAMPP 官方网站,下载适用于 Windows 的最新版本。

  2. 运行安装程序

    双击下载的安装程序(如 xampp-windows-x64-8.0.0-0-VC15-installer.exe),可能会出现用户账户控制(UAC)提示,点击“是”继续。

  3. 选择组件

    在组件选择界面,可以选择需要安装的组件。默认情况下,Apache、MySQL、PHP 都会被选中。根据需求,可以添加或取消其他组件。

    组件描述
    ApacheWeb 服务器
    MySQL数据库服务器
    PHPPHP 解析器
    phpMyAdminMySQL 管理工具
    FileZilla FTPFTP 服务器(可选)
    TomcatJava 服务器(可选)
  4. 选择安装目录

    选择安装路径,建议安装在根目录下(如 C:\xampp),避免权限问题。

  5. 完成安装

    安装完成后,勾选“启动控制面板”选项,点击“完成”。

配置和测试
  1. 启动 Apache 和 MySQL

    在 XAMPP 控制面板中,点击“Start”按钮启动 Apache 和 MySQL 服务。

  2. 测试 Apache

    在浏览器中输入 http://localhost/,如果看到 XAMPP 欢迎页面,说明 Apache 运行正常。

  3. 测试 PHP

    创建一个测试文件:

    • C:\xampp\htdocs\ 目录下,新建一个文件 test.php

    • 在文件中输入以下内容:

       
      <?php
      phpinfo();
      ?>
      

    • 在浏览器中访问 http://localhost/test.php,应显示 PHP 配置信息页面。

常用配置
  • 更改 Apache 端口

    如果端口 80 被占用,可以修改 Apache 的监听端口。

    • 打开 C:\xampp\apache\conf\httpd.conf
    • Listen 80 改为 Listen 8080
    • ServerName localhost:80 改为 ServerName localhost:8080
    • 重启 Apache 服务。
  • 配置虚拟主机

    在开发多个项目时,可以配置虚拟主机方便管理。

    • 编辑 C:\xampp\apache\conf\extra\httpd-vhosts.conf,添加:

       
      <VirtualHost *:80>
          DocumentRoot "C:/xampp/htdocs/project1"
          ServerName project1.local
      </VirtualHost>
      

      修改 C:\Windows\System32\drivers\etc\hosts,添加:

       
      127.0.0.1   project1.local
      

手动安装 Apache、PHP 和 MySQL

对于需要更高控制度的开发者,可以手动安装和配置各个组件。

安装 Apache
  1. 下载 Apache

    访问 Apache Lounge,下载适用于 Windows 的二进制版本。

  2. 解压安装

    • 将下载的 ZIP 文件解压到 C:\Apache24
  3. 配置环境变量

    • C:\Apache24\bin 添加到系统环境变量 PATH 中。
  4. 测试安装

    • 打开命令提示符,输入 httpd -v,应显示 Apache 版本信息。
  5. 启动 Apache

    • 以管理员身份运行命令提示符,输入:

      httpd
      
安装 PHP
  1. 下载 PHP

    访问 PHP 官方下载页面,选择适用于 Windows 的非线程安全(NTS)版本。

  2. 解压安装

    • 将下载的 ZIP 文件解压到 C:\PHP
  3. 配置 PHP

    • php.ini-development 重命名为 php.ini

    • 编辑 php.ini,设置 extension_dir

      extension_dir = "C:\PHP\ext"
      
    • 启用必要的扩展,如 mysqlipdo_mysql 等,去掉前面的分号:

       

      extension=mysqli
      extension=pdo_mysql

  4. 配置 Apache 与 PHP 集成

    • 编辑 Apache 的配置文件 C:\Apache24\conf\httpd.conf,添加以下内容:

       

      LoadModule php_module "C:/PHP/php7apache2_4.dll"
      AddHandler application/x-httpd-php .php
      PHPIniDir "C:/PHP"

    • 确保 DocumentRoot 指向您的项目目录。

  5. 测试 PHP

    • DocumentRoot 目录下创建 index.php,内容为:

      <?php
      echo "Hello, PHP!";
      ?>
      
    • 重启 Apache 服务,访问 http://localhost/,应显示 "Hello, PHP!"。

安装 MySQL
  1. 下载 MySQL

    访问 MySQL 官方下载页面,选择适用于 Windows 的 MSI 安装程序。

  2. 安装 MySQL

    • 运行安装程序,选择“自定义”安装,按照提示完成安装。
    • 配置 root 用户密码,记住该密码用于后续连接。
  3. 测试连接

    • 打开命令提示符,输入:

      mysql -u root -p
      
    • 输入密码后,应进入 MySQL 命令行界面。

配置 PHP 连接 MySQL
  • php.ini 中确保已启用 mysqlipdo_mysql 扩展。

  • 重启 Apache 服务,测试 PHP 连接 MySQL:

    <?php
    $conn = new mysqli("localhost", "root", "yourpassword");
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }
    echo "连接成功";
    ?>
    

在 Linux 上搭建 PHP 环境

Linux 是服务器最常用的操作系统之一,以下以 Ubuntu 为例介绍如何搭建 PHP 环境。

使用 LAMP 方案

LAMP 代表 Linux、Apache、MySQL/MariaDB、PHP 的组合,是经典的 Web 开发环境。

安装 Apache
sudo apt update
sudo apt install apache2
安装 MySQL 或 MariaDB

安装 MySQL

sudo apt install mysql-server

安装 MariaDB

sudo apt install mariadb-server
安装 PHP
sudo apt install php libapache2-mod-php php-mysql
配置 Apache
  • 设置 Apache 优先解析 PHP 文件

    编辑 /etc/apache2/mods-enabled/dir.conf,将 index.php 放在第一位:

    <IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
    </IfModule>
    
  • 启用必要的模块

    sudo a2enmod php7.4  # 根据实际 PHP 版本
    
重启 Apache
sudo systemctl restart apache2
测试 PHP
  • 创建测试文件 /var/www/html/info.php,内容为:

    <?php
    phpinfo();
    ?>
    
  • 在浏览器中访问 http://your_server_ip/info.php,应显示 PHP 配置信息页面。

安装和配置 Nginx、PHP-FPM 和 MySQL

Nginx 是高性能的 Web 服务器,搭配 PHP-FPM 可以提高 PHP 应用的性能。

安装 Nginx
sudo apt update
sudo apt install nginx
安装 PHP-FPM
sudo apt install php-fpm php-mysql
配置 Nginx
  • 编辑 /etc/nginx/sites-available/default,修改服务器块:

    server {
        listen 80;
        server_name your_server_ip;
        root /var/www/html;
    
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ =404;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;  # 根据实际 PHP 版本
        }
    
        location ~ /\.ht {
            deny all;
        }
    }
    
  • 测试 Nginx 配置:

    sudo nginx -t
    
  • 重启 Nginx:

    sudo systemctl restart nginx
    
测试 PHP
  • 创建测试文件 /var/www/html/info.php,内容同上。
  • 访问 http://your_server_ip/info.php,应显示 PHP 信息。

在 macOS 上搭建 PHP 环境

使用 MAMP 集成环境

MAMP(Macintosh, Apache, MySQL, PHP)是专为 macOS 设计的集成环境。

安装 MAMP
  1. 下载 MAMP

    访问 MAMP 官方网站,下载最新版本的 MAMP。

  2. 安装 MAMP

    • 双击下载的 DMG 文件,按照提示拖动 MAMP 到“应用程序”文件夹。
  3. 启动 MAMP

    • 进入“应用程序”文件夹,打开 MAMP。
    • 点击“Start Servers”启动 Apache 和 MySQL。
配置和测试
  • 测试 Apache 和 PHP

    • 访问 http://localhost:8888/,应看到 MAMP 欢迎页面。
    • 默认的 Web 根目录是 /Applications/MAMP/htdocs
  • 测试 PHP

    • htdocs 目录下创建 test.php,内容为:

      <?php
      phpinfo();
      ?>
      
    • 访问 http://localhost:8888/test.php,应显示 PHP 信息。

使用 Homebrew 手动安装

Homebrew 是 macOS 上的包管理器,可以方便地安装 Apache、PHP 和 MySQL。

安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装 Apache
brew install httpd
  • 启动 Apache:

    sudo brew services start httpd
    
安装 PHP
brew install php
  • 启动 PHP-FPM:

    brew services start php
    
安装 MySQL
brew install mysql
  • 启动 MySQL:

    brew services start mysql
    
配置 Apache
  • 编辑 /usr/local/etc/httpd/httpd.conf,添加或修改以下内容:

    • 加载 PHP 模块:

      LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so
      
    • 设置 DirectoryIndex

       

      DirectoryIndex index.php index.html

    • 配置 PHP 文件的处理:

       

      <FilesMatch \.php$>
          SetHandler application/x-httpd-php
      </FilesMatch>

  • 重启 Apache:

    sudo brew services restart httpd
    
测试 PHP
  • /usr/local/var/www 目录下创建 index.php,内容为:

    <?php
    echo "Hello, PHP on macOS!";
    ?>
    
  • 访问 http://localhost:8080/,应显示 "Hello, PHP on macOS!"。


常见问题及解决方案

Apache 无法启动

  • 端口被占用

    检查是否有其他服务占用了端口 80 或 8080。

    sudo lsof -i :80
    

    解决方案:更改 Apache 的监听端口,或停止占用端口的服务。

PHP 脚本不执行,浏览器直接下载

  • 未配置 PHP 处理

    确认 Web 服务器已正确配置 PHP 模块。

    解决方案:按照上述步骤,确保 Apache 或 Nginx 已加载 PHP 模块或已配置 PHP-FPM。

MySQL 无法连接

  • 密码错误

    检查连接时使用的用户名和密码是否正确。

  • 服务未启动

    确认 MySQL 服务已启动。

    sudo systemctl status mysql
    

权限问题

  • 文件权限不足

    确保 Web 根目录和 PHP 文件具有正确的权限。

    sudo chown -R www-data:www-data /var/www/html
    sudo chmod -R 755 /var/www/html
    

防火墙阻止访问

  • 检查防火墙设置

    确保服务器的防火墙允许 HTTP 和 HTTPS 流量。

    sudo ufw allow 'Apache Full'
    

总结

搭建 PHP 开发环境是开始 PHP 编程的第一步。无论您使用的是 Windows、Linux 还是 macOS,本教程都提供了详细的步骤和注意事项,帮助您顺利完成环境配置。

  • Windows 用户:可以选择使用 XAMPP 这样的集成环境,快速搭建开发环境;也可以手动安装 Apache、PHP 和 MySQL,获得更高的灵活性。
  • Linux 用户:LAMP 方案是经典的选择,或者使用 Nginx 和 PHP-FPM 提升性能。
  • macOS 用户:MAMP 提供了方便的集成环境;通过 Homebrew 手动安装则能更好地掌控配置。

在实际开发中,可能会遇到各种问题,本教程也提供了一些常见问题的解决方案。希望本教程能帮助您顺利搭建 PHP 开发环境,开启您的 PHP 编程之旅。


参考资料

  • PHP 官方文档
  • Apache 官方文档
  • MySQL 官方文档
  • XAMPP 官方网站
  • MAMP 官方网站
  • Homebrew 官方网站

 

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

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

相关文章

【25.6】C++智能交友系统

常见错误总结 const-1 如下代码会报错 原因如下&#xff1a; man是一个const修饰的对象&#xff0c;即man不能修改任何内容&#xff0c;但是man所调用的play函数只是一个普通的函数&#xff0c;所以出现了报错。我们需要在play函数中加上const修饰&#xff0c;或者删除man对…

《论分布式存储系统架构设计》写作框架,软考高级系统架构设计师

论文真题 分布式存储系统&#xff08;Distributed Storage System&#xff09;通常将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据&#xff0c;存储服务器成为系统性能的瓶颈&#xff0c;也是可靠性和安全性的焦点&#xff0c;不能满…

FreeRTOS-时间片调度

FreeRTOS-时间片调度 一、时间片调度简介二、时间片调度实验 一、时间片调度简介 同等优先级任务轮流的享有相同的CPU时间(可设置)&#xff0c;叫时间片&#xff0c;在FreeRTOS中&#xff0c;一个时间片就等于SysTick中断周期&#xff0c;所以说时间片大小取决于滴答定时器中断…

windows安装Anaconda教程

一、简介 Anaconda 是一个开源的 Python 和 R 语言的分发平台&#xff0c;专为科学计算和数据分析设计。它包含了包管理器 Conda&#xff0c;可以方便地安装和管理库、环境和依赖项。此外&#xff0c;Anaconda 还附带了许多数据科学工具和库&#xff0c;如 Jupyter Notebook 和…

【HTTPS】中间人攻击和证书的验证

中间人攻击 服务器可以创建出一堆公钥和私钥&#xff0c;黑客也可以按照同样的方式&#xff0c;创建一对公钥和私钥&#xff0c;冒充自己是服务器&#xff08;搅屎棍&#xff09; 黑客自己也能生成一对公钥和私钥。生成公钥和私钥的算法是开放的&#xff0c;服务器能生产&…

iOS17找不到developer mode

iOS17找不到开发者模式 developer mode 下载过app之后、弹窗Developer Mode Required之后&#xff0c;这个菜单就出现了&#xff08;之前死活找不到&#xff09;。 背景&#xff1a;用蒲公英分发测试app&#xff0c;有个同事买了新机(iphone 15 pro max)&#xff0c;添加了白名…

双虚拟机部署php项目

前言 经过前面的学习,我们对分布式部署有了一定的了解,这次我们尝试做些东西 准备 我打算用虚拟机部署一个外联网盘 一台虚拟机安装php另一台安装MySQL,但是之前已经安装过 MariaDB 了,就不打算改了。 通常MariaDB与MySQL兼容性很好,可以作为替代使用。彩虹外链网盘项目…

OpenAI的O1模型达到AGI二级,类人推理能力被提示危险,细思极恐!

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 今天让我们一起来聊聊最近科技圈的大新闻—…

Java笔试面试题AI答之设计模式(4)

文章目录 16. 简述什么是观察者模式&#xff1f;基本概念主要特点实现方式应用场景优缺点 17. 请列举观察者模式应用场景 &#xff1f;18. 请用Java代码实现观察者模式的案例 &#xff1f;19. 什么是装饰模式&#xff1f;定义与特点结构与角色工作原理优点应用场景示例 20. 请用…

队列的各种接口的实现(C)

队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾 出队列&#xff1a;进行删除操作的一端称为队头 队列的实…

【GlobalMapper精品教程】088:按点线面空间位置选择案例

按点线面空间位置选择的原则为:点线面的排列组合。 文章目录 一、选择线要素附近的点二、选择相交或触碰所选线的区和线三、选择包含点的区要素四、选择选定区域内的点要素一、选择线要素附近的点 启动该工具之前,首先要选择线,例如,选择某一段铁路5km范围之内的县城驻地。…

nacos适配人大金仓的数据库

前言 在微服务架构中&#xff0c;服务发现和配置管理是关键组件。Nacos作为一个动态服务发现和配置管理平台&#xff0c;支持多种数据库作为其后端存储。本文将探讨如何在Nacos中适配人大金仓数据库&#xff0c;以及在此过程中的最佳实践。 Nacos简介 Nacos&#xff08;Nami…

安装 depot_tools 和 Windows 10 SDK 为在Windows下构建基于 chromium 的浏览器(103.0.5060.68 之二)

本文已首发于&#xff1a; 秋码记录 为何要安装depot_tools 虽然我们在上一篇 Windows构建基于 Chromium 的浏览器之环境准备篇安装 Visual Studio&#xff08;103.0.5060.68 之一&#xff09; &#xff0c;已经在Windows系统安装好了Visual Studio 2019 Community版本。 然…

第十二周:机器学习

目录 摘要 Abstract 一、非监督学习 二、word embedding 三、transformer 1、应用 2、encoder 3、decoder 四、各类attention 1、最常见的类别 2、其余种类 3、小结 总结 摘要 本周继续学习机器学习的相关课程&#xff0c;首先了解了监督学习和非监督学习的概…

数据结构与算法——Java实现 9.习题——删除链表倒数节点

目录 19. 删除链表的倒数第 N 个结点 方法1 通过链表长度直接删除 方法2 递归加入哨兵节点 ListNode 方法3 快慢指针法 苦难&#xff0c;区区挫折罢了&#xff0c;而我必定站在幸福的塔尖 —— 24.9.22 19. 删除链表的倒数第 N 个结点 给你一个链表&#xff0c;删除链表的倒数第…

【LeetCode】146. LRU缓存

1.题目 2.思想 3.代码 3.1 代码1 下面这是一版错误的代码。错误的原因在于逻辑不正确导致最后的代码也是不正确的。 class LRUCache:def __init__(self, capacity: int):self.time 0 # 用于全局记录访问的时间self.num2time {} # 数字到时间的映射self.key2val {} # 数字…

第十四章:html和css做一个心在跳动,为你而动的表白动画

💖 让心跳加速,传递爱意 💖 在这个特别的时刻,让爱在跳动中绽放!🌟 无论是初次相遇的心动,还是陪伴多年的默契,我们的心总在为彼此跳动。就像这颗炙热的爱心,随着每一次的跳动,传递着满满的温暖与期待。 在这个浪漫的季节,让我们一同感受爱的律动!无论你是在…

Linux文件IO(七)-复制文件描述符

在 Linux 系统中&#xff0c;open 返回得到的文件描述符 fd 可以进行复制&#xff0c;复制成功之后可以得到一个新的文件描述符&#xff0c;使用新的文件描述符和旧的文件描述符都可以对文件进行 IO 操作&#xff0c;复制得到的文件描述符和旧的文件描述符拥有相同的权限&#…

自学笔记之TVM编译器框架 ,核心特性,模型优化概述,AI应用落地

最近在学习一些和芯片 AI相关的知识&#xff0c;重点了解了一下TVM&#xff0c;我自己认为TVM在AI应用落地类似的项目中&#xff0c;用途还是非常广泛的&#xff0c;现在把一些重要的笔记贴在下面&#xff0c;有两篇原帖链接也附上&#xff0c;感兴趣的同学可以学习一下。 TVM…

宝塔linux 安装code-server指定对应的端口无法访问

这个一般就是nginx搞的鬼&#xff0c;如果服务正常启动&#xff0c;就是访问不了&#xff1b;大概就是宝塔安装的nginx配置没有代理code-server服务对应的端口&#xff0c;一般就是nginx配置文件的问题 安装默认的nginx会有一个配置文件 直接拉到最后会有一行这个&#xff0c…