PHP怎么配置虚拟主机_PHP本地环境搭建操作【方法】

9次阅读

PHP 怎么配置虚拟主机_PHP 本地环境搭建操作【方法】

Apache 配置虚拟主机时,DocumentRoot路径写错会导致 403 Forbidden

本地跑 PHP 项目,最常卡在访问直接报 403——不是权限问题,而是 DocumentRoot 指向了父目录或不存在的路径。Apache 默认拒绝访问非 DocumentRoot 下子目录以外的路径,且对符号链接、大小写敏感。

  • DocumentRoot必须是绝对路径,比如 /Users/you/sites/myapp,不能写./myapp~/sites/myapp
  • 对应 <directory></directory> 块里的路径要完全一致,且末尾不加斜杠(/Users/you/sites/myapp ✅,/Users/you/sites/myapp/ ❌)
  • macOS 上注意用户目录权限:如果用 ~/Sites,确保www-data(或_www)用户能读取该路径,更稳妥的做法是把项目放/usr/local/var/www 这类系统级可读路径

启用 vhost_alias 模块后,VirtualHost仍不生效?检查 httpd.conf 是否加载了配置文件

很多人改完 extra/httpd-vhosts.conf 就以为完事了,其实 Apache 默认注释掉了这行:Include /usr/local/etc/httpd/extra/httpd-vhosts.conf(macOS Homebrew 安装路径)或Include conf/extra/httpd-vhosts.conf(Windows XAMPP)。不取消注释,配置根本不会被读取。

  • 先确认 httpd -M | grep vhost 输出里有 vhost_alias_module(否则VirtualHost 语法直接报错)
  • 再执行 httpd -t 验证配置语法,返回 Syntax OK 才算真正加载成功
  • Windows 用户注意:XAMPP 控制面板里“Config → Apache (httpd.conf)”打开后搜索 httpd-vhosts,确保那行Include 没被手动删掉或拼错

PHP 解析失败:浏览器显示源码而不是执行结果

虚拟主机配好了,但 .php 文件直接下载或显示明文,说明 PHP 模块没挂到这个 VirtualHost 上,或者 AddHandler 没匹配到请求。

  • 全局开启 PHP 模块还不够,每个 VirtualHost 里得显式声明:AddHandler application/x-httpd-php .php
  • 如果用了 PHP-FPM(比如 macOS 通过 brew install php 装的),还要加 ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/usr/local/var/www/,注意路径末尾的/ 和实际文档根对齐
  • 别漏掉 DirectoryIndex index.php,否则访问http://myapp.test/ 会返回 403 或 404,而不是自动找index.php

hosts文件改了,ping myapp.test通但浏览器打不开

DNS 解析成功只说明域名能转 IP,不代表 Web 服务响应正常。常见干扰项是端口、协议、缓存三重叠加。

立即学习PHP 免费学习笔记(深入)”;

  • 确认 Apache 监听的是 80 端口(查 Listen 80 是否在 httpd.conf 里启用),如果改过端口比如8080,浏览器必须输http://myapp.test:8080
  • Chrome/Firefox 会强制 HTTPS 重定向(尤其用了 .dev.app 等预置 HSTS 域名),换 .test.localhost(后者无需 hosts 即可解析)
  • 清掉浏览器 DNS 缓存:chrome://net-internals/#dns点 Clear host cache,再试

虚拟主机真正的麻烦不在配置本身,而在路径、权限、模块加载、网络层四者之间那种“看起来都对,但就是差一口气”的耦合。调一个地方,往往要同步核对三个文件、两个命令、一次重启——少一步,就卡在某个看似无关的错误里。

text=ZqhQzanResources