一、准备工作
搭建LNMP测试环境前需完成基础准备:选择Ubuntu/CentOS等Linux发行版(推荐Ubuntu,软件包更易获取);准备远程连接工具(如XShell、SecureCRT);确保服务器联网且DNS正常解析。安装前建议更新系统软件包,避免依赖冲突:
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
# 或
sudo yum update -y # CentOS/RHEL
二、安装Nginx(Web服务器)
Nginx作为轻量级Web服务器,负责处理HTTP请求。安装命令:
sudo apt install nginx -y # Ubuntu/Debian
# 或
sudo yum install epel-release && sudo yum install nginx -y # CentOS/RHEL
安装完成后,启动Nginx并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
验证安装:浏览器访问服务器IP地址,若看到Nginx默认欢迎页面(含“Welcome to nginx!”字样),则说明安装成功。
三、安装MySQL(数据库服务器)
MySQL用于存储网站数据(如WordPress、Discuz等应用的表结构)。安装命令:
sudo apt install mysql-server -y # Ubuntu/Debian
# 或
sudo yum install mysql-server -y # CentOS/RHEL
安装过程中会提示设置root用户密码(请务必记住,后续管理数据库需用到)。启动MySQL并设置开机自启:
sudo systemctl start mysql
sudo systemctl enable mysql
安全加固:运行MySQL安全脚本,修改root密码强度、移除匿名用户、禁止root远程登录:
sudo mysql_secure_installation
按提示逐步操作(如输入当前root密码、设置新密码、移除匿名用户等)。
四、安装PHP(服务器端脚本语言)
PHP用于处理动态网页逻辑(如表单提交、数据库交互)。安装PHP及必要扩展(如php-mysql用于连接MySQL):
sudo apt install php-fpm php-mysql -y # Ubuntu/Debian
# 或
sudo yum install php-fpm php-mysqlnd -y # CentOS/RHEL
安装完成后,检查PHP版本以确认安装成功:
php -v
配置PHP-FPM(可选但建议):编辑PHP-FPM池配置文件(路径因版本而异),确保listen指令与Nginx配置一致:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf # Ubuntu 20.04(PHP 7.4)
# 或
sudo nano /etc/php/8.1/fpm/pool.d/www.conf # Ubuntu 22.04(PHP 8.1)
找到listen = /run/php/php7.4-fpm.sock(或127.0.0.1:9000),确保路径正确(后续Nginx需引用此路径)。保存后重启PHP-FPM:
sudo systemctl restart php7.4-fpm # Ubuntu 20.04
# 或
sudo systemctl restart php8.1-fpm # Ubuntu 22.04
五、配置Nginx支持PHP
默认Nginx无法解析PHP文件,需修改站点配置文件。编辑默认站点配置:
sudo nano /etc/nginx/sites-available/default
找到server块中的location ~ \.php$部分,修改为以下内容(关键参数说明:fastcgi_pass需指向PHP-FPM的socket或IP端口,fastcgi_param用于传递脚本路径):
location ~ \.php$ {
include snippets/fastcgi-php.conf; # 引入FastCGI配置
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据PHP版本修改(如php8.1-fpm.sock)
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 脚本路径
include fastcgi_params; # 包含通用FastCGI参数
}
测试Nginx配置语法(避免重启失败):
sudo nginx -t
若输出syntax is ok和test is successful,则重启Nginx使配置生效:
sudo systemctl restart nginx
六、验证LNMP环境
在Nginx默认网站根目录(/var/www/html)创建info.php测试文件,内容如下:
sudo nano /var/www/html/info.php
输入以下代码(用于显示PHP配置信息):
<?php phpinfo(); ?>
保存后,在浏览器访问http://服务器IP/info.php。若看到PHP信息页面(包含版本、扩展、服务器信息等),则说明LNMP环境搭建成功。
七、后续优化(可选但重要)
sudo ufw allow 'Nginx Full' # Ubuntu(UFW防火墙)
sudo ufw enable
# 或
sudo firewall-cmd --permanent --add-service=http # CentOS(Firewalld防火墙)
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
# 或
sudo yum update -y # CentOS/RHEL
/etc/nginx/、/etc/mysql/、/etc/php/),防止误操作导致数据丢失。常见问题解决
sudo netstat -tuln | grep 80),或Nginx配置文件语法错误(sudo nginx -t)。sudo systemctl status php7.4-fpm),且Nginx中的fastcgi_pass路径正确。sudo systemctl status mysql),或root用户权限(mysql -u root -p登录测试)。