繁体   English   中英

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

[英]How to deploy laravel project on the godaddy hosting server (Plesk Onyx CPanel)

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

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

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

我的 CPanel:Plesk Onyx 17.8.11

对于文件夹结构:

FTP 文件夹

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

Laravel 文件

网站显示是这样的。。

网站错误

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

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

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

GoDaddy Plesk 文件夹列表:

  • cgi-bin
  • 错误文档
  • httpdocs
  • 日志
  • <您的 laravel 应用程序文件夹减去“公共”文件夹>

在 httpdocs 文件夹内:

  • 应用程序数据
  • .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文件,并且本地数据库中的所有表都镜像到您的服务器数据库中。

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

嗯,有两种方法...

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

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

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

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

  1. laravel 项目中的“public”目录将位于您的远程服务器的根目录中(您的域的根文件夹,如果您有附加域,例如 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. 编辑 your.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 版本问题说明作曲家依赖版本是 php7.xx bla bla,您可能会遇到一个问题

If this happens go to cpanel again and search for "Select PHP Version" From there change your current PHP version to suit with the PHP version you get in the error. 您需要点击“设为当前”!

而已:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM