返回博客

在 Ubuntu 20.04 上安装和配置 Laravel 与 Nginx

在 Ubuntu 20.04 上安装和配置 Laravel 与 Nginx

介绍

Laravel 是一个 Web 应用程序框架,它配备了 一套内置的工具和资源 来开发现代的 PHP 应用程序。它以其可靠性、性能、效率、模块化和安全性而闻名。由于其各种内置功能,Laravel 的受欢迎程度经历了令人难以置信的增长。许多开发人员正在采用 Laravel 来简化 Web 开发流程。

指南将演示如何在 Ubuntu 20.04 上安装和配置新的 Laravel 应用程序.

Ubuntu 上的 Laravel

我们将使用 Composer,一个 PHP 依赖管理器,来下载和管理 Laravel。要 安装 Composer,请按照本教程的说明进行操作。 The Nginx 服务器 将为该应用程序提供服务。它将使用 MySQL 数据库建立一个演示 Laravel 应用程序。

本指南需要一些前提条件。我们假设您已经有一个配置妥当并正常运行的 Ubuntu 20.04 服务器。作为参考,这里有一个关于 设置 Ubuntu 服务器 的快速指南。还需要安装并配置 LEMP(Linux、Nginx、MySQL 和 PHP)堆栈。我们有一份关于 安装和配置 LEMP 堆栈.

的详细指南。因为我们要安装各种软件包,所以需要 root 权限。在 Ubuntu 中,默认情况下禁用 root 用户。因此,我们需要访问具有 sudo 权限的非 root 用户。这里是 如何向其他用户授予 sudo 权限.

步骤 1 – 安装 PHP 模块

在安装 Laravel 之前,我们需要一些用于该框架的重要 PHP 模块。这些模块可以直接从 Ubuntu 默认软件包仓库中获取。这些模块支持字符编码、XML 和高精度数学等功能。

首先,更新 APT 缓存并安装软件包:

步骤 2 – 为应用程序创建数据库

为了演示 Laravel 的功能,我们将制作一个旅行清单应用程序,其中显示用户想要访问的地点列表,以及已经 访问过 的地点列表。我们可以将这些数据存储在 place 表中,其中包含字段 name(位置名称)和 visited(标记为 已访问未访问)。另一个字段将作为每个条目的唯一标识。为了将数据与我们的 Laravel 应用程序连接起来,我们将创建一个专用的 MySQL 用户,并授予该用户对数据库 travellist.

的完全权限。原生的 MySQL PHP 库 mysqlnd 不再支持 caching_sha2_authentication。因此,我们需要使用身份验证方法 mysql_native_password 来设置我们的数据库。以 root:

接下来,创建一个名为 travellist:

之后,创建一个专用用户 travellist_user 并设置合适的密码:

授予用户 travellist_user 对数据库 travellist 的完全权限。这还将防止该用户在服务器上创建和修改任何其他数据库:

退出 MySQL shell:

exit

让我们测试一下新用户。以下命令将以用户 travellist_user 登录到 MySQL shell。标志 -p 将提示输入用户密码:

打印所有可用的数据库。按照之前的配置,它应该只显示 travellistinformation_schema

接下来,我们需要创建数据表 places。运行以下 MySQL 语句:

让我们用一些示例数据填充表格:

让我们看看数据是否已成功存储在数据库中:

如我们所见,测试表中已填充了有效数据。我们现在可以退出 MySQL shell:

MySQL shell

步骤 3 – 创建新的 Laravel 应用

我们现在准备好使用 Composer 创建一个新的 Laravel 应用程序。我们将使用 travellist 作为演示应用程序。该应用程序将显示 MySQL 数据库中的位置列表,展示 Laravel 的基本配置。转到用户的主目录:

下一步是使用 Composer 创建一个新的 Laravel 应用程序。它将创建一个专用目录 travellist,其中包含具有默认设置的骨架 Laravel 应用程序。运行以下命令:

composer create-project

应用程序创建完成后,我们可以验证是否所有组件都已成功安装:

php artisan

