【问题标题】:Deploying Laravel to Bluehost将 Laravel 部署到 Bluehost
【发布时间】:2017-04-21 07:35:14
【问题描述】:

我想知道是否有人有将 larval 部署到蓝色主机的经验?我正在播放一个 youtube 教程,该教程展示了如何将 larval 应用程序部署到共享托管服务。它使用的是 Godaddy.com,但是,我使用的是 Bluehost,它没有按预期工作。但是我设法不返回内部服务器错误。

我所做的是配置 .env 文件,使其具有正确的数据库信息和指向我的域的 APP_URL。

youtube 教程说我还应该从公用文件夹中删除所有内容并将其放在应用程序主文件夹中,该文件夹在 Bluehost 上是 public_html 文件夹。我还更改了 .htaccess 并在重写中删除了处理尾部斜杠重定向的公共。

现在,当我指向我的网站时,所提供的只是一个空白屏幕。但似乎有些工作,因为我上传了一个呈现给浏览器的 html 网页。我只是想知道我该从哪里开始运行整个站点。

我使用的是 php 5.6。

任何帮助都会很棒。谢谢

【问题讨论】:

  • 我还应该提到我正在使用 larval 5.3,并且我确实更改了 index.php 页面以反映 bootstrap/autoloader.php 的位置,因为我将所有内容从公共文件夹移动到主文件夹。

标签: deployment laravel-5.3 php-5.6 bluehost


【解决方案1】:

这是我的 .htaccess 代码,在不同的服务器上是不同的。

#默认设置

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php72” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php72 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit


//bluehost------------

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>

RewriteEngine On
RewriteBase /
# 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]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

【讨论】:

    【解决方案2】:

    检查 Laravel 的 PHP 版本是否正确

    在 cPanle 中为 PHP 启用 FastCGI


    打开位于 /public 的文件 .htaccess 并编辑

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>
    
        RewriteBase /public/
    
    # For security reasons, Option followsymlinks cannot be overridden.
    #   Options +FollowSymLinks
        Options +SymLinksIfOwnerMatch
        RewriteEngine On
    
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php?/$1 [L]
    </IfModule>
    

    【讨论】:

      【解决方案3】:

      我认为您正在使用共享主机

      按照以下步骤操作 1:将文件上传到 public_html 后,将所有 /public 文件移动到 public_html 文件夹中所有文件,如 index.php, .htaccess and assets 文件夹等

      2:在index.php中找到下面一行

      require __DIR__.’/../bootstrap/autoload.php’;
      require __DIR__.’/../project/bootstrap/autoload.php’;
      

      改成

      require __DIR__.’/bootstrap/autoload.php’;
      require __DIR__.’/project/bootstrap/autoload.php’;
      

      就是这样。那么,玩得开心。

      【讨论】:

        猜你喜欢
        • 2017-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-24
        • 1970-01-01
        相关资源
        最近更新 更多