本页内容
- 先决条件
- 安装 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

现在使用以下命令通过 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

安装完成后,使用以下命令启动并设置 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

最后,运行以下命令验证你的 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;

接下来,运行以下查询以验证用户 laravel 的权限。请确保用户 laravel 能够访问数据库 laravelapp。
SHOW PRIVILEGES FOR laravel@localhost;
最后,输入 quit 退出 MariaDB 服务器。

创建 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 .
下载过程应该如下所示:

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

配置 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

配置 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

从本地计算机访问 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 首页。

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