LNMP(Linux + Nginx + MySQL/MariaDB + PHP)是常见的Web服务组合,适用于搭建动态网站和Web应用。以下是在Debian系统上搭建LNMP测试环境的详细流程:
在安装任何软件前,建议先更新系统的软件包列表和已安装的包,确保系统处于最新状态:
sudo apt update && sudo apt upgrade -y
Nginx是一款高性能的HTTP/反向代理服务器,作为LNMP的前端服务,负责处理静态请求和转发动态请求。
apt包管理器快速安装Nginx:sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
http://192.168.1.100),若看到Nginx的默认欢迎页面(包含“Welcome to nginx!”字样),则说明Nginx已正常运行。MariaDB是MySQL的开源分支,兼容MySQL协议,性能更优且支持更多特性。
apt安装MariaDB服务器和客户端:sudo apt install mariadb-server mariadb-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
mysql_secure_installation脚本,完成以下安全设置:
sudo mysql_secure_installation
sudo mysql -u root -p
输入密码后,执行SELECT VERSION();查看MariaDB版本信息,若返回版本号则表示安装成功。PHP是服务器端脚本语言,用于处理动态请求(如表单提交、数据库交互)。
sudo apt install php php-cli php-fpm php-mysql php-gd php-mbstring php-curl php-xml -y
注:
php-fpm是Nginx处理PHP请求的关键组件,必须安装;php-mysql扩展用于连接MySQL/MariaDB数据库。
sudo systemctl start php-fpm # Debian 11及以上版本默认使用php8.2-fpm,可根据实际版本调整
sudo systemctl enable php-fpm
php -v
若返回PHP版本号(如PHP 8.2.12),则表示PHP安装成功。默认情况下,Nginx无法处理PHP文件,需修改配置文件以转发PHP请求至PHP-FPM。
/etc/nginx/sites-available/default文件(Debian默认站点配置路径):sudo nano /etc/nginx/sites-available/default
server块中的location ~ \.php$部分,替换为以下内容(确保fastcgi_pass指向正确的PHP-FPM socket路径,可通过sudo ls /run/php/查看):location ~ \.php$ {
include snippets/fastcgi-php.conf; # 包含FastCGI配置片段
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 根据实际PHP版本调整(如php7.4-fpm.sock)
}
sudo nginx -t
若返回“syntax is ok”和“test is successful”,则表示配置正确。sudo systemctl reload nginx
通过创建PHP信息页面,验证Nginx、PHP、MariaDB是否协同工作。
/var/www/html)下创建info.php文件:sudo nano /var/www/html/info.php
<?php
phpinfo();
?>
/info.php(如http://192.168.1.100/info.php),若看到PHP信息页面(包含PHP版本、模块加载情况、服务器环境等信息),则说明LNMP环境搭建成功。若系统启用了UFW(Uncomplicated Firewall),需允许HTTP(80端口)和HTTPS(443端口)流量,确保外部用户可以访问Web服务:
sudo ufw allow 'Nginx Full' # 允许HTTP和HTTPS
sudo ufw enable # 启用防火墙(若未启用)
phpinfo()页面(删除info.php文件),并配置SSL证书(如Let’s Encrypt)启用HTTPS;php-mysqli用于MySQLi扩展、php-pdo用于PDO扩展),使用sudo apt install php-<extension>命令安装。