本教程适用于以下操作系统版本

  • 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

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

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

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

安装完成后,检查 Apache 与 MariaDB 的服务状态。然后,检查 PHP 和 Composer 的版本。

输出:

sudo systemctl is-enabled apache2
sudo systemctl status apache2

现在使用以下命令检查 MariaDB 服务。MariaDB 服务器应该已在你的 Ubuntu 系统上启用并运行。

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

输出:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

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

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

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

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

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

要在 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 的版本。

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

配置 PHP

node --version
npm --version

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

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

取消注释以下行以启用 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'

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

配置完 PHP 后,你需要加固 MariaDB 服务器,并为 Laravel 创建一个新的数据库和用户。

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

然后,访问 http://192.168.5.30/info.php。检查 fileinfo、mbstring 和 openssl 扩展,确认这些扩展已启用。

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

['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;

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

既然你已经配置了 PHP 并创建了 MySQL/MariaDB 数据库和用户,就可以安装 Laravel 了。在本节中,你将设置项目目录,通过 Composer 安装 Laravel,并将 Laravel 与 MySQL/MariaDB 数据库集成。

SHOW GRANTS FOR laravelapp@localhost;

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

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

通过 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 安装应当如下所示开始:

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

现在使用以下 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'。

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

添加以下配置,并将 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

在 Ubuntu 24.04 上安装 Laravel 框架并配置 Apache

现在使用 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 框架并配置 Apache

总结

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