惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
N
News and Events Feed by Topic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
MongoDB | Blog
MongoDB | Blog
V
Vulnerabilities – Threatpost
月光博客
月光博客
罗磊的独立博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
F
Full Disclosure
Simon Willison's Weblog
Simon Willison's Weblog
D
DataBreaches.Net
T
Threatpost
Hacker News: Ask HN
Hacker News: Ask HN
阮一峰的网络日志
阮一峰的网络日志
TaoSecurity Blog
TaoSecurity Blog
Microsoft Azure Blog
Microsoft Azure Blog
Scott Helme
Scott Helme
S
Securelist
W
WeLiveSecurity
K
Kaspersky official blog
The GitHub Blog
The GitHub Blog
Attack and Defense Labs
Attack and Defense Labs
博客园 - 三生石上(FineUI控件)
The Hacker News
The Hacker News
Google Online Security Blog
Google Online Security Blog
Stack Overflow Blog
Stack Overflow Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Security Latest
Security Latest
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
The Last Watchdog
The Last Watchdog
C
Check Point Blog
T
Troy Hunt's Blog
P
Proofpoint News Feed
J
Java Code Geeks
G
Google Developers Blog
Schneier on Security
Schneier on Security
Cyberwarzone
Cyberwarzone
S
Security @ Cisco Blogs
宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
L
LINUX DO - 最新话题
Jina AI
Jina AI

小王子

再见十八班 腾讯云EdgeOne零元薅多个免费套餐教程 小组第三都能出线,世界杯的“死亡之组”已死 光荣入团 2026年美加墨世界杯观赛指南 疲劳驾驶新规怎么认定及如何处罚 涅槃重生,重返荣耀? 让AI写前端不难,难的是让它别那么AI里AI气 WordPress Studio:官方出品的本地开发神器 GESP真题下载工具使用教程 中考家长实录 · 一模后,签约、志愿、自招的两难抉择 暮春山行 · 农历二月末的闲情 从RSS订阅器到知识库:我的网站整合之路 编程赛变“文艺创作赛”,真没必要硬卷! 致百日誓师的你,以笔为剑,不负韶华 惊蛰无声 解锁不回老家的春节打开方式 十年乐视退休,新年换新机|TCL雷鸟鹤6 26 款 全在教我走路,没人教我开车 要等级还是分数? 寒假已来 十年雪落,东莞那场等了124年的相遇 2026年东莞中考报名,比以往时候来得要早些! 东莞记忆 新年寄语 Photoshop 2026, 让工具开始懂你 15类修辞金句助力写作提分 My Love 从“甩一甩”的旧时光,到“按一下”的新未来 冒姓琅琊 簪锋傲骨 数学奥林匹克小丛书 初中卷 哪吒之魔童闹海 唐探1900 三体 富爸爸穷爸爸 小狗钱钱 父与子 亲爱的汉修先生 孩子,你是在为自己读书 给孩子读诗 我和我的祖国 我的自传 小王子 时代广场的蟋蟀 世界杯江湖帖,北美风云再起 打印作业的时代悖论:效率提升与“隐性学力”的流失 USACO题库与真题全攻略 苹果妙控鼠标开箱与简单体验 GESP编程等级认证全解析:从入门到竞赛的指南 网站那点事儿 CSP-J/S 复赛必备系统 NOI Linux 2.0 放了个假假 我不在江湖,但江湖都是我的人 孩子参赛参考!教育部2025-2028竞赛白名单赛事攻略 简明解读一下CCF CSP-J/S 2025首轮晋级规则 台风来了 2025 CCF第一轮认证CSP-S提高组真题及解析 2025 CCF第一轮认证CSP-J入门组真题及解析 教育部2025-2028学年全国性竞赛活动最新白名单解读 致旧时光里的暖与新学期的光 数学最值问题的十种常用解法 2025 CSP-J/S 考点大纲清单 汕头Citywalk:雨与味 编程浪潮下的2025:喧嚣与重构 寒来暑往,感恩相伴丨那些与生物、地理同行的时光 指尖轻旋,定格时光的温柔韵律 - 入手DJI Osmo Mobile SE 春日里的知行乐章 我们是冠军 CSP限龄了 2025年信息学赛考规划 驾驶证换证和车做保养 家有初中生,跟着B站学习“小四门”
快速搞定macOS Web环境:PHP+Nginx+MySQL+WordPress 配置指南
老王 · 2025-12-14 · via 小王子

