本文目录导读:

- 方法一:Apache(常见于 XAMPP、WampServer、Linux LAMP)
- 方法二:Nginx(常见于宝塔面板、LNMP、macOS 自带)
- 方法三:使用集成环境面板(最简单)
- 常见问题排查
- 总结建议
在PHP项目中配置虚拟主机,主要取决于你使用的Web服务器,目前主流的有 Apache 和 Nginx 两种。
以下是针对这两种服务器的详细配置教程,并包含常见的本地开发环境(如 XAMPP、phpStudy、宝塔)的配置方法。
Apache(常见于 XAMPP、WampServer、Linux LAMP)
开启虚拟主机模块
找到 Apache 的配置文件 httpd.conf。
去掉以下两行代码前的注释(即去掉 符号):
LoadModule vhost_alias_module modules/mod_vhost_alias.so Include conf/extra/httpd-vhosts.conf
修改 httpd-vhosts.conf 文件
文件路径通常在:
- XAMPP/WampServer:
C:\xampp\apache\conf\extra\httpd-vhosts.conf - Linux:
/etc/httpd/conf/extra/httpd-vhosts.conf或/etc/apache2/sites-available/
在文件末尾添加一个虚拟主机配置块:
<VirtualHost *:80>
# 你的项目域名(本地开发可自定义,如 myproject.test)
ServerName myproject.test
# 可选的别名,方便用不同域名访问
ServerAlias www.myproject.test
# 网站根目录——指向你的 PHP 项目文件夹
DocumentRoot "D:/www/myproject"
# 目录权限配置(必须配置,否则容易403错误)
<Directory "D:/www/myproject">
Options Indexes FollowSymLinks
# 允许覆盖 .htaccess 文件
AllowOverride All
# 允许访问
Require all granted
</Directory>
# 默认首页
DirectoryIndex index.php index.html
# 错误日志
ErrorLog "logs/myproject-error.log"
CustomLog "logs/myproject-access.log" common
</VirtualHost>
绑定 Hosts(本机测试时)
找到系统 Hosts 文件:
- Windows:
C:\Windows\System32\drivers\etc\hosts - Mac/Linux:
/etc/hosts
在文件末尾添加一行,将域名指向本机 IP:
0.0.1 myproject.test
重启 Apache
- 图形界面: 打开 XAMPP 控制面板,点击 Apache 后面的 "Restart"。
- 命令行:
sudo systemctl restart httpd或sudo service apache2 restart。
Nginx(常见于宝塔面板、LNMP、macOS 自带)
找到配置文件
Nginx 的站点配置通常放在:
- Linux:
/etc/nginx/conf.d/或/etc/nginx/sites-available/ - macOS:
/usr/local/etc/nginx/servers/
创建一个新的配置文件
myproject.conf如下:
server {
# 监听端口
listen 80;
# 域名
server_name myproject.test;
# 站点根目录
root /var/www/myproject;
# 默认首页
index index.php index.html;
# 访问日志
access_log /var/log/nginx/myproject_access.log;
error_log /var/log/nginx/myproject_error.log;
# 主请求处理
location / {
# 尝试匹配文件,若不存在则重写到 index.php(适用于 Laravel/ThinkPHP 等)
try_files $uri $uri/ /index.php?$query_string;
}
# 处理 PHP 请求并转发到 PHP-FPM
location ~ \.php$ {
# 使用 fastcgi_pass,具体地址取决于你的 PHP 版本
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 或 127.0.0.1:9000
fastcgi_index index.php;
# 包含默认的 fastcgi 参数
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
绑定 Hosts
同上,在 hosts 文件中添加 0.0.1 myproject.test。
重载 Nginx
# 测试配置是否正确 sudo nginx -t # 重新加载配置 sudo nginx -s reload # 或 sudo systemctl reload nginx
使用集成环境面板(最简单)
如果你使用的是国内常见的面板(如 宝塔面板、phpStudy、LNMP一键包),可以直接通过图形界面操作,无需手动改文件:
-
宝塔面板:
- 点击左侧“网站” -> “添加站点”。
- 输入域名(如
myproject.test),设置根目录指向你的项目文件夹。 - 点击“提交”,软件会自动帮你生成配置和 Hosts 规则(部分版本需要手动本机绑定 hosts)。
-
phpStudy:
- 点击“网站” -> “创建网站”。
- 填写域名,选择 PHP 版本,设置根目录。
- 点击“确定”,自动配置完成。
-
MAMP / Laragon:
都提供了“新建主机”或“快速添加虚拟主机”的按钮,按提示填写即可。
常见问题排查
-
403 Forbidden(禁止访问)
- 检查
DocumentRoot和<Directory>路径是否完全一致。 - 检查项目文件夹的权限,确保 Web 用户(如
www-data或www)有读取权限。 - 在
<Directory>中确认Require all granted已添加(Apache)。
- 检查
-
404 Not Found(页面未找到)
- 如果是 Nginx,重点检查
try_files配置,确保路径指向index.php。 - 如果是 Apache,确认
.htaccess文件的伪静态规则需要AllowOverride All支持。
- 如果是 Nginx,重点检查
-
访问域名跳转到官网(如 localhost)
- 说明你的 Hosts 文件绑定没生效,或者浏览器缓存了 DNS,请尝试清除 DNS 缓存(Windows 执行
ipconfig /flushdns)。
- 说明你的 Hosts 文件绑定没生效,或者浏览器缓存了 DNS,请尝试清除 DNS 缓存(Windows 执行
-
PHP 文件直接下载而不执行
- Apache 可能没有加载
php_module(确认 httpd.conf 中有LoadModule php_module且已启用)。 - Nginx 中
location ~ \.php$块是否匹配到了 PHP 文件,且fastcgi_pass的 PHP-FPM 服务是否正在运行。
- Apache 可能没有加载
总结建议
- 本地开发:如果你用的是 Windows + XAMPP,推荐用 Apache 手动配置,风险低。
- 线上服务器:推荐用 Nginx,性能更好,配置也清晰。
- 新手:直接用 phpStudy 或 宝塔,图形界面一步到位,节省时间。
配置完成后,在浏览器输入 http://myproject.test 即可访问你的 PHP 项目。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播