You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Apache虚拟主机配置Laravel项目的文档根目录咨询

嘿,很高兴你已经成功把Laravel应用在Ubuntu虚拟机的Apache上跑起来了!针对文档根目录的配置,我给你梳理几个关键步骤和注意事项——毕竟Laravel的目录结构和普通PHP项目有差异,正确配置文档根是保障安全和功能正常的核心:

Laravel + Apache 文档根目录配置指南

首先要明确:Laravel的文档根目录必须指向项目的public文件夹,而不是项目根目录。这个设计是为了避免.env、配置文件等敏感内容直接暴露在Web环境中,是官方推荐的安全最佳实践。

方法1:修改Apache默认站点配置

如果你只是用虚拟机做测试,修改默认站点配置最直接:

  • 打开Apache默认站点配置文件:
    sudo nano /etc/apache2/sites-available/000-default.conf
    
  • 找到DocumentRoot指令,把默认的/var/www/html替换成你的Laravel项目public目录的绝对路径,比如:
    DocumentRoot /var/www/your-laravel-project/public
    
  • 同时修改下方的<Directory>块,确保路径匹配,并开启AllowOverride All(让Laravel的.htaccess生效):
    <Directory /var/www/your-laravel-project/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    
  • 启用Apache的rewrite模块(Laravel的路由依赖这个):
    sudo a2enmod rewrite
    
  • 重启Apache服务让配置生效:
    sudo systemctl restart apache2
    

方法2:新建虚拟主机配置(推荐用于多站点场景)

如果以后需要部署多个应用,新建独立的虚拟主机会更规范:

  • 创建新的站点配置文件:
    sudo nano /etc/apache2/sites-available/your-app.conf
    
  • 写入以下配置(替换对应的路径和域名):
    <VirtualHost *:80>
        ServerName your-app.local # 可以自定义本地域名,需修改hosts文件对应
        ServerAlias www.your-app.local
        DocumentRoot /var/www/your-laravel-project/public
    
        <Directory /var/www/your-laravel-project/public>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Require all granted
        </Directory>
    
        # 日志配置(可选,便于排查问题)
        ErrorLog ${APACHE_LOG_DIR}/your-app-error.log
        CustomLog ${APACHE_LOG_DIR}/your-app-access.log combined
    </VirtualHost>
    
  • 启用这个新站点:
    sudo a2ensite your-app.conf
    
  • (可选)禁用默认站点:
    sudo a2dissite 000-default.conf
    
  • 同样启用rewrite模块并重启Apache:
    sudo a2enmod rewrite
    sudo systemctl restart apache2
    

额外权限注意事项

Laravel需要storage和bootstrap/cache目录有写权限,确保Apache用户(www-data)能读写这些目录:

sudo chown -R www-data:www-data /var/www/your-laravel-project/storage /var/www/your-laravel-project/bootstrap/cache
sudo chmod -R 775 /var/www/your-laravel-project/storage /var/www/your-laravel-project/bootstrap/cache

内容的提问来源于stack exchange,提问作者bcrimmins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:59:10