【问题标题】:How to deploy laravel project on the godaddy hosting server (Plesk Onyx CPanel)如何在 godaddy 托管服务器上部署 laravel 项目(Plesk Onyx CPanel)
【发布时间】:2020-10-30 18:13:43
【问题描述】:

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

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

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

我的 CPanel:Plesk Onyx 17.8.11

对于文件夹结构:

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

这样的网站显示..

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

【问题讨论】:

  • 在公用文件夹(您的 laravel 公用文件夹)yoursite.com/public 中打开它,顺便说一句,将所有 laravel 项目托管到您的公用文件夹是一种糟糕的方式,任何人都可以访问您的 .env 和所有后端脚本
  • 托管所有 laravel 项目的坏方法是什么意思?
  • 确切地说是公共目录,它会暴露你所有的后端脚本,例如每个人都可以看到你的.env文件并且可以看到你的数据库用户名和密码
  • 那我应该怎么做才能防止呢?

标签: php laravel


【解决方案1】:

嗯,有两种方法……

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

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

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

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

  1. laravel 项目中的“public”目录将位于您的远程服务器的根目录中(您的域的根文件夹,如果您有 ex.public_html/example.com 的附加域,那么“public”文件夹应该在该示例中。 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 文件 您需要有两个 .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 版本。并且你需要点击“设为当前”!

就是这样:)

【讨论】:

    【解决方案2】:

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

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

    GoDaddy Plesk 文件夹列表:

    • cgi-bin
    • error_docs
    • httpdocs
    • 日志

    在 httpdocs 文件夹内:

    • App_Data
    • .user.ini
    • 默认.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 设置 上禁用它,但我不确定这会导致什么问题运行。

    【讨论】:

      猜你喜欢
      • 2020-04-01
      • 2020-03-23
      • 2019-10-02
      • 2020-06-28
      • 2021-03-22
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多