PHP网站根目录如何配置?PHP环境搭建教程
- 云服务器
- 2026-02-12
- 2540
在PHP中配置网站根目录主要涉及Web服务器(如Apache或Nginx)的设置,而非直接修改PHP核心配置,以下是详细步骤:
Apache服务器配置
-
修改虚拟主机文件
找到Apache的虚拟主机配置文件(如 httpd-vhosts.conf 或站点配置文件):
<VirtualHost *:80> # 关键配置:指向你的项目目录 DocumentRoot "C:/xampp/htdocs/my_project/public" ServerName myapp.local <Directory "C:/xampp/htdocs/my_project/public"> Options Indexes FollowSymLinks AllowOverride All # 允许.htaccess生效 Require all granted </Directory> </VirtualHost> -
修改httpd.conf(可选)
全局根目录默认在 httpd.conf 中设置:
DocumentRoot "C:/xampp/htdocs" <Directory "C:/xampp/htdocs"> AllowOverride All Require all granted </Directory> -
重启Apache生效
sudo systemctl restart apache2 # Linux # 或在Windows中通过XAMPP控制面板重启
Nginx服务器配置
-
修改站点配置文件
编辑Nginx的站点文件(如 /etc/nginx/sites-available/myapp):
server { listen 80; server_name myapp.local; root /var/www/my_project/public; # 根目录指向这里 index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # PHP版本需匹配 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
-
重启Nginx生效

PHP相关注意事项
-
安全限制 open_basedir
在 php.ini 中限制PHP可访问的目录(防止跨目录访问):
open_basedir = "/var/www/my_project/:/tmp/"
-
获取当前根目录路径
在PHP脚本中可通过全局变量获取:
echo $_SERVER['DOCUMENT_ROOT']; // 输出:/var/www/my_project/public
本地开发环境配置(如XAMPP)
-
修改根目录
打开XAMPP控制面板 → Apache的 Config → 选择 httpd.conf → 修改:
DocumentRoot "D:/projects/my_app" <Directory "D:/projects/my_app"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
-
修改 httpd-vhosts.conf
添加虚拟主机指向新目录(步骤同第一部分)。
验证配置是否成功
- 在根目录创建 info.php: <?php phpinfo(); ?>
- 访问 http://localhost/info.php,检查 $_SERVER['DOCUMENT_ROOT'] 的值是否正确。
常见问题解决
- 权限问题(Linux):确保目录权限正确 sudo chown -R www-data:www-data /var/www/my_project sudo chmod -R 755 /var/www/my_project
- 403 Forbidden:检查 <Directory> 中的 Require all granted。
- .htaccess不生效:确认 AllowOverride All 已启用。
通过以上步骤,即可将PHP网站的根目录配置到指定位置。

-