Lnmp搭建(三台主机)

本文详细介绍了如何在三台主机上部署LNMP环境,包括nginx的安装与配置,mysql的安装,php的安装,以及如何连接nginx和php。在部署过程中,特别提到了php端和nginx端的设置,并对可能出现的报错问题进行了测试和访问。

Lnmp搭建(三台主机)



环境说明:

系统 IP 需要安装的服务
centos8 192.168.174.168 nginx-1.20.2
centos8 192.168.174.171 mysql-5.7
centos8 192.168.174.173 php-8.1.11

nginx安装与配置

nginx安装
//首先关闭防火墙和selinux
[root@nginx ~]# setenforce 0
[root@nginx ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@nginx ~]# systemctl disable  --now firewalld.service 
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

//创建用户
[root@nginx ~]# useradd -rMs /sbin/nologin nginx

//安装所需要的依赖包
[root@nginx ~]# dnf -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make wget vim

//下载nginx源码包,并解压
	
[root@nginx ~]# wget http://nginx.org/download/nginx-1.20.2.tar.gz
[root@nginx ~]# tar -xf nginx-1.20.2.tar.gz 
[root@nginx ~]# cd nginx-1.20.2/
[root@nginx nginx-1.20.2]#

//准备安装
##在配置前我们其实可以隐藏一下nginx版本号,以防版本泄露
[root@nginx nginx-1.20.2]# vim src/core/nginx.h 
#define NGINX_VERSION      "111"    //修改这个参数隐藏nginx版本号

//开始配置
[root@nginx nginx-1.20.2]# ./configure \
> --prefix=/usr/local/nginx \              //指定安装路径
> --user=nginx \                           //指定用户和组
> --group=nginx \                          
> --with-debug \                           //开启debug功能
> --with-http_ssl_module \                 //开启各类模块
> --with-http_realip_module \
> --with-http_image_filter_module \
> --with-http_gunzip_module \
> --with-http_gzip_static_module \
> --with-http_stub_status_module

//开启编译安装
[root@nginx nginx-1.20.2]# make -j $(grep 'processor' /proc/cpuinfo | wc -l) && make install
.........

//安装成功
[root@nginx nginx-1.20.2]# cd /usr/local/nginx/
[root@nginx nginx]# ls
conf  html  logs  sbin
nginx配置
//配置环境变量
[root@nginx nginx]# echo "export PATH=$PATH:/usr/local/nginx/sbin" > /etc/profile.d/nginx.sh
[root@nginx nginx]# source /etc/profile.d/nginx.sh
	
//启动服务
[root@nginx nginx]# nginx
[root@nginx nginx]# ss -anlt
State      Recv-Q     Send-Q          Local Address:Port           Peer Address:Port     Process     
LISTEN     0          128                   0.0.0.0:22                  0.0.0.0:*                    
LISTEN     0          128                   0.0.0.0:80                  0.0.0.0:*                    
LISTEN     0          128                      [::]:22                     [::]:*                    

//关闭服务,编写service文件,并设置服务开机自启
[root@nginx nginx]# nginx -s stop
[root@nginx nginx]# ss -anlt
State      Recv-Q     Send-Q          Local Address:Port           Peer Address:Port     Process     
LISTEN     0          128                   0.0.0.0:22                  0.0.0.0:*                    
LISTEN     0          128                      [::]:22                     [::]:*                    

