发布于 2026-01-05 1 阅读
0

如何在不使用 SSH 的情况下将 Laravel 5 应用程序部署到共享主机上

如何在不使用 SSH 的情况下将 Laravel 5 应用程序部署到共享主机上

首先,强烈建议不要使用共享主机来托管 Laravel 5 应用。市面上有很多价格非常低廉的虚拟主机选择,每月仅需 7 美元起。

但是,某些客户(预算非常低的客户)或情况(例如,你想测试一些东西然后继续进行)可能需要你使用共享主机。

最近我需要将一个应用程序托管在共享主机上。我发现网上关于如何操作的文章零散且不完整,所以我决定自己写一篇完整的教程。

我将在此介绍以下内容:

  1. 如何将应用部署到共享主机。

  2. 如何在不运行迁移命令的情况下迁移数据库!

第一步:

我假设您已经完成了应用程序的构建——至少是一个可以在本地主机上运行的功能完善的应用程序。我还假设您使用的是 Laravel 5.0——尽管本文也适用于 Laravel 5.1。

假设你的 Laravel 项目名为 laravel50,文件夹结构如下:

您的项目结构

注意:我建议您保持所有内容不变,包括 .htaccess 文件。

  1. 将本地计算机上的整个项目文件夹压缩。您将得到一个 zip 文件——laravel50.zip

  2. 打开您的共享主机控制面板。
    共享主机上的 cPanel 主页

  3. 点击“文件管理器”

  4. 点击“上传”

  5. 将 laravel50.zip 上传到根目录,而不是 public_html 目录。

  6. 解压 laravel50.zip 文件。你的 cPanel 文件管理器应该看起来像这样:

cPanel 文件管理器

  1. 打开 laravel50 文件夹,并将 public 文件夹中的内容移动到 cPanel 的 public_html 文件夹中。您也可以立即删除空的 public 文件夹。

  2. 导航至 public_html 文件夹并找到 index.php 文件。右键单击该文件,然后从菜单中选择“代码编辑”。

  3. 这将打开另一个标签页,显示 cPanel 代码编辑器。

  4. 将以下两行(第 22 行和第 36 行)更改为

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

注:根据您的项目文件夹名称

  1. 请不要更改 .htaccess 文件的内容(除非您知道自己在做什么🙂),.
    htaccess 文件应该类似于这样。

                     `<IfModule mod_rewrite.c>
                      <IfModule mod_negotiation.c>
                      Options -MultiViews
                      </IfModule>
    
                      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>`
    
  2. 如果一切顺利,访问http://yourdomain.com应该会抛出数据库错误(前提是你的应用中运行着模型)。别担心!下一步是将数据库迁移到你的共享主机。

迁移您的表

Laravel 框架的一大优点是,它允许你通过一条命令快速配置数据库php artisan migrate。由于我们使用的是共享主机,因此必须通过 SSH 才能完成此操作。如果你最多只有 10 个表,这很容易做到。操作很简单,让我们开始吧:

在您的网站主机上创建一个数据库。

  1. 大多数 cPanel 控制面板都自带 PHPMyAdmin 和 MySQL 数据库向导。使用 MySQL 数据库向导创建数据库和用户,然后将该用户分配给数据库并授予所有权限。记下用户名和密码,稍后会用到。

  2. 使用 cPanel 的 PHPMyAdmin 创建数据表。为了提高效率,请在本地计算机上打开 PHPMyAdmin。对于每种表结构,请在 cPanel 的 PHPMyAdmin 中创建完全相同的结构。
    这是一个示例

  3. 还有另一种从本地计算机导入和导出数据库的方法。
    从您的计算机登录 PHPMyAdmin,找到您的项目使用的数据库,然后从工具栏中找到导出工具。

这是一个示例
导出完成后,迁移到您的共享主机并执行相同的操作,但这次我们使用导入工具。

这是一个示例
如果上传成功,您将看到“成功消息”。

  1. 在 cPanel 文件管理器中,导航到 laravel50(或您的 Laravel 项目目录)。转到config/database.php。右键单击并选择“代码编辑”。找到第 55 行——您的 MySQL 配置部分。

请将用户名和密码更改为您在 cPanel 中设置的 MySQL 用户名和密码(您之前已记录)。

请确保这些信息输入正确。

如果一切顺利,您的网站现在应该可以正常运行了。现在就去试试吧。

文章来源:https://dev.to/edet/deploying-laravel-5-applications-on-shared-hosting-without-the-use-of-ssh--16a6