前置准备工作
本文章将指导您如何使用一台空白的云服务器(这里演示的是腾讯云的轻量服务器),在仅安装 ubuntu 24.04 操作系统的情况下,一步步完成 LNMP 环境的配置
1. 初始化 root 账户密码
一行指令即可实现,其中需要输入两次密码,自己要记住。
1 | sudo passwd root |
即便如此,这个 root 账户我们基本不用,但是初始化一下又没啥问题。
2. 更新系统
目的是确保系统的所有软件包都是最新的。
1 | sudo apt update && sudo apt upgrade -y |
其中,-y 是 apt upgrade 命令中的一个选项,它的作用是自动回答 “yes”(是) 以确认安装或升级过程中的所有提示。
3. 安装 Nginx
1 | sudo apt install nginx -y |
安装完成后,可以使用以下命令检查 Nginx 是否已经正确启动:
1 | sudo systemctl status nginx |
访问服务器的 IP 地址(例如:http://your_server_ip),你应该能看到 Nginx 的默认页面。
4. 安装 MySQL
1 | sudo apt install mysql-server -y |
安装完成后,执行以下命令对 MySQL 进行安全性设置:
1 | sudo mysql_secure_installation |
完成后,登录 MySQL 检查:
1 | sudo mysql |
4. 修改 MySQL 的认证机制从 auth_socket 插件认证改为密码验证
在新的 MySQL 版本中,root 用户默认使用 auth_socket 插件进行身份验证,这意味着只有在系统中以 root 或 sudo 权限运行的用户才可以登录 MySQL,而无需密码。
但是这个机制不是我们需要的,如果不为 MySQL 的 root 用户设置密码,Laravel 将无法通过默认的 DB_USERNAME=root 和 DB_PASSWORD 来连接到数据库。因为 Laravel 的数据库连接需要使用传统的用户名和密码进行身份验证,而不是通过 auth_socket 插件的方式。
为了确保 Laravel 能够成功连接 MySQL 数据库,需要按照以下步骤操作:
- 登录 MySQL:
1 | sudo mysql |
- 查看 root 用户的身份验证插件:
1 | SELECT user, host, plugin FROM mysql.user; |
检查 root 用户的 plugin 是否为 auth_socket。
- 设置 root 用户的密码,并将身份验证插件更改为 mysql_native_password(或者 caching_sha2_password):
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; |
或者使用 caching_sha2_password 插件:
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'your_new_password'; |
小课堂:MySQL 8.0 及之后的版本中,mysql_native_password 和 caching_sha2_password 是 MySQL 中两种不同的身份验证插件,它们在安全性和性能上有一定的区别。以下是它们的详细对比:
1 | 1. mysql_native_password 插件 |
这里我选择的是 caching_sha2_password
- 刷新权限表:
1 | FLUSH PRIVILEGES; |
- 退出 MySQL:
1 | exit; |
- 验证 root 密码是否生效
1 | mysql -u root -p |
5. 安装 PHP
安装 PHP 及其扩展:
1 | sudo apt install php-fpm php-mysql php-cli php-xml php-mbstring php-curl php-zip php-gd php-imagick -y |
截稿时最新版本为 8.3
配置 PHP-FPM: 编辑 PHP 配置文件 php.ini:
1 | sudo vim /etc/php/8.3/fpm/php.ini |
确保以下参数值正确(如果没有则手动添加或修改):
1 | cgi.fix_pathinfo=0 |
重启 PHP-FPM 服务:
1 | sudo systemctl restart php8.3-fpm |
6. 配置 Nginx 以支持 PHP
创建一个新的 Nginx 配置文件,或者修改默认的配置文件:
1 | sudo vim /etc/nginx/sites-available/laravel |
在文件中添加以下内容(确保与 Laravel 项目目录匹配):
1 | server { |
启用此配置文件:
1 | sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/ |
检查 Nginx 配置语法:
1 | sudo nginx -t |
重启 Nginx:
1 | sudo systemctl restart nginx |
安装 Composer
全局安装 Composer:
1 | curl -sS https://getcomposer.org/installer | php |
验证:
1 | composer --version |
完事儿
至此,一个崭新的 LNMP 环境就配置好了,下一篇文章我将继续介绍如何在此基础上部署一个 Laravel 项目。