Laravel 是一个基于 PHP 的 Web 应用程序框架,用于构建企业级 Web 应用程序。它是一个遵循模型-视图-控制器(MVC)架构的免费开源 Web 框架,基于 Symfony 构建。它提供优雅的语法,使您能够创建代码简洁、易于阅读和理解的应用程序。

Laravel 是一个企业级 Web 框架,用于构建企业级和强大的全栈 Web 应用程序。从开发到部署,Laravel 应用程序都能快速交付,全程无忧。

本指南将指导您在 Ubuntu 24.04 服务器上安装 Laravel 框架。您将通过 LAMP 环境(Linux、Apache、MySQL/MariaDB 和 PHP)及 Composer PHP 包管理器完成安装。


前提条件


开始本指南前,请确保具备以下环境:

  • Ubuntu 24.04服务器环境
  • 具备管理员权限的非root用户


安装LAMP堆栈与Composer


Laravel作为现代Web开发主流PHP框架,需确保Ubuntu服务器已安装PHP及相关依赖项。本节将指导您通过LAMP堆栈(Linux、Apache、MySQL/MariaDB、PHP)与Composer完成Laravel安装。

安装前请执行以下命令更新Ubuntu软件源:

sudo apt update

image

随后运行以下命令安装Laravel依赖项,包括LAMP环境(Linux、Apache、MySQL/MariaDB、PHP)、Composer及Git:

sudo apt install apache2 mariadb-server php php-curl php-bcmath php-json php-mysql php-mbstring php-xml php-tokenizer php-zip composer git


输入 Y 继续安装。

image

安装完成后,请检查 Apache 和 MariaDB 服务状态,并确认 PHP 与 Composer 版本。

使用以下命令检查Apache服务状态。Ubuntu默认的Apache服务应处于启用并自动运行状态。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

image


现在使用以下命令检查MariaDB服务。MariaDB服务器应在您的Ubuntu系统上处于启用并运行状态。

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

输出:

image

最后使用以下命令检查 PHP 和 Composer 版本。您将看到系统已安装 PHP 8.3 和 Composer 2.7.1。

php -v
sudo -u www-data composer -v

image


可选:安装 Node.js 和 NPM(Node.js 包管理器)


若使用 Laravel 配合 Blade 模板引擎及 JavaScript,则需安装 Node.js 和 NPM。本节将通过 Ubuntu 软件源同时安装 Node.js 与 NPM。

在 Ubuntu 系统安装 Node.js 和 NPM:

sudo apt install nodejs npm

输入 Y 确认安装。

image

安装完成后,输入以下命令检查 Node.js 和 NPM 版本:

node --version
npm --version

输出结果显示已安装 Node.js 18 和 NPM 9.5。

image


配置 PHP


要运行 Laravel,必须确保启用某些 PHP 扩展,例如 fileinfo、mbstring 和 openssl。现在通过修改 ‘php.ini’ 文件加载这些 PHP 扩展。

使用 nano 编辑器编辑默认 PHP 配置文件 ‘/etc/php/8.3/apache2/php.ini’。

sudo nano /etc/php/8.3/apache2/php.ini

取消注释以下行以启用 PHP 扩展 fileinfo、mbstring 和 openssl:

extension=fileinfo
extension=mbstring
extension=openssl

保存文件并退出编辑器。

现在运行以下命令重启 Apache 服务并应用 PHP 配置更改:

sudo systemctl restart apache2

接着使用以下命令验证 PHP 扩展 fileinfo、mbstring 和 openssl 是否启用: 若扩展已启用,将显示对应扩展名称:

sudo php -m | grep 'fileinfo\|mbstring\|openssl'

image

您还可通过 PHPINFO 验证已启用的扩展列表。使用以下命令创建新的 PHPINFO 文件:

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

随后访问 http://192.168.5.30/info.php,检查是否包含 fileinfo、mbstring 和 openssl 扩展以确认其已启用。

image


配置 MariaDB 服务器


配置 PHP 后,需为 MariaDB 服务器设置安全防护,并为 Laravel 创建新数据库及用户。

运行以下'mariadb-secure-installation'命令以强化MariaDB服务器安全。系统将提示进行服务器配置:

