如何将 Laravel(带有 Filament)部署到 cPanel 共享主机的单独文件夹中?

问题描述 投票:0回答:2

我有一个本地运行的 Laravel + Filament 环境,并且我设置了一些 Github 操作来部署在共享主机上,具体取决于推送的分支(分支开发 -> 开发 public_html/develop 目录和分支暂存 -> public_html/staging 目录)。

我设置了数据库和 .env 文件。

当我推动开发时,操作会在开发分支克隆存储库并运行作曲家安装和迁移,但它不起作用:

  • 如果我去 /develop 它会引发 403
  • 如果我进入 /develop/public 它会显示默认的 laravel 页面
  • 如果我转到/develop/public/admin,它会显示默认的Filament登录表单(并且它是正确的!),但是当我输入用户名和密码时,页面不会更改(仅刷新)

我不知道如何设置 htaccess 文件,也不知道如何正确放置文件。

你能帮我吗?

laravel shared
2个回答
0
投票

尝试以下答案。

如何将所有请求重定向到 laravel 5 中的 public/ 文件夹

这就是我所做的:

将 htaccess 文件从 public 文件夹复制到根文件夹(仅将原始文件保留在 public 中),并在根文件夹中的 htaccess 文件中添加两行。

    RewriteCond %{REQUEST_URI} !^/public/
    RewriteRule ^(.*)$ /public/$1 [L,QSA]

根文件夹 htaccess 文件如下所示。

<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]

    # Remove public URL from the path
    RewriteCond %{REQUEST_URI} !^/public/
    RewriteRule ^(.*)$ /public/$1 [L,QSA]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

希望这个答案能帮到你!


0
投票

如果您使用 GitHub 在 cPanel 上进行部署,特别是在启用 ssh 和终端时,请遵循本指南:

© www.soinside.com 2019 - 2024. All rights reserved.