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

目录

目录

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 官方网站

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vcruntime140_1.dll无法继续执行代码的6种解决方法

在计算机编程和软件开发中&#xff0c;我们经常会遇到各种错误和问题。其中&#xff0c;vcruntime140_1.dll无法继续执行代码是一个常见的问题。这个问题可能会导致程序崩溃&#xff0c;影响我们的工作进度。因此&#xff0c;了解这个问题的原因以及如何解决它是非常重要的。 …

Netty笔记10-Netty参数调优

文章目录 一、CONNECT_TIMEOUT_MILLISCONNECT_TIMEOUT_MILLIS设置为1秒超时CONNECT_TIMEOUT_MILLIS设置为5秒超时注意事项 二、SO_BACKLOG代码示例注意事项 三、ulimit -n(文件描述符)设置文件描述符限制在注意事项 四、TCP_NODELAY使用 TCP_NODELAY 的场景注意事项 五、SO_SND…

JavaWeb--纯小白笔记03:servlet入门---动态网页的创建

笔记&#xff1a;index.html在tomcat中为默认的名字&#xff0c;html里面的语法不严谨。改配置文件要小心&#xff0c;不然容易删掉其他 Servlet&#xff1a;服务器端小程序&#xff0c;写动态网页需要用Servlet&#xff0c;普通的java类通过继承HttpServlet&#xff0c;可以响…

【重学 MySQL】三十一、字符串函数

【重学 MySQL】三十一、字符串函数 函数名称用法描述ASCII(S)返回字符串S中的第一个字符的ASCII码值CHAR_LENGTH(s)返回字符串s的字符数&#xff0c;与CHARACTER_LENGTH(s)相同LENGTH(s)返回字符串s的字节数&#xff0c;和字符集有关CONCAT(s1,s2,…,sn)连接s1,s2,…,sn为一个字…

Docker + Win 10 学习记录

下载Docker Release notes | Docker Docs 推荐使用4.33版本&#xff0c;最新的Docker版本在win10 22H2无法安装。需要升级到win11. 查看Win10版本是否与最新版的Docker兼容 运行 win R&#xff0c; 然后输入winver 如果你的Docker版本无法在当前的win10安装&#xff0c;请更…

828华为云征文|华为云Flexus云服务器X实例部署Xnote笔记应用

828华为云征文&#xff5c;华为云Flexus云服务器X实例部署Xnote笔记应用 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Note Mark 介绍2.1 Xnote简介2.2 Xnote特点2.3 主要使用场景 三、本次实…

豆包Python SDK接入流程

模型与价格 豆包的模型介绍可以看豆包大模型介绍&#xff0c;模型价格可以看豆包定价文档里的“模型推理” - “大语言模型” - “字节跳动”部分。 推荐使用以下模型&#xff1a; Doubao-lite-32k&#xff1a;每百万 token 的输入价格为 0.3 元&#xff0c;输出价格为 0.6 元…

JavaEE: 深入探索TCP网络编程的奇妙世界(六)

文章目录 TCP核心机制TCP核心机制九: 面向字节流TCP核心机制十: 异常处理 小小的补充(URG 和 PSH)~TCP小结TCP/UDP 对比用UDP实现可靠传输(经典面试题) 结尾 TCP核心机制 上一篇文章JavaEE: 深入探索TCP网络编程的奇妙世界(五) 书接上文~ TCP核心机制九: 面向字节流 TCP是面…

桶排序和计数排序(非比较排序算法)

桶排序 桶排序是一种基于分配的排序算法&#xff0c;特别适合用来排序均匀分布的数据。它的基本思想是将输入的数据分到有限数量的桶里&#xff0c;然后对每个桶内的数据分别进行排序&#xff0c;最后再将各个桶内的数据合并得到最终的排序结果。(通常用于浮点数&#xff0c;因…

Linux:RPM软件包管理以及yum软件包仓库

