本页内容

  • 先决条件
  • 安装 LAMP 环境栈与 Composer
  • 配置 MariaDB
  • 创建 Laravel 项目
  • 配置 Httpd 虚拟主机
  • 配置 Firewalld
  • 从本地计算机访问 Laravel
  • 结语

Laravel 是基于 PHP 的 Web 应用框架,用于构建企业级、健壮的全栈 Web 应用。它遵循模型-视图-控制器(MVC)架构,并基于 Symfony 构建。Laravel 支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 SQL Server,同时还提供了安全认证的脚手架(scaffolding)。

本教程将介绍如何在 Alma Linux 9 服务器上安装 Laravel。我们将带你一步步通过 LAMP 环境栈(Linux、Apache/Httpd、MariaDB 和 PHP)以及 Composer 完成 Laravel 的安装。

先决条件

在开始之前,请确保你已具备以下条件:

  • 一台 Alma Linux 9 服务器。
  • 一个具有管理员权限的普通(非 root)用户。
  • 一个本地域名。
  • SELinux 处于 permissive(宽松)模式。

安装 LAMP 环境栈与 Composer

Laravel 是最受欢迎的、用于构建 Web 应用的 PHP 框架之一。要安装 Laravel,你需要先安装相关依赖,包括 LAMP 环境栈(Apache/Httpd、MariaDB 和 PHP)以及 Composer。目前,Laravel 要求 PHP 8.3,你必须通过第三方软件仓库来安装 PHP 8.3。

首先,使用以下命令将第三方软件仓库 EPEL 和 Remi 添加到你的 Alma Linux 服务器。其中 EPEL 仓库用于安装 Composer 等软件包,而 Remi 仓库为 Laravel 提供多个 PHP 版本。

sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

现在使用以下命令通过 Remi 启用 PHP 8.3 仓库。

sudo dnf reset php -y
sudo dnf module enable php:remi-8.3 -y

接下来,使用以下命令安装 LAMP 环境栈(Apache/Httpd、MariaDB 和 PHP)以及 Composer 软件包。输入 y 确认安装。

sudo dnf install httpd mariadb-server composer php php-curl php-bcmath php-json php-mbstring php-xml php-tokenizer php-zip

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

安装完成后,使用以下命令启动并设置 httpd 服务开机自启。

sudo systemctl start httpd
sudo systemctl enable httpd

然后使用以下命令启动并设置 MariaDB 服务开机自启。

sudo systemctl start mariadb
sudo systemctl enable mariadb

现在,使用以下命令验证 PHP 和 Composer 的版本。你应该可以看到已安装 PHP 8.3 和 Composer 2.7.1。

php -v
sudo -u apache composer -v

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

最后,运行以下命令验证你的 PHP 模块。请确保 fileinfo、mbstring 和 openssl 已启用。

php -m

配置 MariaDB

在 PHP 配置完成后,你将对 MariaDB 服务器进行安全加固,并为 Laravel 创建一个新的数据库和用户。MariaDB 提供了 mariadb-secure-installation 工具用于加固服务器,以及 mariadb 客户端用于通过命令行连接到 MariaDB 服务器。

要加固 MariaDB 服务器,请运行以下命令,随后系统会询问你一些 MariaDB 服务器配置项。输入 Y 或 N 表示同意或拒绝应用新的 MariaDB 更改。

sudo mariadb-secure-installation

以下是你会被询问到的部分 MariaDB 服务器配置项:

  • 切换到 unix_socket 认证?输入 n 并按回车。默认的 MariaDB root 用户已经受到保护。你也可以输入 y 来启用它。
  • 更改 root 密码?输入 y 确认并设置新的 MariaDB root 密码。
  • 删除匿名用户?输入 y 确认。
  • 禁止 root 远程登录?输入 y 确认。若使用 MariaDB root 用户,将只允许本地连接。
  • 删除测试数据库及其访问权限?输入 y 确认并移除默认的 'test' 数据库。
  • 最后,再次输入 y 以重新加载 MariaDB 服务器上的所有权限表并应用更改。

MariaDB 加固完成后,你将通过 mariadb 客户端为 Laravel 创建一个新数据库和用户。

使用以下 mariadb 客户端命令登录 MariaDB 服务器。在提示时输入你的 MariaDB root 密码。

sudo mariadb -u root -p

现在运行以下 SQL 语句为 Laravel 创建新的数据库和用户。本例中,你将创建一个名为 laravelapp 的数据库,以及一个名为 laravel、密码为 p4ssw0rd 的用户。请根据你的实际情况修改下面的数据库和用户名称。

