如何在 SiteGround WordPress 主机 GrowBig 套餐上部署 Laravel 项目

如何在 SiteGround WordPress 主机 GrowBig 套餐上部署 Laravel 项目
介绍
虽然 SiteGround 的 WordPress Hosting GrowBig 套餐专为 WordPress 网站优化,但许多开发者想知道是否也能用它来托管 Laravel 应用。好消息是,完全可以!在本指南中,我们将引导您完成在 SiteGround 的 WordPress Hosting GrowBig 套餐上部署 Laravel 项目的整个过程。.
了解 SiteGround 的 WordPress 主机服务 GrowBig
在深入了解部署流程之前,我们先来了解一下 GrowBig 套餐包含哪些内容。WordPress 主机 GrowBig 套餐包含:
- 20GB 存储空间
- 无限带宽
- 支持多个网站
- 增强的安全性和备份功能
- SuperCacher 技术可提高性能
- WordPress 测试环境
- 全天候客户支持
虽然这些功能是为 WordPress 量身定制的,但其底层基础架构完全能够支持 Laravel 应用程序。.
先决条件
在 SiteGround 的 WordPress 主机 GrowBig 上部署 Laravel 之前,请确保您已具备以下条件:
- 一个有效的 SiteGround WordPress Hosting GrowBig 帐户
- 您的帐户已启用 SSH 访问权限
- 具备命令行操作的基本知识
- 服务器上已安装 Composer(SiteGround 服务器预装了 Composer)。
- PHP 7.3 或更高版本(SiteGround 支持多个 PHP 版本,最高可达 8.3)
分步部署指南
步骤 1:启用 SSH 访问
第一步是启用您帐户的 SSH 访问权限:
- 登录您的 SiteGround 网站工具
- 导航至 开发者 部分和选择 SSH密钥管理器
- 导入您的公钥以进行安全身份验证
- (可选)限制 SSH 访问至特定 IP 地址,以增强安全性。
步骤二:通过 SSH 连接。
启用 SSH 后,连接到您的服务器:
ssh username@your-domain.com
代替 用户名 使用您的 SiteGround 用户名和 your-domain.com 使用您的实际域名。.
步骤 3:创建 Laravel 项目
导航到您的项目目录,并使用 Composer 创建一个新的 Laravel 项目:
cd ~/www/your-domain.com composer create-project --prefer-dist laravel/laravel blog
此命令将在名为“Laravel”的文件夹中创建一个新的 Laravel 项目。 博客. 如果您希望将 Laravel 直接安装在根目录(不带子文件夹),可以使用以下命令:
composer create-project --prefer-dist laravel/laravel .
点号(.)表示当前目录。.
步骤 4:配置您的网站根目录
Laravel 的主要入口点是 index.php 文件位于 民众/ 文件夹。您需要配置您的域名或子域名以指向此目录。.
方案A:使用子目录
如果您想访问您的 Laravel 应用,请访问 your-domain.com/blog, 无需额外配置。即可通过该 URL 访问 Laravel 应用。.
选项 B:使用主域名
如果您希望您的 Laravel 应用成为主站点(可直接从您的域名访问),请创建一个符号链接:
cd ~/www/your-domain.com rm -rf public_html # 如果存在,则删除默认的 public_html 目录 ln -s blog/public public_html
或者,您可以在 SiteGround 控制面板中重命名目录或调整域名设置,使其指向 Laravel 公共文件夹。.
步骤 5:配置环境文件
导航到您的 Laravel 项目目录并进行设置 .env file:
cd ~/www/your-domain.com/blog cp .env.example .env php artisan key:generate
编辑 .env 包含数据库凭据的文件:
APP_NAME=Laravel APP_ENV=production APP_KEY=base64:xxxxxxxxxxxxx # This was generated by the key:generate command APP_DEBUG=false APP_URL=https://your-domain.com DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_db_username DB_PASSWORD=your_db_password
步骤 6:创建和配置数据库
在 SiteGround 控制面板中:
- 前往 数据库 部分
- 点击 MySQL数据库 或者 MariaDB 数据库
- 创建一个名为“你想要的名称”的新数据库。
- 创建一个具有强密码的新数据库用户
- 将用户分配给数据库并授予所有权限
更新您的 .env 文件中包含这些凭据。.
步骤 7:运行数据库迁移
应用程序正常运行前,需要创建必要的数据库表:
php artisan migrate
如果您有用于填充初始数据的种子数据:
php artisan db:seed
步骤 8:设置文件权限
确保 Laravel 的存储目录和引导目录拥有正确的权限:
chmod -R 775 storage chmod -R 775 bootstrap/cache
步骤 9:优化您的应用程序(可选,但推荐)
为了提高生产环境的性能,请运行以下优化命令:
php artisan config:cache php artisan route:cache php artisan view:cache
重要注意事项
GrowBig WordPress主机是Laravel的最佳选择吗?
虽然技术上可行,但仍有几点需要考虑:
- 方案设计WordPress主机方案专为WordPress优化。如果您主要使用Laravel,SiteGround的通用主机方案可能提供更合适的功能和支持。.
- 支持和工具SiteGround 的支持团队在 WordPress 支持方面训练有素。虽然他们可以协助解决一般的托管问题,但他们在 Laravel 特有的问题方面可能经验有限。.
- 一键安装WordPress 主机方案包含 WordPress 一键安装功能,但这对于 Laravel 项目来说并不实用。.
- 性能优化WordPress 测试环境和 WordPress 特有的缓存等功能可能对您的 Laravel 应用程序没有帮助。.
何时应该考虑使用常规主机方案?
如果符合以下任何条件,请考虑使用 SiteGround 的常规主机方案:
- Laravel 是你的主要或唯一应用程序
- 您需要 Laravel 相关的支持和指导。
- 您计划部署多个 Laravel 应用程序
- 您希望最大限度地提高非 WordPress 应用程序的性能。
常见问题排查
Composer安装失败
如果 Composer 内存不足:
php -d memory_limit=-1 /usr/local/bin/composer install
权限被拒绝错误
请确保 Laravel 目录拥有正确的权限:
chown -R yourusername:yourusername ~/www/your-domain.com/blog chmod -R 755 ~/www/your-domain.com/blog chmod -R 775 ~/www/your-domain.com/blog/storage chmod -R 775 ~/www/your-domain.com/blog/bootstrap/cache
部署后出现 404 错误
请确保你的 .htaccess 文件已存在于 Laravel 的 public 目录中。如果不存在,请使用以下命令创建一个:
选项 - 多视图RewriteEngine On RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ - [L] RewriteRule ^ index.php [L]
数据库连接问题
请验证您的数据库凭据。 .env 文件。运行以下命令测试连接:
php 工匠修补匠
然后在 Tinker shell 中:
DB::connection()->getPdo();
如果成功,它将返回一个无错误的 PDO 对象。.
结论
在 SiteGround 的 WordPress 主机 GrowBig 套餐上部署 Laravel 是可行的,并且对于中小型应用程序来说效果不错。但是,评估此套餐是否符合您的具体需求至关重要。如果 Laravel 是您的主要项目,那么 SiteGround 的通用主机套餐可能更适合您,这些套餐旨在支持各种基于 PHP 的应用程序,而没有 WordPress 特有的限制。.
为了获得最佳体验,请随时联系 SiteGround 的 24/7 全天候支持团队,讨论您具体的 Laravel 部署要求并获取他们的建议。.