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

群晖DS718+(DSM6.1.7)部署Laravel5.6遇404错误求助

解决群晖DS718+(DSM 6.1.7)上Laravel 5.6的404问题

我之前帮朋友在群晖上部署过Laravel,你遇到的问题其实很常见——官方客服说不支持只是保守答复,社区里大把成功案例,核心问题大概率是URL重写规则没配置对或者权限/路径设置有误,咱们一步步排查:

  • 先确认虚拟主机根目录是否正确
    Laravel的入口文件是public/index.php,所以你的虚拟主机预设路径必须直接指向web/app/public,而不是web/app。虽然你说已经设置了这个路径,但建议再核对一遍:有没有拼写错误?文件夹是否确实存在?群晖的文件系统虽然大小写不敏感,但最好保持路径和实际文件夹名称完全一致。

  • 配置Apache的URL重写规则(关键!)
    Laravel依赖mod_rewrite实现伪静态,把所有请求导向入口文件,你需要做两件事:

    1. 开启Apache的mod_rewrite模块:打开Web Station,找到Apache 2.4的设置,进入「模块」选项卡,找到mod_rewrite并勾选启用,保存后重启Apache。
    2. 修复public文件夹下的.htaccess:如果Laravel的public文件夹里没有这个文件,新建一个;如果有,替换成下面的内容:
      <IfModule mod_rewrite.c>
          <IfModule mod_negotiation.c>
              Options -MultiViews -Indexes
          </IfModule>
      
          RewriteEngine On
      
          # Handle Authorization Header
          RewriteCond %{HTTP:Authorization} .
          RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      
          # Redirect Trailing Slashes If Not A Folder...
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_URI} (.+)/$
          RewriteRule ^ %1 [L,R=301]
      
          # Handle Front Controller...
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^ index.php [L]
      </IfModule>
      
      另外要给.htaccess设置正确的权限:通过File Station右键文件,把权限设为644,所属用户组改成http(群晖Web服务器的运行用户),确保服务器能读取这个文件。
  • 检查Laravel所需的PHP扩展
    你说勾选了所有扩展,但还是要确认几个Laravel 5.6的必备扩展是否真的启用:OpenSSL、PDO、Mbstring、Tokenizer、XML,还有连接MariaDB需要的PDO_MySQL。可以通过phpinfo页面搜索这些扩展名称,确认它们的状态是「enabled」。

  • 修复Laravel的文件夹权限
    群晖的权限管控很严,Laravel的storage和bootstrap/cache文件夹需要写入权限才能正常运行:

    1. 在File Station找到web/app/storage和web/app/bootstrap/cache。
    2. 右键文件夹→「属性」→「权限」,添加用户http,给它「读写」权限,记得勾选「应用到所有子文件和文件夹」,保存设置。
  • 如果尝试Nginx的话
    之前你试过Nginx没成功,可能是没加重写规则。在Web Station的Nginx虚拟主机设置里,找到「自定义配置」,添加这段代码:

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    

    保存后重启Nginx再测试。

按照上面的步骤调整后,应该就能正常访问Laravel了——我之前帮朋友部署的时候,就是靠调整.htaccess和权限解决的404问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:14:57