CREATE DATABASE laravelapp;
CREATE USER laravel@localhost IDENTIFIED BY 'p4ssw0rd';
GRANT ALL PRIVILEGES ON laravelapp.* TO laravel@localhost;
FLUSH PRIVILEGES;

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

接下来,运行以下查询以验证用户 laravel 的权限。请确保用户 laravel 能够访问数据库 laravelapp。

SHOW PRIVILEGES FOR laravel@localhost;

最后,输入 quit 退出 MariaDB 服务器。

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

创建 Laravel 项目

至此,PHP 和 MariaDB 都已配置完成,接下来我们将下载并把 Laravel 安装到系统中。你需要创建并配置项目目录,然后通过 Composer 下载并安装 Laravel 项目。

为 Laravel 项目创建新目录 /var/www/laravelapp,以及用于存放 Composer 缓存和配置的附加目录 .cache 和 .config。然后将这些目录的属主更改为 apache 用户。

mkdir -p /var/www/laravelapp /usr/share/httpd/.composer/{.cache,.config}
sudo chown -R apache:apache /var/www/laravelapp /usr/share/httpd/.composer

进入 /var/www/laravelapp 目录,运行以下 composer 命令以下载并安装 Laravel。

cd /var/www/laravelapp/
sudo -u apache composer create-project laravel/laravel .

下载过程应该如下所示:

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

Laravel 下载完成后,使用以下 nano 编辑器命令打开 .env 文件。

nano .env

将 APP_URL 改为你的本地域名,然后将数据库配置改为你的 MariaDB 数据库信息。

APP_URL=http://dev.hwdomain.local
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravelapp
DB_USERNAME=laravel
DB_PASSWORD=password

完成后,保存文件并退出。

现在运行以下命令执行数据库迁移,并向表中填充示例数据。

sudo -u apache php artisan migrate
sudo -u apache php artisan db:seed

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

配置 Httpd 虚拟主机

安装 Laravel 后,你需要创建一个 Laravel 将使用的新 Httpd 虚拟主机配置。为此,请确保你拥有一个本地域名或任意域名(稍后你也可以再配置该域名)。

使用以下 nano 编辑器命令创建新的 httpd 虚拟主机配置文件 /etc/httpd/conf.d/laravel.conf。

sudo nano /etc/httpd/conf.d/laravel.conf

插入以下配置,并确保将 ServerName 选项改为你的 Laravel 域名。

<VirtualHost *:80>
 ServerAdmin 
[email protected]
 ServerName dev.hwdomain.local
 DocumentRoot /var/www/laravelapp/public
 <Directory />
 Options FollowSymLinks
 AllowOverride None
 </Directory>
 <Directory /var/www/laravelapp>
 AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/laravel-error.log
 CustomLog /var/log/httpd/laravel-access.log combined
</VirtualHost>

保存文件并退出编辑器。

现在运行以下命令验证你的 httpd 配置。如果 httpd 语法正确,你会看到输出 Syntax OK。

sudo apachectl configtest

最后,重启 httpd 服务以应用新的 Laravel 虚拟主机配置。

sudo systemctl restart httpd

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

配置 Firewalld

在访问你的 Laravel 安装之前,必须在系统上开放 HTTP 和 HTTPS 端口,这可以通过 Firewalld 完成。

使用以下命令为你的 Alma Linux 服务器开放 HTTP 和 HTTPS 流量。

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent

现在重新加载 firewalld 以应用更改。

sudo firewall-cmd --reload

最后,使用以下命令查看 firewalld 规则列表。你会看到 HTTP 和 HTTPS 服务都已添加到 firewalld 中。

sudo firewall-cmd --list-all

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

从本地计算机访问 Laravel

要为你的 Laravel 安装设置本地域名,请按如下方式操作:

  • Windows 用户:以管理员身份修改文件 C:\Windows\System32\drivers\etc\hosts。
  • Linux 和 Mac 用户:以 root 权限打开 /etc/hosts 文件。

插入以下配置,并确保将 IP 地址和域名改为你自己的信息。

192.168.5.60 dev.hwdomain.local

保存并退出文件。

现在打开你的 Web 浏览器,访问你的 Laravel 安装地址 http://dev.hwdomain.local/。如果安装成功,你应该会看到如下 Laravel 首页。

在 AlmaLinux 9 上安装 Laravel PHP 开发框架

结语

恭喜!你已成功在 Alma Linux 9 上通过 LAMP 环境栈(Linux、Apache/Httpd、MariaDB 和 PHP)以及 Composer 完成了 Laravel 的安装。你还配置了 firewalld 以开放 HTTP 和 HTTPS 端口,并通过 /etc/hosts 文件或 C:\Windows\System32\drivers\etc\hosts 文件为 Laravel 开发配置了本地域名。