输出结果验证了所有应用程序文件均已就绪。它还确保了所有 Laravel 命令行工具均可正常运行。不过,它仍然需要进行应用程序配置以设置数据库以及进行一些额外的调整。

步骤 4 – Laravel 配置

所有 Laravel 配置文件都存储在根应用程序目录中名为 config 的目录内。此外,在使用 Composer 安装 Laravel 时,它还会创建一个环境文件。它包含特定于当前环境的各种设置。其中声明的值将优先于常规配置文件中设置的值,这些常规配置文件位于 config.

每个唯一的安装都需要自己的环境文件来定义数据库连接设置、应用 URL、调试选项等值。请注意,环境文件包含敏感信息,如数据库凭据、安全密钥等。因此,强烈建议切勿公开分享此文件。

使用文本编辑器打开环境文件:

以下是示例环境代码:

DB_PASSWORD=password123

让我们来分解这些值:

  • APP_NAME:此字段描述应用程序的名称。此名称将用于通知和消息。
  • APP_ENV:应用程序的当前环境。
  • APP_KEY:此密钥是在通过 Composer 安装 Laravel 时自动生成的。它用于生成盐和哈希。无需更改它。
  • APP_DEBUG:调试模式开关。开启后,它将在客户端显示调试信息。
  • APP_URL:应用程序的基础 URL。它也用于生成应用程序链接。
  • DB_DATABASE:数据库的名称。在这种情况下,它将是我们创建的专用数据库。
  • DB_USERNAME:连接到数据库的用户名。
  • DB_PASSWORD:连接到数据库的密码。

做出更改后,保存文件并关闭编辑器。

步骤 5 – 设置 Nginx

我们已成功在用户主目录的本地文件夹中安装了 Laravel。此配置在本地开发环境中运行良好。但是,不建议将其应用于向公共互联网开放的 Web 服务器。

我们的下一步是将应用程序移动到 /var/www,因为这是在 Nginx 上运行的 Web 应用程序的常用位置。使用 mv 命令移动 travellist/var/www/travellist:

接下来,为用户分配对 storagecache 文件夹的写入权限。这些是 Laravel 应用程序生成文件的位置:

应用程序文件现在已就位。但是,我们需要告诉 Nginx 来提供这些内容。创建一个新的虚拟主机配置文件:

以下是在 Nginx 上运行的 Laravel 应用程序的推荐设置示例:

是时候激活新的虚拟主机配置文件了。创建一个指向 sites-enabled 目录的符号链接:

以下 Nginx 命令将测试配置文件的语法错误:

然后,重新加载 Nginx:

现在应该可以使用域名或 IP 地址(由 server_name 指令定义)来访问该应用程序:

Installing Laravel image 3

步骤 6 – 自定义主页

配置好 Laravel 应用程序后,我们现在可以开始对其进行开发。为了进行演示,是时候创建一个示例页面来展示数据库表 places 中的示例数据了。首先,在文本编辑器中打开主路由文件:

该文件默认会包含一些内容。在这里,路由是使用静态方法(Route::get)定义的。它接收一个 path 和一个 callback function 作为参数。

将代码替换为以下代码:

Installing Laravel image 2

保存文件并关闭编辑器。接下来,我们将创建布局以向用户呈现数据库查询结果。在以下目录中创建一个新文件:resource/views:

在以下代码中,我们根据以下值创建了两个地点列表:visitedtogo:

Installing Laravel image 1

保存文件并关闭编辑器。现在,再次访问 Web 应用程序页面:

Travel list

瞧!我们现在有了一个功能齐全的 Laravel 应用程序,它使用 MySQL 数据库来存储内容。

结语

在本教程中,我们演示了如何在运行于 Ubuntu 20.04 服务器上的 LEMP 栈之上设置 Laravel 应用程序。我们还展示了如何自定义默认路由以查询数据库内容并在自定义视图中显示结果。有关 Laravel 的更多信息,请查看官方文档中的 视图, 路由、以及 数据库支持.

本教程的安装是在独立的虚拟机上进行的。不过,您也可以在 Docker 上的 LEMP 栈上部署 Laravel.

祝您使用愉快!

author

Hark Labs

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。