最近折腾网站细节的频率有点高,时不时就会因为一行代码的改动导致线上站点出故障。为了避免这种 “心惊胆战” 的操作,于是决定搭建一套本地Web环境来做测试。最开始选了MAMP,结果发现免费版功能太单一,连数据导入的入口都难找,更头疼的是,不少代码在MAMP里测试完全没问题,放到真实服务器上却各种报错。折腾了几次实在忍不了,干脆放弃集成工具,直接在 macOS 系统上手动配置一套原汁原味的 PHP+Nginx+MySQL 环境,顺便把 WordPress 也部署好。

由于macOS没有预装PHP,所以可用官方PHP安装器:

  1. 访问PHP官方网站下载页面:https://www.php.net/downloads.php
  2. 选择最新的稳定版本(推荐PHP 8.3或更高版本)
  3. 下载macOS安装包
  4. 按照安装向导完成安装
  5. 安装完成后,打开终端并运行`php -v`验证安装

快速搞定macOS Web环境:PHP+Nginx+MySQL+WordPress 配置指南

方法2:Homebrew

Homebrew是macOS上的包管理器,使用它安装PHP更加灵活。

Homebrew

1. 安装Homebrew:

bash

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

因为网络等因素上面的链接可能会导致安装失败,可以试一下下面的清华大学提供的镜像:

bash

git clone --depth=1 https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install.git brew-install
/bin/bash brew-install/install.sh
rm -rf brew-install

也可使用国内的镜像源:

bash

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2. 如果之前安装失败,可能需要先清理:

bash

sudo rm -rf /opt/homebrew

3. 也可手动进行安装
3.1. 创建目录

bash

sudo mkdir -p /opt/homebrew
sudo chown -R $(whoami) /opt/homebrew

3.2. 下载最小核心

bash

curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C /opt/homebrew

3.3. 添加 PATH

bash

echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

4. 安装完成后,运行以下命令更新Homebrew:

bash

brew update

PHP

1. 安装PHP:

bash

# 安装最新稳定版 PHP
brew install php
# 或者安装特定版本(推荐,更稳定)
brew install php@8.3

2. 将 PHP 添加到 PATH

bash

echo 'export PATH="/opt/homebrew/opt/php@8.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/php@8.3/sbin:$PATH"' >> ~/.zshrc

3. 验证安装:

bash

php -v

php -v
brew services list | grep php

4. 启动 PHP 服务

bash

# 启动 PHP-FPM(Web 服务器需要)
brew services start php@8.3
# 查看服务状态
brew services list

5. 安装后的常用操作
5.1 查看 PHP 配置信息:

bash

# 查看 PHP 配置文件位置
php --ini
# 查看已安装的扩展
php -m
# 查看 PHP 详细信息
php -i | head -20

5.2 安装常用扩展:

bash

# 安装常用扩展
brew install autoconf pkg-config
# 通过 PECL 安装扩展
pecl install redis
pecl install xdebug

MySQL

1. 安装并启动数据库

bash

# 安装MySQL
brew install mysql
# 启动MySQL服务,并设置为开机自启
brew services start mysql
# 运行安全初始化脚本,设置root密码(务必牢记此密码)
mysql_secure_installation

执行mysql_secure_installation时,根据提示设置root密码,并一路按 Y 确认其他安全选项即可。

Nginx

1. 安装 Nginx:

bash

# 安装Nginx
brew install nginx
# 启动Nginx服务
brew services start nginx

接下来,需要编辑Nginx的配置文件,让它能处理PHP。
2. 配置 Nginx:

bash

# 编辑 Nginx 配置
nano /opt/homebrew/etc/nginx/nginx.conf

在 server 块中修改:

