为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 godaddy 托管服务器上部署 laravel 项目

如何在 godaddy 托管服务器上部署 laravel 项目

PHP
PIPIONE 2023-07-21 18:03:53
我目前刚开始将项目文件部署到 godaddy 托管站点,所以在发布此内容之前,我阅读了 stackoverflow 中已经创建的一些相关问题,我只是感到困惑,因为 cpanel 有 public_html 文件夹,而我的面板没有公共 html。所以现在我经历HTTP 错误 404。找不到请求的资源。我唯一做的就是移动 httpdocs 中的 laravel 文件。我的面板:Plesk Onyx 17.8.11对于文件夹结构:所以 httpdocs 里面是我所有的 laravel 文件网站显示是这样的..
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

我认为您的文件夹结构是这样的原因是您的 GoDaddy 主机是 Windows 共享主机。

基本上需要做的是在主目录上为您的应用程序创建一个文件夹,然后在 httpdocs 上,将您的应用程序中的公共文件夹放入其中。

GoDaddy Plesk 文件夹列表:

  • cgi-bin

  • 错误文档

  • http文档

  • 日志

  • <您的 laravel 应用程序文件夹减去“Public”文件夹>

在 httpdocs 文件夹内:

  • 应用程序数据

  • .user.ini

  • 默认.aspx

  • 网络配置

  • <+ 公共文件夹的内容>

完成后,您将需要编辑一些文件:

来自公共文件夹:index.php

查找

require __DIR__.'/../vendor/autoload.php';

更改为

require __DIR__.'/../<laravel app folder>/vendor/autoload.php';

下一个查找

$app = require_once __DIR__.'/../bootstrap/app.php';

更改为

$app = require_once __DIR__.'/../<laravel app folder>/bootstrap/app.php';

此后,请确保.env文件已正确配置,并且本地数据库中的所有表都已镜像到服务器数据库中。

另外,如果您遇到open_dir问题,您可以在Plesk 的 PHP 设置中禁用它,但我不确定从长远来看这会导致什么问题。


查看完整回答
反对 回复 2023-07-21
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

嗯,有两种方法...

第一个在 cpanel 中搜索“Installatron 应用程序安装程序”或某种应用程序安装程序:) 在右上角的 installatron 应用程序安装程序屏幕中找到“应用程序浏览器”,从那里搜索 Laravel 并通过选择您的域来安装它(如果您有多个域)

安装后,复制本地文件并将其替换为远程文件。

第二种方法,.zip 本地 laravel 文件夹。并将文件上传到服务器,然后提取文件。

现在从这里开始,两种方式都是一样的->

  1. laravel 项目中的“public”目录将位于远程服务器的根目录中(您的域的根文件夹,如果您有 ex. public_html/example.com 的插件域,那么“public”文件夹应该位于该 example.com 中)

  2. 创建另一个文件夹并将所有其他 Laravel 文件和文件夹放入该文件夹中。

  3. 打开并编辑 /public/index.php 更改这两行->

    需要DIR .'/../vendor/autoload.php'; app = require_once DIR .'/../bootstrap/app.php';

以反映服务器中的文件结构。对于前。如果“public”文件夹与“vendor”和“bootstrap”位于同一目录中,则删除/..

  1. 编辑 .env 文件,注意数据库凭据。PS:不要更改数据库主机地址,它应该保持不变。

最后, 您需要有两个 .htaccess文件 ,其中一个位于“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]


# Send Requests To Front Controller...

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^ index.php [L]

第二个 .htaccess 文件将位于域的根文件夹中,内容为 >


RewriteEngine on

RewriteCond %{REQUEST_URI} !^public

RewriteRule ^(.*)$ public/$1 [L]

如果 php 版本问题表明 Composer 依赖项版本是 php7.xx bla bla,您可能会遇到一个问题


如果发生这种情况,请再次转到 cpanel 并搜索“选择 PHP 版本”,从那里更改您当前的 PHP 版本以适应您在错误中遇到的 PHP 版本。并且您需要单击“设置为当前”!


查看完整回答
反对 回复 2023-07-21
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

完成后我仍然无法获取内部 api 路由。显示的错误是 404。Laravel 主页可以查看,但http://example.com/api/user/login等内部页面无法正常工作

解决方案:

我在以下链接的帮助下解决了这个问题

Pleask 上的 Laravel 项目除主页外其他路线均无法使用

https://jimfrenette.com/2016/09/laravel-iis-windows-install/

一切都按照上面的解释完成,唯一的区别是 Windows 服务器和 IIS 不遵循 .htaccess,因此我们必须在 web.config 文件中执行此操作。所以我只是复制了https://jimfrenette.com/2016/09/laravel-iis-windows-install/ web.config 配置并将其粘贴到我的公共文件夹 web.config 文件中,然后一切正常。

我希望这对其他在这个问题上摸不着头脑的人也有帮助。


查看完整回答
反对 回复 2023-07-21
  • 2 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信