Laravel 是一个基于 PHP 的 Web 应用程序框架,用于构建企业级和强大的全栈 Web 应用程序。它遵循模型-视图-控制器(MVC)架构,并基于 Symfony 框架。Laravel 支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 SQL Server。Laravel 还为安全认证提供了脚手架支持。
本教程将指导您在 Alma Linux 9 服务器上安装 Laravel。我们将通过 LAMP 堆栈(Linux、Apache/Httpd、MariaDB 和 PHP)及 Composer 工具逐步完成 Laravel 安装。
前提条件
开始前请确保满足以下条件:
- 一台Alma Linux 9服务器。
- 具备管理员权限的非root用户。
- 本地域名。
- SELinux已设置为宽容模式。
安装LAMP堆栈与Composer
Laravel是构建Web应用程序最流行的PHP框架之一。安装Laravel需先配置依赖项,包括LAMP堆栈(Apache/Httpd、MariaDB和PHP)及Composer。当前Laravel要求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服务器安全性,请执行以下命令。系统将提示您确认部分服务器配置,请输入Y或N选择是否应用新配置:
sudo mariadb-secure-installation
以下是部分需确认的MariaDB服务器配置:
- 切换至unix_socket认证模式?输入n并按回车键。默认MariaDB root用户已受保护。若需启用,可输入y表示同意。
- 更改root密码?输入y确认并设置新密码。
- 移除匿名用户?输入y确认。
- 禁止root远程登录?输入y确认。使用MariaDB root用户时仅允许本地连接。
- 移除测试数据库及其访问权限?输入 y 确认并移除默认数据库 ‘test’。
- 最后再次输入 y 重新加载 MariaDB 服务器所有表权限并应用新配置。
完成 MariaDB 安全设置后,将通过 mariadb 客户端为 Laravel 创建新数据库及用户。
使用以下 mariadb 客户端命令登录 MariaDB 服务器。提示时输入 MariaDB root 密码:
sudo mariadb -u root -p
现在执行以下查询为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的权限,确保该用户可访问laravelapp数据库:
SHOW PRIVILEGES FOR laravel@localhost;
最后输入quit退出MariaDB服务器。

创建Laravel项目
现在您已配置好PHP和MariaDB,接下来将Laravel下载并安装至系统。您将创建并设置项目目录,然后通过Composer下载并安装Laravel项目。
为Laravel项目创建新目录/var/www/laravelapp,并创建额外目录.cache和.config用于存储Composer缓存和配置。随后将这些目录的所有权更改为用户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 .
下载过程应如下所示:

下载完成后,使用 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后,需创建新的Httpd虚拟主机配置供Laravel使用。请确保拥有本地域名或任意/随机域名。该域名可在后续配置。
使用 nano 编辑器创建新虚拟主机配置文件 /etc/httpd/conf.d/laravel.conf:
sudo nano /etc/httpd/conf.d/laravel.conf
插入以下配置,并确保将 ServerName 选项替换为您的 Laravel 域名:
<VirtualHost *:80>
ServerAdmin admin@dev.hwdomain.local
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配置。若语法正确,应输出Syntax OK。
sudo apachectl configtest
最后重启httpd服务以应用Laravel虚拟主机配置:
sudo systemctl restart httpd

配置Firewalld
访问Laravel应用前,需通过Firewalld在系统中开放HTTP和HTTPS端口。
使用以下命令为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
保存并退出文件。
现在打开浏览器访问您的Laravel安装目录:http://dev.hwdomain.local/。若安装成功,您将看到Laravel的首页。

总结
恭喜!您已在Alma Linux 9系统上成功完成Laravel安装,配置了LAMP环境(Linux、Apache/Httpd、MariaDB和PHP)及Composer。同时通过/etc/hosts文件(或C:\Windows\System32\drivers\etc\hosts文件)配置了防火墙以开放HTTP和HTTPS端口,并为Laravel开发环境设置了本地域名。