挂载光驱设备 RPM软件包管理 RPM软件包简介 区分软件名和软件包名 软件名&#xff1a;firefox 软件包名&#xff1a;firefox-52.7.0-1.el7.centos.x86_64.rpm 查询软件信息 查询软件&#xff08;参数为软件名&#xff09; ]# rpm -qa #当前系统中所有已安装的软件包 ]# r…

WebGL颜色与纹理

WEBGL中的着色器变量包括以下种类&#xff1a; 属性变量&#xff08;Attribute Variables&#xff09;&#xff1a;这些变量用于接收从应用程序中传递的顶点数据&#xff0c;比如顶点位置和颜色&#xff0c;是只读的不可修改。统一变量&#xff08;Uniform Variables&#xff…

AI浪潮新崛起:借助AI+实景/视频直播创新魅力,开启无人自动直播新时代!

AI浪潮新崛起&#xff1a;借助AI实景/视频直播创新魅力&#xff0c;开启无人自动直播新时代&#xff01; 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已不再仅仅是科幻电影中的桥段&#xff0c;它正以不可阻挡之势渗透到我们生活的方方面面&#xff…

力扣718-最长重复子数组(Java详细题解)

题目链接&#xff1a;718. 最长重复子数组 - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 dp五部曲。 1.确定dp数组和i下标的含义。 2.确定递推公式。 3.dp初始化。 4.确定dp的遍历顺序。 5…

【编程底层原理】Java常用读写锁的使用和原理

一、引言 在Java的并发世界中&#xff0c;合理地管理对共享资源的访问是至关重要的。读写锁&#xff08;ReadWriteLock&#xff09;正是一种能让多个线程同时读取共享资源&#xff0c;而写入资源时需要独占访问的同步工具。本文将带你了解读写锁的使用方法、原理以及它如何提高…

这8款AI论文工具帮你一键搞定!ai论文一键生成任务书

在当今学术研究和论文写作领域&#xff0c;AI技术的应用已经成为一种趋势。通过智能算法和大数据分析&#xff0c;AI工具能够帮助学者和学生提高写作效率、优化内容结构&#xff0c;并确保论文的原创性和质量。以下是8款值得推荐的AI论文工具&#xff0c;其中特别推荐千笔-AIPa…

选择排序(C语言实现)

目录 1.基本思想 2.代码实现 代码思路 代码实现 代码测试 3.复杂度分析 1&#xff09;时间复杂度 2&#xff09;空间复杂度 4.特性总结 1.基本思想 选择排序是一种简单直观的比较排序算法。该算法的基本思想是在每一轮中选出当前未排序部分的最小&#xff08;或最大&a…

通过 LabVIEW 正则表达式读取数值(整数或小数)

在LabVIEW开发中&#xff0c;字符串处理是一个非常常见的需求&#xff0c;尤其是在处理包含复杂格式的数字时。本文通过一个具体的例子来说明如何利用 Match Regular Expression Function 和 Match Pattern Function 读取并解析字符串中的数字&#xff0c;并重点探讨这两个函数…

日期和时间类【Date】【Calendar日历类】【LocalDate】Date-Time API详解

我们先来介绍一下与时间相关的基础知识。 GMT - 格林尼治标准时间&#xff08;Greenwich Mean Time&#xff09;&#xff0c;简称GMT&#xff0c;实际上与世界时UT&#xff08;universal time &#xff09;基本一致。 UTC - 协调世界时&#xff08;Universal Time Coordinated&…

matlab恢复默认窗口布局

1.点击主页&#xff0c;选择布局 2.选择默认&#xff0c;即可恢复到默认的窗口布局

Linux系统上搭建Vulhub靶场

Linux系统上搭建Vulhub靶场 ​vulhub​ 是一个开源的漏洞靶场&#xff0c;它提供了各种易受攻击的服务和应用程序&#xff0c;供安全研究人员和学习者测试和练习。要在 Linux 系统上安装和运行 vulhub​&#xff0c;可以按照以下步骤进行&#xff1a; 1. 安装 Docker 和 Docke…