本教程适用于以下操作系统版本
- Ubuntu 24.04(Noble Numbat)
- Ubuntu 22.04(Jammy Jellyfish)
- Ubuntu 20.04(Focal Fossa)
- Ubuntu 18.04(Bionic Beaver)
- Ubuntu 16.04(Xenial Xerus)
本页内容
- 前提条件
- 安装 LAMP 堆栈与 Composer
- 可选:安装 Node.js 和 NPM(Node.js 包管理器)
- 配置 PHP
- 配置 MariaDB 服务器
- 通过 Composer 安装 Laravel
- 为 Laravel 配置虚拟主机
- 访问 Laravel 项目
- 总结
Laravel 是一个基于 PHP 的 Web 应用框架,用于构建企业级 Web 应用。它是一个遵循模型-视图-控制器(MVC)架构、基于 Symfony 的自由开源 Web 框架。它提供了优雅的语法,让你能够编写简洁、易读且易于理解的代码来创建应用。
Laravel 是一个企业级 Web 框架,可用于构建稳健的全栈企业 Web 应用。从开发到上线,Laravel 应用都能轻松快速地交付,毫无烦恼。
本指南将教你如何在 Ubuntu 24.04 服务器上安装 Laravel Web 框架。你将使用 LAMP 堆栈(Linux、Apache、MySQL/MariaDB 和 PHP)以及 Composer PHP 包管理器来安装 Laravel。
前提条件
在开始本指南之前,请确保你已具备以下条件:
- 一台 Ubuntu 24.04 服务器。
- 一个拥有管理员权限的非 root 用户
安装 LAMP 堆栈与 Composer
Laravel 是现代 Web 开发中流行的 PHP Web 框架。因此,你必须确保在 Ubuntu 服务器上已安装 PHP 及其他依赖项。在本节中,你将使用 LAMP 堆栈(Linux、Apache、MySQL/MariaDB 和 PHP)以及 Composer 来安装 Laravel。
在安装软件包之前,请运行以下命令来更新你的 Ubuntu 软件源。
sudo apt update

现在运行以下命令来安装 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 以继续安装。

安装完成后,检查 Apache 与 MariaDB 的服务状态。然后,检查 PHP 和 Composer 的版本。
输出:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
现在使用以下命令检查 MariaDB 服务。MariaDB 服务器应该已在你的 Ubuntu 系统上启用并运行。

输出:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
最后,使用以下命令检查 PHP 和 Composer 的版本。你将看到系统上已安装 PHP 8.3 和 Composer 2.7.1。

最后,使用以下命令检查 PHP 和 Composer 的版本。你将看到系统中已安装 PHP 8.3 与 Composer 2.7.1。
php -v
sudo -u www-data composer -v

要在 Ubuntu 系统上安装 Node.js 和 NPM,请运行以下命令:
如果你将 Laravel 与 Blade 等模板引擎以及 JavaScript 一起使用,则需要 Node.js 和 NPM(Node.js 包管理器)。本节中,你将通过 Ubuntu 软件源安装 Node.js 和 NPM。
输入 Y 以确认安装。
sudo apt install nodejs npm
安装完成后,输入以下命令来检查 Node.js 和 NPM 的版本。

配置 PHP
node --version
npm --version
使用 nano 编辑器,编辑默认的 PHP 配置文件 '/etc/php/8.3/apache2/php.ini'。

取消注释以下行以启用 PHP 扩展 fileinfo、mbstring 和 openssl。
要运行 Laravel,你必须确保已启用部分 PHP 扩展,例如 fileinfo、mbstring 和 openssl。因此,现在你需要通过修改 'php.ini' 文件来加载这些 PHP 扩展。
保存文件并退出编辑器。
sudo nano /etc/php/8.3/apache2/php.ini
现在运行以下命令来重启 Apache 服务并使 PHP 的更改生效。
extension=fileinfo extension=mbstring extension=openssl
保存文件并退出编辑器。
接下来,使用以下命令验证 PHP 扩展 fileinfo、mbstring 和 openssl。如果已启用这些扩展,将显示各自的扩展名称。
sudo systemctl restart apache2
此外,你可以通过 PHPINFO 验证已启用的 PHP 扩展列表。使用以下命令创建一个新的 PHPINFO 文件。
sudo php -m | grep 'fileinfo\|mbstring\|openssl'

配置完 PHP 后,你需要加固 MariaDB 服务器,并为 Laravel 创建一个新的数据库和用户。
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
然后,访问 http://192.168.5.30/info.php。检查 fileinfo、mbstring 和 openssl 扩展,确认这些扩展已启用。

