PHP多站点由Web服务器(Apache/Nginx)实现,非PHP本身;关键配置包括:Apache用VirtualHost绑定域名与DocumentRoot,Nginx用server块配server_name与root,并确保PHP-FPM正确转发且路径匹配。

PHP 8.5 本身不负责多站点管理,它只是脚本引擎。真正实现多站点的是 Web 服务器(如 Apache 或 Nginx),PHP-FPM 负责处理 PHP 请求。配置的关键在于:让每个域名指向独立目录,并确保 PHP 8.5 能正确解析该目录下的 .php 文件。
下面分两大部分说明操作要点,适用于本地开发或轻量生产环境(如使用 XAMPP、WAMP、宝塔、或手动编译的 Apache/Nginx + PHP 8.5):
Apache 下配置多站点(推荐用于 PHP 8.5)
核心是启用 httpd-vhosts.conf 并添加多个 <VirtualHost> 块:
- 确认 Apache 已加载虚拟主机模块:
在httpd.conf中确保以下两行未被注释:LoadModule vhost_alias_module modules/mod_vhost_alias.so
Include conf/extra/httpd-vhosts.conf
- 编辑
conf/extra/httpd-vhosts.conf,为每个站点写一段配置,例如:<VirtualHost *:80> ServerName site1.test DocumentRoot "D:/www/site1" <Directory "D:/www/site1"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> <p><VirtualHost *:80> ServerName site2.test DocumentRoot "D:/www/site2" <Directory "D:/www/site2"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>注意:DocumentRoot 必须指向项目根目录(Laravel/Symfony 等框架请指向public/子目录);路径用正斜杠/或双反斜杠\,避免单反斜杠出错。 - 修改系统
hosts文件(C:\Windows\System32\drivers\etc\hosts或/etc/hosts),添加:127.0.0.1 site1.test<br>127.0.0.1 site2.test
开发建议用.test后缀,避免与真实域名冲突。 - 验证并重启:
运行httpd -t检查语法;无报错后重启 Apache。
Nginx 下配置多站点(更轻量,适合 PHP 8.5 + FPM)
Nginx 用 server 块代替 VirtualHost,需确保 PHP-FPM 正在运行且 sock 路径匹配:
立即学习“PHP免费学习笔记(深入)”;
- 在
/etc/nginx/sites-available/(Linux)或 Nginx 安装目录的conf/vhosts/(Windows)下创建配置文件,如site1.test:server { listen 80; server_name site1.test; root /var/www/site1; index index.php; <pre class='brush:php;toolbar:false;'>location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.5-fpm.sock; # 关键:确认此路径存在且 PHP 8.5-FPM 已启用 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }}
- 启用配置(Linux):
ln -s /etc/nginx/sites-available/site1.test /etc/nginx/sites-enabled/<br>nginx -t && systemctl reload nginx
- 同样需在
/etc/hosts添加映射,Windows 同理。
PHP 8.5 相关注意事项
不需要为每个站点单独安装 PHP,但要注意:
- 确保 PHP 8.5 的
php-fpm服务已启动(Nginx 场景)或 Apache 加载了libphp.so(mod_php 方式,较少用于 8.5+); - 若用 PHP-FPM,推荐为每个站点配置独立池(
www-site1.conf),避免一个站点异常拖垮全部; - 检查
open_basedir、disable_functions等安全限制是否影响多站点——默认通常无需改; - 所有站点共用同一份
php.ini,如需差异化配置(如时区、内存限制),可在 VirtualHost 或 server 块中用php_value(Apache)或fastcgi_param PHP_VALUE(Nginx)覆盖。
不复杂但容易忽略。



















