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

image


现在通过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

image


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

image


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

image

接下来运行以下查询验证用户laravel的权限,确保该用户可访问laravelapp数据库:

SHOW PRIVILEGES FOR laravel@localhost;

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

image


创建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 .

下载过程应如下所示:

image


下载完成后,使用 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

image


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

image


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

image


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

image


总结


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

你可能还喜欢阅读