['MariaDB 默认安装没有密码。当提示输入密码时,直接按 ENTER。', '现在,输入 Y 以设置 MariaDB root 密码。然后,输入 MariaDB 的新密码并重复确认。', '输入 Y 以从 MariaDB 安装中删除匿名用户。', '当提示禁用 MariaDB root 用户的远程登录时,再次输入 Y。', '输入 Y 以从 MariaDB 中删除默认的 test 数据库。', '最后,输入 Y 以重新加载表权限并应用新的更改。']
加固 MariaDB 服务器后,你必须为 Laravel 项目创建一个新的数据库和用户。
使用以下命令登录 MariaDB 服务器。在出现提示时输入你的 MariaDB root 密码。
sudo mariadb-secure-installation
现在运行以下查询,创建一个名为 'laravelapp' 的新数据库和用户,密码为 'password'。
- MariaDB 默认安装没有密码。当提示输入密码时,直接按 ENTER。
- 现在,输入 Y 以设置 MariaDB root 密码。然后,输入 MariaDB 的新密码并重复确认。
- 输入 Y 以从 MariaDB 安装中删除匿名用户。
- 当提示禁用 MariaDB root 用户的远程登录时,再次输入 Y。
- 输入 Y 以删除 MariaDB 中默认的 test 数据库。
- 最后,输入 Y 以重新加载表权限并应用新的更改。
加固 MariaDB 服务器后,你必须为 Laravel 项目创建一个新的数据库和用户。
接下来,运行以下查询来验证用户 'laravelapp' 的权限。这将确保你的用户可以访问 Laravel 数据库 'laravelapp'。
sudo mariadb -u root -p
最后,输入 quit 退出 MariaDB 服务器。
CREATE DATABASE laravelapp;
CREATE USER laravelapp@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON laravelapp.* TO laravelapp@localhost;
FLUSH PRIVILEGES;

既然你已经配置了 PHP 并创建了 MySQL/MariaDB 数据库和用户,就可以安装 Laravel 了。在本节中,你将设置项目目录,通过 Composer 安装 Laravel,并将 Laravel 与 MySQL/MariaDB 数据库集成。
SHOW GRANTS FOR laravelapp@localhost;
最后,输入 quit 退出 MariaDB 服务器。

通过 Composer 安装 Laravel
接下来,进入 /var/www/laravelapp 目录,并使用以下 Composer 命令安装 Laravel。
首先,运行以下命令创建目录 /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}
将默认的 'APP_URL' 改为你的本地域名。在本示例中,Laravel 将运行在域名 'laravelapp.local' 上。
cd /var/www/laravelapp/
sudo -u www-data composer create-project laravel/laravel .
Laravel 安装应当如下所示开始:

现在使用以下 nano 编辑器命令打开 '.env' 文件。
nano .env
最后,运行以下命令为你的 Laravel 项目执行数据库迁移。
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 的虚拟主机文件。请确保你已为 Laravel 开发准备好本地域名。
在创建虚拟主机之前,请使用以下命令启用 Apache 的 'rewrite' 模块。
sudo -u www-data php artisan migrate
使用 nano 编辑器创建一个新的虚拟主机配置文件 '/etc/apache2/sites-available/laravelapp.conf'。

添加以下配置,并将 ServerName 选项改为你的 Laravel 域名,例如 'laravelapp.local'。
在本节中,你将设置 Laravel 的虚拟主机文件。请确保你已为 Laravel 开发准备好本地域名。
保存文件并退出编辑器。
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
[email protected]
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>
访问 Laravel 项目
至此,你已准备好通过 'hosts' 文件来访问你的 Laravel 安装。
sudo a2ensite laravelapp.conf
sudo apachectl configtest
添加你的 Ubuntu 服务器 IP 地址,后接 Laravel 域名,如下所示:
sudo systemctl restart apache2

现在使用 Web 浏览器访问 http://laravelapp.local/。如果你的 Laravel 安装成功,你应该会看到如下页面:
至此,你已可以通过 'hosts' 文件来访问你的 Laravel 安装了。
总结
恭喜!你已在 Ubuntu 24.04 上完成了 Laravel 的安装。你现在已经让 Laravel 在 LAMP 堆栈(Linux、Apache、MySQL/MariaDB 和 PHP)上运行,并学习了用于创建项目的基本 Composer 命令。
192.168.5.30 laravelapp.local
保存并退出文件。
现在使用 Web 浏览器访问 http://laravelapp.local/。如果你的 Laravel 安装成功,你应该会看到如下页面:

总结
恭喜!你已在 Ubuntu 24.04 上完成了 Laravel 的安装。你现在已经让 Laravel 在 LAMP 堆栈(Linux、Apache、MySQL/MariaDB 和 PHP)上运行,并学习了用于创建项目的基本 Composer 命令。