如何在Godaddy托管服务器上部署laravel项目(Plesk Onyx CPanel)

时间:2020-07-10 03:27:28

标签: php laravel

我目前是刚开始将项目文件部署到godaddy托管站点,所以在发布此文件之前,我阅读了stackoverflow中已经在此处创建的一些相关问题,我只是感到困惑,因为cpanel有public_html文件夹,而我的面板没有公共html 。所以现在我经历了

HTTP错误404。找不到请求的资源。

我唯一要做的就是在httpdocs中移动laravel文件。

我的CPanel:Plesk玛瑙17.8.11

对于文件夹结构:

FTP Folder

所以在httpdocs里面是我所有的laravel文件

Laravel Files

网站显示如下。

Website Error

希望有人帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

嗯,有两种方法...

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

安装后复制并用远程文件替换本地文件。

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

现在两种方式都一样->

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

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

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

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

反映服务器中的文件结构。 例如。如果“public”文件夹与“vendor”和“bootstrap”在同一目录下,删除/..

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

最后是 .htaccess 文件 您需要有两个 .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]

# 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 版本。您需要点击“设为当前”!

就是这样:)

答案 1 :(得分:0)

我认为您的文件夹结构之所以如此,是因为您的GoDaddy托管是Windows共享托管。

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

GoDaddy Plesk文件夹列表:

  • cgi-bin
  • error_docs
  • httpdocs
  • 日志
  • <您的laravel应用文件夹减去“公共”文件夹>

在httpdocs文件夹中:

  • App_Data
  • .user.ini
  • Default.aspx
  • web.config
  • <+公用文件夹的内容>

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

从公用文件夹: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 文件,并且将 local 数据库中的所有表都镜像到了 server 数据库中

此外,如果您遇到 open_dir 问题,则可以在 Plesk的PHP设置中将其禁用,但是我不确定这会导致什么问题运行。