【问题标题】:Laravel project uploading in the shared hosting issueLaravel 项目上传在共享主机问题
【发布时间】:2019-06-27 18:31:12
【问题描述】:

我刚刚完成了将数据库设置到 cpanel 并将项目上传到 cpanel 中。我压缩了项目并以这种方式上传。我将所有文件从“public”文件夹移动到 public_html,其余文件移动到一个名为“house”的新目录中,然后我编辑 index.php 文件如下

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

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

仍然无法访问该网站。我一定从一开始就错过了什么。在Firefox中,页面是空白的,谷歌浏览器说这个页面不起作用。我必须更改配置中的 .env 和 database.php 吗?我已按照一些有用视频中显示的所有说明进行操作,但似乎没有什么对我有用。

我当前的 .env 文件有以下几行(没有设置凭据)

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

【问题讨论】:

  • 要直接访问 laravel(不使用 php artisan serve),需要将 web 根目录指向 laravel 的公共目录。如果你在 laravelroot/public/index.php 中看到,那就是入口点。有几种方法可以做到这一点,检查是否可以更新 cpanel 中的 docrot 以将其指向公用文件夹。否则检查将 laravel 指向公共之外。
  • docroot 指向 index.php 所在的 public_html 文件夹。为什么我仍然无法访问该网站令人困惑。它不会抛出与路径特别相关的错误,而只是一个空白页面。
  • ohh 转到 CPanel > 文件管理器并将存储和引导的文件权限更改为 775 并重试。还要检查您是否启用了 php 错误日志记录。

标签: laravel phpmyadmin cpanel


【解决方案1】:

注意:我建议您保留所有内容,包括 .htaccess 文件

  • 在本地计算机上压缩整个项目文件夹。你会得到一个 zip 文件——laravel50.zip

  • 打开您的共享主机 cPanel。

  • 点击“文件管理器”

  • 点击“上传”

  • 将 laravelproject.zip 上传到根目录——而不是 public_html

  • 解压laravelproject.zip到文件管理器

  • 打开 laravel50 文件夹并将 public 文件夹的内容移动到您的 cpanel 的 public_html 文件夹。您现在也可以删除空的公用文件夹。

  • 导航到 public_html 文件夹并找到 index.php 文件。右键单击它并从菜单中选择代码编辑。

    • 这将打开另一个显示 cpanel 代码编辑器的选项卡。

    • 将以下行(22 和 36)从

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

require __DIR__.'/../laravel50/bootstrap/autoload.php'; ... $app = require_once __DIR__.'/../laravel50/bootstrap/app.php';

  • 请不要更改 .htaccess 文件的内容(除非您知道自己在做什么?) .htaccess 文件应如下所示。

选项 - 多视图

              RewriteEngine On

            # Redirect Trailing Slashes…
              RewriteRule ^(.*)/$ /$1 [L,R=301]

            # Handle Front Controller…
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteRule ^ index.php [L]
              </IfModule>`
  • 如果一切顺利,转到http://yourdomain.com 应该会引发数据库错误(如果您的应用程序上运行了模型)。不用担心!下一阶段是将您的数据库迁移到您的共享主机。

【讨论】:

    【解决方案2】:

    也许这会对你有所帮助,

    1. 在实时上传项目之前清除所有缓存。
    2. 像以前一样更改 index.php 文件。
    3. 更改你的 server.php 文件

      if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
      return false;
      }
      
      require_once __DIR__.'/public/index.php';
      

    到,

       if ($uri !== '/' && file_exists(__DIR__.'/../public_html'.$uri)) {
          return false;
       }
    
       require_once __DIR__.'/../public_html/index.php';
    

    【讨论】:

      【解决方案3】:

      public 文件夹中将所有内容复制到 public_html 并将路径更改为

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-02
        • 1970-01-01
        • 2017-12-13
        • 1970-01-01
        • 2016-02-04
        • 1970-01-01
        • 2016-05-21
        相关资源
        最近更新 更多