sudo mariadb-secure-installation

  • 提示时输入Y应用新配置,或输入N拒绝配置。
  • 默认MariaDB安装不设置密码。密码提示时直接按回车键。
  • 现在输入 Y 设置 MariaDB 根密码。随后输入新密码并重复确认。
  • 输入 Y 移除 MariaDB 安装中的匿名用户。
  • 在提示时再次输入 Y 禁用 MariaDB 根用户的远程登录权限。
  • 输入 Y 移除 MariaDB 中的默认测试数据库。
  • 最后输入 Y 重新加载表权限并应用新配置。

完成 MariaDB 服务器安全配置后,需为 Laravel 项目创建新数据库及用户。

使用以下命令登录 MariaDB 服务器。输入提示的 MariaDB 根密码:

sudo mariadb -u root -p

执行下列查询创建新数据库及用户 ‘laravelapp’,密码设为 ‘password’:

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

image

接着执行以下查询验证用户'laravelapp'的权限,确保该用户可访问Laravel数据库'laravelapp':

SHOW GRANTS FOR laravelapp@localhost;

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

image


通过 Composer 安装 Laravel


完成 PHP 配置及 MySQL/MariaDB 数据库与用户创建后,即可安装 Laravel。本节将设置项目目录、通过 Composer 安装 Laravel,并实现 Laravel 与 MySQL/MariaDB 数据库的集成。

首先运行以下命令创建目录:/var/www/.cache(用于Composer缓存)、/var/www/.config(用于Composer附加配置)、/var/www/laravelapp(用于Laravel项目)。

sudo mkdir -p /var/www/{.cache,.config,laravelapp}

接着将/var/www/.cache、/var/www/.config和/var/www/laravelapp目录的所有权更改为用户'www-data':

sudo chown -R www-data:www-data /var/www/{.cache,.config,laravelapp}

随后进入/var/www/laravelapp目录,使用以下Composer命令安装Laravel:

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

Laravel 安装将按以下方式启动:

image

现在使用 nano 编辑器命令打开 ‘.env’ 文件。

nano .env

将默认的 ‘APP_URL’ 替换为您的本地域名。本例中 Laravel 将运行在 ‘laravelapp.local’ 域名下。

APP_URL=http://laravelapp.local

将默认的 ‘DB_CONNECTION’ 改为 ‘mysql’,取消注释并修改数据库信息:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravelapp
DB_USERNAME=laravelapp
DB_PASSWORD=password

保存并退出文件。

最后执行以下命令为Laravel项目迁移数据库:

sudo -u www-data php artisan migrate

Laravel数据库迁移输出:

image


为Laravel设置虚拟主机


本节将为您设置Laravel的虚拟主机配置文件。请确保已为Laravel开发环境准备好本地域名。

创建虚拟主机前,请通过以下命令启用Apache的'rewrite'模块:

sudo a2enmod rewrite

使用nano编辑器创建新虚拟主机配置文件'/etc/apache2/sites-available/laravelapp.conf'。

sudo nano /etc/apache2/sites-available/laravelapp.conf

添加以下配置,并将ServerName选项替换为您的Laravel域名(如'laravelapp.local')。

<VirtualHost *:80>

ServerAdmin admin@laravelapp.local
ServerName laravelapp.local
DocumentRoot /var/www/laravelapp/public

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/laravelapp>
AllowOverride All
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

保存文件并退出编辑器。

现在运行以下命令激活'laravelapp.conf'虚拟主机并验证Apache语法。若无错误,应显示输出'Syntax OK'。

sudo a2ensite laravelapp.conf
sudo apachectl configtest

重启Apache服务以应用新的Laravel虚拟主机配置。Apache重启后,Laravel安装即告完成。

sudo systemctl restart apache2

image


访问Laravel项目


此时您可通过'hosts'文件访问Laravel安装目录。

Linux/MacOS用户需以root权限修改'/etc/hosts'文件;Windows用户请以管理员身份打开'C:\Windows\System32\drivers\etc\hosts'文件。

按以下格式添加Ubuntu服务器IP地址及Laravel域名:

192.168.5.30 laravelapp.local

保存并退出文件。

现在使用浏览器访问 http://laravelapp.local/。若 Laravel 安装成功,您将看到以下页面:

image


总结


恭喜!您已在 Ubuntu 24.04 上完成 Laravel 安装。您已通过 LAMP 架构(Linux、Apache、MySQL/MariaDB 和 PHP)运行 Laravel,并掌握了创建项目的基本 Composer 命令。

你可能还喜欢阅读