[root@nginx nginx]# cat > /usr/lib/systemd/system/nginx.service << EOF
> [Unit]
> Description=nginx server daemon
> After=network.target 
>  
> [Service]
> 
<think>首先,用户的问题是关于LNMP搭建部署的方法,询问教程。用户引用了几个站内引用,我需要参考这些引用,但不能直接复制粘贴;要保持回答真实可靠,并使用中文。 回顾系统级指令: - 数学表达式用$...$或$$...$$,但这里可能不需要太多数学。 - 使用中文。 - 生成相关问题。 - 在引用的段落末尾添加引用标识。 - 回答结构清晰,逐步解决问题。 用户提供的引用: - 引用[1]: LNMP环境搭建教程,在Ubuntu 20.04上。 - 引用[2]: LNMP架构部署流程,解释LNMP如何工作。 - 引用[3]: LNMP的配置和安装,包括一些命令。 - 引用[4]: LNMP环境部署搭建WordPress博客教程。 用户说:“我想查找LNMP搭建部署的方法 请问LNMP搭建部署教程”,所以我需要提供一个清晰的教程,基于引用内容。 结构化我的回答: 1. **介绍LNMP**:简要解释LNMP是什么,基于引用[1]和[2]。 2. **步骤概述**:列出搭建LNMP的主要步骤。 3. **详细步骤**:逐步指导如何在Linux系统上部署LNMP,参考引用中的Ubuntu 20.04示例。 4. **验证和测试**:添加如何测试部署是否成功。 5. **生成相关问题**:在末尾添加相关问题。 关键点从引用中提取: - 安装Nginx:更新包列表,安装Nginx。 - 安装MySQL:引用[3]提到安装MySQL和依赖。 - 安装PHP:安装PHP和相关模块。 - 配置:设置Nginx处理PHP请求,可能是通过fastcgi。 - 部署应用:如引用[4]中部署WordPress。 引用末尾添加标识: - 我需要自然地添加像[^1]之类的引用标识。 确保回答真实可靠: - 基于提供的引用,但不直接复制;用自己的话描述。 - 使用通用步骤,因为用户没有指定Linux发行版,但引用[1]是基于Ubuntu 20.04,所以我可以用那个作为例子。 最终回答结构: - 标题或开头解释LNMP。 - 步骤列表或分段描述安装过程。 - 结尾添加相关问题。 生成相关问题: - 类似示例中的快速排序相关问题。 - 例如:LNMP的优化方法?常见问题解决?与其他堆栈的比较? 完整回答草稿: 1. **介绍**:LNMP代表LinuxNginx、MySQL、PHP,是一种流行的Web服务器架构。它适用于运行动态网站,如WordPress博客[^1][^2]。 2. **主要步骤**: - 更新系统包列表。 - 安装Nginx Web服务器。 - 安装MySQL数据库。 - 安装PHP及其扩展。 - 配置Nginx来处理PHP请求。 - 部署Web应用(如WordPress)。 3. **详细教程**(基于Ubuntu 20.04): - 步骤1: 更新包列表:`sudo apt update` - 步骤2: 安装Nginx:`sudo apt install nginx -y` - 步骤3: 安装MySQL:`sudo apt install mysql-server -y`,然后运行安全脚本。 - 步骤4: 安装PHP:`sudo apt install php-fpm php-mysql -y` - 步骤5: 配置Nginx:编辑Nginx站点配置文件,设置处理PHP请求的位置块。 - 步骤6: 重启服务:`sudo systemctl restart nginx` - 步骤7: 测试:创建PHP测试文件(如info.php)访问验证。 - 可选:部署WordPress或其他应用,如引用[4]所示。 4. **结论**:确认LNMP环境搭建完成。 5. **相关问题**:列出几个相关问题。 在回答中,自然地添加引用标识。例如,当提到教程时,加[^1],架构工作时加[^2]。 相关问题: 1. 如何优化LNMP服务器的性能? 2. LNMP部署中常见问题及解决方法? 3. LNMP与其他堆栈如LAMP的区别是什么? 4. 如何在LNMP上部署特定应用(WordPress)? </think>### LNMP搭建部署教程 LNMPLinuxNginx、MySQL、PHP)是一种广泛使用的Web服务器堆栈,适用于运行动态网站如博客、电商平等。它通过Nginx处理静态资源,将动态请求转发给PHP处理,并结合MySQL存储数据。以下是基于Ubuntu 20.04 LTS的LNMP搭建详细步骤,过程参考了站内教程[^1][^2][^3]。步骤确保结构清晰,每个阶段都包含命令和解释。 #### 1. **更新系统包列表** 首先登录Linux服务器(需root或sudo权限),更新软件包列表以确保获取最新版本: ```bash sudo apt update && sudo apt upgrade -y ``` 此步骤是基础操作,避免后续安装依赖冲突[^1]。 #### 2. **安装Nginx Web服务器** NginxLNMP的前端服务器,负责处理HTTP请求: ```bash sudo apt install nginx -y ``` 安装后启动并启用开机自启: ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` 验证安装:在浏览器访问服务器IP(如 `http://your-server-ip`),看到Nginx欢迎页面即成功[^1]。 #### 3. **安装MySQL数据库** MySQL用于存储网站数据,安装时需配置root密码: ```bash sudo apt install mysql-server -y ``` 运行安全脚本强化MySQL,设置密码并移除测试数据库: ```bash sudo mysql_secure_installation ``` 提示时设置强密码,并选择“Y”确认安全选项(如禁止远程root登录)。安装后登录MySQL测试: ```bash sudo mysql -u root -p ``` 输入密码后显示MySQL命令行即正常[^3]。 #### 4. **安装PHP及其扩展** PHP处理动态请求,需安装核心模块及与Nginx、MySQL的集成包: ```bash sudo apt install php-fpm php-mysql php-mbstring php-xml php-curl php-zip -y ``` - `php-fpm`:PHP FastCGI进程管理器,用于Nginx转发请求。 - 其他扩展支持常见Web应用(如WordPress)。 启动PHP-FPM服务: ```bash sudo systemctl start php-fpm sudo systemctl enable php-fpm ``` #### 5. **配置Nginx处理PHP请求** 修改Nginx站点配置文件,将动态请求通过fastcgi协议转发给PHP-FPM: - 编辑默认配置文件: ```bash sudo nano /etc/nginx/sites-available/default ``` - 在 `server` 块中添加或修改以下内容: ```nginx server { listen 80; root /var/www/html; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php-fpm.sock; } } ``` 保存后测试配置并重启Nginx: ```bash sudo nginx -t # 检查语法错误 sudo systemctl restart nginx ``` 此配置确保静态资源由Nginx直接处理,动态PHP请求转交给PHP-FPM[^2]。 #### 6. **测试LNMP环境** 创建PHP测试文件验证环境: ```bash echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php ``` 在浏览器访问 `http://your-server-ip/info.php`,显示PHP信息页面即表示LNMP搭建成功[^2]。 #### 7. **部署Web应用(示例:WordPress)** 如需部署应用如WordPress: - 下载并解压WordPress包(参考引用[4]): ```bash wget https://wordpress.org/latest.tar.gz tar -xzvf latest.tar.gz sudo mv wordpress/* /var/www/html/ ``` - 设置文件权限: ```bash sudo chown -R www-data:www-data /var/www/html/ ``` - 访问 `http://your-server-ip`,按WordPress向导配置数据库。 此步骤展示了LNMP的实际应用场景[^4]。 ### 注意事项 - **系统要求**:Ubuntu 20.04推荐,其他Linux发行版命令可能不同(如CentOS用 `yum`)。 - **安全优化**:安装后配置防火墙(`ufw`),禁用不必要的PHP模块。 - **参考依据**:本教程基于站内LNMP部署流程和配置指南[^1][^2][^3],确保环境可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值