bash

server {
listen 8080;
server_name localhost;
# 设置项目目录
root /Users/alexwang/Sites;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# 配置 PHP 处理
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

修改后保存,然后让Nginx重新加载配置

bash

nginx -s reload

启动服务:

bash

# 启动 PHP-FPM
brew services start php@8.3
# 启动 Nginx
brew services start nginx
# 查看运行状态
brew services list

WordPress

1. 下载并放置WordPress:

bash

# 进入网站根目录
cd /usr/local/var/www
# 下载最新的WordPress压缩包
curl -O https://wordpress.org/latest.tar.gz
# 解压
tar -zxvf latest.tar.gz
# 这会在当前目录生成一个 wordpress 文件夹。
# 你可以将文件夹内容移动到根目录,或者直接将其作为站点目录。
# 简单起见,我们将内容移动到根目录覆盖:
mv wordpress/* .
# 设置必要的文件权限(让Web服务器能读写)
sudo chown -R :_www /usr/local/var/www
sudo chmod -R 755 /usr/local/var/www

2. 为WordPress创建数据库和用户
连接到MySQL,并执行以下SQL命令来创建数据库和用户:

bash

mysql -u root -p

输入你之前设置的root密码后,进入MySQL命令行,然后执行(你可以自定义 database_name、username 和 password):

bash

CREATE DATABASE database_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
EXIT;

请务必记录好你设置的数据库名、用户名和密码,下一步安装WordPress时会用到。
3. 完成WordPress安装
安装前必须确保启动了相关的服务

bash

# 启动Nginx(根据提示,你已安装但可能未启动)
brew services start nginx
# 启动PHP-FPM
brew services start php
# 启动MySQL(如果你之前已安装)
brew services start mysql

打开浏览器,访问:

你应该会看到WordPress著名的五分钟安装界面。按照提示:
选择语言。
在数据库配置页,填入第4步中创建的 数据库名、用户名、密码。“数据库主机”填写 localhost,“表前缀”保持默认 wp_ 即可。
运行安装程序,设置你的网站标题、管理员用户名、密码和邮箱。
安装成功后,用你设置的管理员账号登录,就可以开始管理你的WordPress站点了。
安全提醒与后续建议
不要在生产环境中使用:此配置(root权限、默认端口等)仅为本地开发测试而设。要部署到公网,必须进行更严格的安全配置。
端口问题:如果访问 http://localhost:8080 失败,请确认Nginx确实在监听8080端口(可通过查看配置),或检查是否有其他程序占用端口。
权限问题:如果安装或更新WordPress插件/主题时提示需要FTP凭证,是因为Web服务器进程(_www)对文件的所有权不对。可以通过命令行进入目录执行 sudo chown -R _www /usr/local/var/www 来解决(但这会改变文件所有者,请根据情况使用)。

导入数据库

在 macOS 上为 WordPress 导入已有的 MySQL 数据库,先通过命令行将 .sql 文件导入到新创建的数据库中,然后修改WordPress的 wp-config.php 文件以匹配新的数据库信息。
1. 准备数据库文件
确认你的.sql备份文件(例如 my_wordpress_backup.sql )存放的位置。为方便操作,建议将其放在用户主目录(~)下,或在后续命令中使用文件的完整路径。
2. 登录MySQL并创建目标数据库
2.1 打开终端,登录MySQL。使用安装时设置的 root 密码:

bash

mysql -u root -p

输入密码后,你会看到mysql>提示符。
2.2 创建一个新的、空数据库,用于存放导入的数据。请替换 my_wordpress_db 为你喜欢的数据库名(下文命令需保持一致):

bash

CREATE DATABASE my_wordpress_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

使用 utf8mb4 字符集可确保完美兼容 WordPress 和所有语言字符。
2.3 创建专用用户并授权(推荐,比直接使用 root 更安全)。替换 wp_useryour_strong_password

bash

CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON my_wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;

2.4 退出MySQL命令行:

bash

exit

3. 执行导入操作
在系统终端(非MySQL命令行)中,使用 mysql 命令导入。请替换 my_wordpress_db 和文件路径:

bash

mysql -u root -p my_wordpress_db > ~/path/to/your/my_wordpress_backup.sql
  • -u root -p表示以root用户登录,会提示输入密码。
  • my_wordpress_db 是刚创建的空数据库名。
  • < 是重定向符号,表示将后面文件的内容导入到前面的数据库中。
  • ~/path/to/your/my_wordpress_backup.sql 是你的备份文件完整路径。一个实用技巧:在终端输入 mysql -u root -p my_wordpress_db < 后,直接将 .sql 文件拖拽到终端窗口,其完整路径会自动填充。

导入完成后终端通常无提示,直接返回命令符。
4. 验证导入成功
再次登录MySQL,检查数据是否已存在:

bash

mysql -u root -p

在 mysql> 提示符下执行:

bash

-- 切换到导入的数据库
USE my_wordpress_db;
-- 查看所有表,应该看到 wp_posts, wp_users 等WordPress表
SHOW TABLES;
-- 可以抽查一条数据
SELECT COUNT(*) FROM wp_posts;

如果看到表和数据,说明导入成功。
5. 修改 WordPress 配置文件
导入数据库后,必须让 WordPress 知道如何连接它。编辑网站根目录下的 wp-config.php 文件:

bash

nano /opt/homebrew/var/www/wp-config.php

找到并修改以下四行,确保与第二步创建的信息完全一致:

php

// ** 数据库设置 - 具体信息来自您当前所用主机 ** //
define( 'DB_NAME', 'my_wordpress_db' ); // 第二步创建的数据库名
define( 'DB_USER', 'wp_user' ); // 第二步创建的数据库用户名
define( 'DB_PASSWORD', 'your_strong_password' ); // 第二步创建的数据库用户密码
define( 'DB_HOST', 'localhost' ); // 通常为localhost

保存并退出(Ctrl+O, Ctrl+X)。
6. 测试网站
在浏览器中访问 http://localhost:8080,你的 WordPress 网站现在应该能正常显示,并使用导入的数据运行了。

常见问题与技巧

导入失败或报错:
路径错误:使用拖拽文件到终端的方法可避免输入错误。
文件过大:可在导入命令中添加 --max_allowed_packet=512M 参数。
权限问题:确保备份文件有读取权限(chmod 644 backup.sql)。
网站显示“建立数据库连接时出错”:
100%是 wp-config.php 中的数据库信息填写错误,请仔细核对。
检查MySQL服务是否运行:brew services list | grep mysql。

方法3:MAMP或XAMPP

这些是集成开发环境,包含PHP、Apache和MySQL:

安装后,您可以在应用程序的控制面板中配置和启动PHP。

配置环境变量

安装后,如果在终端中运行php命令仍然提示command not found,您可能需要配置环境变量:
1. 打开或创建`~/.zshrc`文件(macOS 10.15及更高版本默认使用zsh):

bash

nano ~/.zshrc

2. 在文件末尾添加PHP的安装路径(根据您的实际安装路径调整):

bash

export PATH="/usr/local/php/bin:$PATH"

或者如果使用Homebrew安装:

bash

export PATH="$(brew --prefix php)/bin:$PATH"

3. 保存文件并退出编辑器,然后运行以下命令使更改生效:

bash

source ~/.zshrc

测试PHP安装

安装完成后,您可以创建一个简单的PHP文件来测试:
1. 创建一个名为test.php的文件,内容如下:

php

<?php
phpinfo();
?>

2. 在终端中运行:

bash

php test.php

如果看到PHP的配置信息,说明PHP已成功安装并可以正常运行。

解决常见问题

- 如果在安装过程中遇到权限问题,请使用sudo命令(例如sudo brew install php
- 如果使用Homebrew安装后仍然无法找到PHP命令,请尝试重启终端
- 对于macOS的beta版本,某些软件包可能需要特殊处理
完成安装后,您就可以执行PHP命令并运行我们之前创建的网站了。

那年 • 今日

  • 2020年 满减活动
  • 2017年 2017嘉年华晚会