全面详尽的 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 ,请找出一条从左上角到右下角的路径,使得路径上的数字总和…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
