在phpenv下运行多个wordpress站点,须为每个站点创建独立数据库(如wp_blog1)、专属数据库用户与密码,并在wp-config.php中严格匹配db_name、db_user、db_password;通过hosts配置本地域名(如site1.test),并在apache的httpd-vhosts.conf中为各站设置独立virtualhost,同时在wp-config.php中显式定义cookie_domain(如'.site1.test')以避免登录冲突。

在 phpEnv 环境下跑多个 WordPress 站点,**不能靠复制粘贴根目录完事**——每个站点必须有独立数据库、独立 wp-config.php、独立 PHP 运行上下文,否则 cookie 冲突、插件混用、数据库写错表是分分钟的事。
怎么给每个 WordPress 站点配独立数据库和用户
phpEnv 自带的 phpMyAdmin 是共用入口,但数据库必须物理隔离:
- 进 phpMyAdmin 后,新建数据库名别用
wordpress这种通用名,推荐带前缀如wp_blog1、wp_shop2 - 新建同名数据库用户(如
wp_blog1),密码强度要够,别用123456或空密码 -
wp-config.php里填的DB_NAME、DB_USER、DB_PASSWORD必须和上一步完全一致,大小写都不能错 - 别把所有站点都指向同一个
DB_HOST的localhost就完事——phpEnv 默认 MySQL 监听127.0.0.1:3306,没问题;但如果改过端口(比如用了 3307),DB_HOST得写成127.0.0.1:3307
hosts 文件怎么配才能本地访问多个域名
Windows 下改 C:\Windows\System32\drivers\etc\hosts 是唯一靠谱方式,但权限常被卡住:
- 别双击直接编辑 hosts——右键用记事本「以管理员身份运行」再打开它
- 每行一个映射,格式严格:
127.0.0.1 site1.test、127.0.0.1 shop.local,中间是 Tab 或空格都行,但不能有多余字符 - 域名后缀别用
.com或.org——浏览器可能真去公网查 DNS,推荐.test、.local、.dev(注意 Chrome 对.dev强制 HTTPS,慎用) - 改完不用重启 phpEnv,但浏览器要清 DNS 缓存:CMD 执行
ipconfig /flushdns,或直接重启浏览器
为什么两个 WordPress 后台互相踢登录?
这是 cookie 域名冲突最典型的表现,根源在 wp-config.php 的 cookie 设置没拆开:
- 每个站点的
wp-config.php必须加这三行(位置在/* That's all, stop editing! */之前):
define('COOKIE_DOMAIN', '.site1.test');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
注意:COOKIE_DOMAIN 值必须带点号开头(.site1.test),且和你在 hosts 里配的域名、浏览器访问的地址**完全一致**;site2.test 站点就得写 .site2.test,写错一个字母就跨域失效。
- 如果站点用子目录(如
localhost/blog1),则COOKIE_DOMAIN应留空或删掉,改用COOKIEPATH限定路径 - 别信网上“注释掉 COOKIE_DOMAIN 就行”的说法——不显式定义,WordPress 会自动推导,而推导逻辑在多站点下极不可靠
phpEnv 的 Apache 虚拟主机怎么为每个 WordPress 单独配置
phpEnv 默认只绑定了 localhost,新增站点必须手动加 <virtualhost></virtualhost> 块:
- 打开
phpEnv\Apache\conf\extra\httpd-vhosts.conf - 每站点加一段(以
site1.test为例):
<virtualhost>
ServerName site1.test
DocumentRoot "D:/phpEnv/www/site1.test"
<directory>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</directory></virtualhost>
关键点:
-
DocumentRoot路径必须是绝对路径,且末尾**不要加斜杠** -
AllowOverride All必须开启,否则 WordPress 的.htaccess伪静态规则不生效 - 改完保存,必须在 phpEnv 主界面点击「Apache」→「重载配置」,不是重启服务
- 如果 Apache 启动失败,看错误日志:
phpEnv\Apache\logs\error.log,90% 是路径写错或端口被占
最易被忽略的是:phpEnv 每次升级可能覆盖 httpd-vhosts.conf,或者重置 Apache 配置。批量管理几十个站点时,建议把虚拟主机配置抽成单独文件,用 Include 引入,避免升级丢配置。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











