全面详尽的 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 是一个理想的选择。
安装步骤
-
下载 XAMPP
访问 XAMPP 官方网站,下载适用于 Windows 的最新版本。
-
运行安装程序
双击下载的安装程序(如
xampp-windows-x64-8.0.0-0-VC15-installer.exe),可能会出现用户账户控制(UAC)提示,点击“是”继续。 -
选择组件
在组件选择界面,可以选择需要安装的组件。默认情况下,Apache、MySQL、PHP 都会被选中。根据需求,可以添加或取消其他组件。
组件 描述 Apache Web 服务器 MySQL 数据库服务器 PHP PHP 解析器 phpMyAdmin MySQL 管理工具 FileZilla FTP FTP 服务器(可选) Tomcat Java 服务器(可选) -
选择安装目录
选择安装路径,建议安装在根目录下(如
C:\xampp),避免权限问题。 -
完成安装
安装完成后,勾选“启动控制面板”选项,点击“完成”。
配置和测试
-
启动 Apache 和 MySQL
在 XAMPP 控制面板中,点击“Start”按钮启动 Apache 和 MySQL 服务。
-
测试 Apache
在浏览器中输入
http://localhost/,如果看到 XAMPP 欢迎页面,说明 Apache 运行正常。 -
测试 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
-
下载 Apache
访问 Apache Lounge,下载适用于 Windows 的二进制版本。
-
解压安装
- 将下载的 ZIP 文件解压到
C:\Apache24。
- 将下载的 ZIP 文件解压到
-
配置环境变量
- 将
C:\Apache24\bin添加到系统环境变量PATH中。
- 将
-
测试安装
- 打开命令提示符,输入
httpd -v,应显示 Apache 版本信息。
- 打开命令提示符,输入
-
启动 Apache
-
以管理员身份运行命令提示符,输入:
httpd
-
安装 PHP
-
下载 PHP
访问 PHP 官方下载页面,选择适用于 Windows 的非线程安全(NTS)版本。
-
解压安装
- 将下载的 ZIP 文件解压到
C:\PHP。
- 将下载的 ZIP 文件解压到
-
配置 PHP
-
将
php.ini-development重命名为php.ini。 -
编辑
php.ini,设置extension_dir:extension_dir = "C:\PHP\ext"
-
启用必要的扩展,如
mysqli、pdo_mysql等,去掉前面的分号:extension=mysqli
extension=pdo_mysql
-
-
配置 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指向您的项目目录。
-
-
测试 PHP
-
在
DocumentRoot目录下创建index.php,内容为:<?php echo "Hello, PHP!"; ?>
-
重启 Apache 服务,访问
http://localhost/,应显示 "Hello, PHP!"。
-
安装 MySQL
-
下载 MySQL
访问 MySQL 官方下载页面,选择适用于 Windows 的 MSI 安装程序。
-
安装 MySQL
- 运行安装程序,选择“自定义”安装,按照提示完成安装。
- 配置 root 用户密码,记住该密码用于后续连接。
-
测试连接
-
打开命令提示符,输入:
mysql -u root -p
-
输入密码后,应进入 MySQL 命令行界面。
-
配置 PHP 连接 MySQL
-
在
php.ini中确保已启用mysqli和pdo_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
-
下载 MAMP
访问 MAMP 官方网站,下载最新版本的 MAMP。
-
安装 MAMP
- 双击下载的 DMG 文件,按照提示拖动 MAMP 到“应用程序”文件夹。
-
启动 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 官方网站
相关文章:
全面详尽的 PHP 环境搭建教程
目录 目录 PHP 环境搭建概述 在 Windows 上搭建 PHP 环境 使用集成环境 XAMPP 安装步骤 配置和测试 常用配置 手动安装 Apache、PHP 和 MySQL 安装 Apache 安装 PHP 安装 MySQL 配置 PHP 连接 MySQL 在 Linux 上搭建 PHP 环境 使用 LAMP 方案 安装 Apache 安装 …...
fiddler抓包06_抓取https请求(chrome)
课程大纲 首次安装Fiddler,抓https请求,除打开抓包功能(F12)还需要: ① Fiddler开启https抓包 ② Fiddler导出证书; ③ 浏览器导入证书。 否则,无法访问https网站(如下图࿰…...
【在Linux世界中追寻伟大的One Piece】网络命令|验证UDP
目录 1 -> Ping命令 2 -> Netstat命令 3 -> Pidof命令 4 -> 验证UDP-Windows作为client访问Linux 4.1 -> UDP client样例 1 -> Ping命令 Ping命令是一种网络诊断工具,它使用ICMP(Internet Control Message Protocol,互联网控制消…...
qt-C++笔记之Q_DECLARE_METATYPE和qRegisterMetaType
qt-C笔记之Q_DECLARE_METATYPE和qRegisterMetaType code review! 文章目录 qt-C笔记之Q_DECLARE_METATYPE和qRegisterMetaType一.Q_DECLARE_METATYPE使用方法应用场景 二.为什么需要注册类型?三.使用 Q_DECLARE_METATYPE 处理自定义类型的简短示例3.1.自定义类型定…...
Shader 中的光源
1、Shader 开发中常用的光源属性 Unity当中一共支持四种光源类型: 平行光(Directional)点光源(Point)聚光灯(Spot)面光源(Area)— 面光源仅在烘焙时有用 不管光源类型到…...
【django】局域网访问django启动的项目
目录 一、现象 二、django的settings.py配置 三、启动django项目 四、获取本机IP 五、局域网机器访问 前言:本机使用pycharm启动的项目,局域网其他机器访问 一、现象 django开发了接口,想给其他同志访问接口测试,无法通过I…...
【计算机组成原理】主存储器深度解析
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...
docker在基础镜像上,比如rockylinux,如何配置yum仓库
在基础镜像rockylinux上 启动的容器,没有yum仓库,就执行不了一些命令 ~]docker run -itd --name linux rockylinux:8.5~]# docker exec -it linux bash /]# ifconfig bash: ifconfig: command not found/]# vim bash: vim: command not found …...
libtorch落地AI项目的一些总结
总结 1. 为啥C 写AI C 是一个非常强大的编程语言,它具有非常强大的计算能力,可以处理非常大的数据集,并且可以非常快速地完成计算。很多项目需要嵌入式部署,C 是一个非常适合的编程语言。C 可以非常快速地完成计算,并…...
ffmpeg面向对象——参数配置秘密探索及其设计模式
目录概览 0.参数配置对象流程图0.1 用到的设计模式0.2 与朴素思想的对比 1.参数传递部分1.1 AVDictionary字典容器类1.1.1 类定义及类图1.1.2 构造函数1.1.3 析构函数1.1.4 设置/读取等配置参数 1.2 参数配置实例 2.参数配置生效部分2.1参数过滤模块2.1.1 AVOption类2.1.1.1 类…...
华为eNSP使用详解
eNSP(Enterprise Network Simulation Platform)是华为提供的一款网络仿真平台,它允许用户在没有真实设备的情况下进行网络实验和学习网络技术。eNSP可以模拟各种网络设备,如交换机、路由器、防火墙等,并支持创建多种网…...
一文入门生成式AI(理解ChatGPT的原理)
一、什么是生成式AI? 以ChatGPT为代表的生成式AI,是对已有的数据和知识进行向量化的归纳,总结出数据的联合概率。从而在生成内容时,根据用户需求,结合关联字词的概率,生成新的内容。 可以这么联想&#x…...
C# 中Faker
在 C# 中,Faker 类通常用于生成模拟数据(也称为虚拟数据、测试数据),这对于开发、测试以及演示应用程序非常有用。一个流行的库叫做 Faker,它提供了一种简单的方式来生成各种随机数据。 安装 Faker 库 要使用 Faker …...
数据权限的设计与实现系列9——前端筛选器组件Everright-filter集成框架开发2
功能实现 规则转换为 SQL 片段 规则解析 首先我们来构造一个典型的规则,包括两个条件组,每个组由两个条件组成,由且与或两种逻辑关系,如下图: 然后看看生成的规则,如下: {"filt…...
鸿蒙Harmony-Next 徒手撸一个日历控件
本文将介绍如何使用鸿蒙Harmony-Next框架实现一个自定义的日历控件。我们将创建一个名为CalendarView的组件(注意,这里不能叫 Calendar因为系统的日历叫这个),它具有以下功能: 显示当前月份的日历支持选择日期显示农历日期可以切换上一月和下一月 组件…...
直播音频解决方案
音频解决方案公司具体解决的是什么样的问题?什么样的客户需要找音频方案公司?相信还是有很多人不是很了解。音频解决方案公司工作就像是为音频设备“量身定制衣服”,帮助客户解决各种音频相关的问题。无论你是音响制造商、会议设备商、耳机品…...
Git基本用法总结
设置全局用户名 git config --global user.name xxx #设置全局用户名 设置全局邮箱地址 git config --global user.email xxxxxx.com #设置全局邮箱地址 查看所有的 Git 配置,包括用户信息 git config --list #查看所有的 Git 配置,包括用户信…...
SQLite的入门级项目学习记录(四)
性能评估和测试 规划项目 1、框架选择:前端交互和线程控制用pyside,SQLite作为数据库支持。 2、预估数据量:每秒10个数据,每个月约26000000(26M)条。 3、压力测试:首先用python脚本创建一个数据…...
Docker工作目录迁移
文章目录 前言一、迁移步骤1.停掉docker服务2.创建存储目录3.迁移docker数据4.备份5.添加软链接6.重启docker服务,测试 总结 前言 安装docker,默认的情况容器的默认存储路径会存储系统盘的 /var/lib/docker 目录下,系统盘一般默认 50G&#…...
【多维动态规划】64. 最小路径和(面试真题+面试官调整后的题目)
64. 最小路径和 难度:中等 力扣地址:https://leetcode.cn/problems/minimum-path-sum/description/ 1. 原题以及解法 1.1 题目 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
