如何在不使用 SSH 的情况下将 Laravel 5 应用程序部署到共享主机上
首先,强烈建议不要使用共享主机来托管 Laravel 5 应用。市面上有很多价格非常低廉的虚拟主机选择,每月仅需 7 美元起。
但是,某些客户(预算非常低的客户)或情况(例如,你想测试一些东西然后继续进行)可能需要你使用共享主机。
最近我需要将一个应用程序托管在共享主机上。我发现网上关于如何操作的文章零散且不完整,所以我决定自己写一篇完整的教程。
我将在此介绍以下内容:
-
如何将应用部署到共享主机。
-
如何在不运行迁移命令的情况下迁移数据库!
第一步:
我假设您已经完成了应用程序的构建——至少是一个可以在本地主机上运行的功能完善的应用程序。我还假设您使用的是 Laravel 5.0——尽管本文也适用于 Laravel 5.1。
假设你的 Laravel 项目名为 laravel50,文件夹结构如下:
注意:我建议您保持所有内容不变,包括 .htaccess 文件。
-
将本地计算机上的整个项目文件夹压缩。您将得到一个 zip 文件——laravel50.zip
-
点击“文件管理器”
-
点击“上传”
-
将 laravel50.zip 上传到根目录,而不是 public_html 目录。
-
解压 laravel50.zip 文件。你的 cPanel 文件管理器应该看起来像这样:
-
打开 laravel50 文件夹,并将 public 文件夹中的内容移动到 cPanel 的 public_html 文件夹中。您也可以立即删除空的 public 文件夹。
-
导航至 public_html 文件夹并找到 index.php 文件。右键单击该文件,然后从菜单中选择“代码编辑”。
-
这将打开另一个标签页,显示 cPanel 代码编辑器。
-
将以下两行(第 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';`
注:根据您的项目文件夹名称
-
请不要更改 .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>` -
如果一切顺利,访问http://yourdomain.com应该会抛出数据库错误(前提是你的应用中运行着模型)。别担心!下一步是将数据库迁移到你的共享主机。
迁移您的表
Laravel 框架的一大优点是,它允许你通过一条命令快速配置数据库php artisan migrate。由于我们使用的是共享主机,因此必须通过 SSH 才能完成此操作。如果你最多只有 10 个表,这很容易做到。操作很简单,让我们开始吧:
在您的网站主机上创建一个数据库。
-
大多数 cPanel 控制面板都自带 PHPMyAdmin 和 MySQL 数据库向导。使用 MySQL 数据库向导创建数据库和用户,然后将该用户分配给数据库并授予所有权限。记下用户名和密码,稍后会用到。
-
使用 cPanel 的 PHPMyAdmin 创建数据表。为了提高效率,请在本地计算机上打开 PHPMyAdmin。对于每种表结构,请在 cPanel 的 PHPMyAdmin 中创建完全相同的结构。

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

导出完成后,迁移到您的共享主机并执行相同的操作,但这次我们使用导入工具。
- 在 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



