千家信息网

如何在centos 7系统中搭建LNMP架构

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,我们都知道的是LAMP平台时目前应用最为广泛的网站服务器架构,其中的"A"对应着web服务软件的Apache ,但是,现在随着时间的推移,越来越多的企业开始使用Nginx这匹黑马,LNMP或LEMP架
千家信息网最后更新 2026年11月02日如何在centos 7系统中搭建LNMP架构

我们都知道的是LAMP平台时目前应用最为广泛的网站服务器架构,其中的"A"对应着web服务软件的Apache ,但是,现在随着时间的推移,越来越多的企业开始使用Nginx这匹黑马,LNMP或LEMP架构也收到越来越多的运维攻城狮的青睐。
闲来无事,就写一下LNMP架构的搭建吧!
一、 准备工作:

•   centos7服务器一台及系统镜像;•   安装mysql数据库,可参考博文:https://blog.51cto.com/14154700/2394026 ;•   部署Nginx网站服务器,参考博文:https://blog.51cto.com/14154700/2411362•   准备PHP的软件包,网盘提取地址:链接:https://pan.baidu.com/s/1PIipn9e494XbJnclSCCgvg提取码:z2zx

二、准备工作完成后,即可开始安装PHP解析环境:
1、安装

[root@localhost ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel     #安装所需的依赖包,在系统镜像中有提供。[root@localhost media]# tar zxf php-5.5.38.tar.gz -C /usr/src     #将下载的php包解压[root@localhost media]# cd /usr/src/php-5.5.38/[root@localhost php-5.5.38]# ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm--with-jpeg-dir=/usr/lib && make && make install#配置及编译安装(过程较长,需耐心等待)

2、安装后的调整:

[root@localhost php-5.5.38]# cp php.ini-production /usr/local/php5/php.ini[root@localhost php-5.5.38]# ln -s /usr/local/php5/bin/* /usr/local/bin/[root@localhost php-5.5.38]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/

3、安装ZendGuardLoader:

[root@localhost media]# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /usr/src#解包[root@localhost src]# cd /usr/src/zend-loader-php5.5-linux-x86_64/[root@localhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/[root@localhost zend-loader-php5.5-linux-x86_64]# cd[root@localhost ~]# vim /usr/local/php5/php.ini            #在配置文件的 [ PHP ]下写入下面两行[PHP]zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.sozend_loader.enable=1             .......................

4、配置Nginx支持PHP环境
若要让Nginx能够解析PHP网页,有两种方法可以选择:其一,充当中介,将访问PHP页面的web请求转交给其他服务器(LAMP)去处理;其二,通过使用PHP的FPM模块来调用本机的PHP环境。
①启用php-pfm进程(该进程默认监听9000端口):

[root@localhost ~]# cd /usr/local/php5/etc/[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf[root@localhost etc]# useradd -M -s /sbin/nologin php[root@localhost etc]# vim php-fpm.conf               ......................pid = run/php-fpm.pid            #确认pid文件位置user = php                            #运行用户group = php                         #运行组pm.start_servers = 20                    #启动时开启的进程数pm.min_spare_servers = 5            #最少空闲进程数pm.max_spare_servers = 35         #最多空闲进程数pm.max_children = 50                   #最大子进程数

在上面的配置文件中,pid配置项指出的PID信息的存放位置,对应的实际路径为:/usr/local/php5/var/run/php-fpm.pid,根据上面的配置,可以修改Nginx服务脚本,以便在启动/停止Nginx服务器时将php-fpm进程也自动启动/停止。

[root@localhost etc]# vim /etc/init.d/nginx #!/bin/bash# chkconfig: - 99 20PROG="/usr/local/nginx/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"PROG_FPM="/usr/local/sbin/php-fpm"PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"case "$1" in  start)        $PROG        $PROG_FPM  ;;  stop)        kill -s QUIT $(cat $PIDF)        kill -s QUIT $(cat $PIDF_FPM)  ;;  restart)        $0 stop        $0 start  ;;  reload)        kill -s HUP $(cat $PIDF)        kill -s HUP $(cat $PIDF_FPM)  ;;  *)        echo "USAGE:$0 {start | stop | restart | reload}"        exit 1esacexit 0[root@localhost etc]# systemctl daemon-reload     #重新加载守护进程,否则会有提示信息[root@localhost etc]# systemctl restart nginx         #重启Nginx服务以确认脚本无误[root@localhost etc]# netstat -anpt | grep 80    #查看Nginx服务端口是否在监听tcp        0      0 0.0.0.0:80     0.0.0.0:*         LISTEN      64032/nginx: master [root@localhost etc]# netstat -anpt | grep 9000           #查看fpm服务端口是否在监听tcp        0      0 127.0.0.1:9000     0.0.0.0:*      LISTEN      64036/php-fpm: mast 

经过上面配置,一旦启动或关闭Nginx服务,php-fpm程序也会随之启动或关闭,不需要额外再启动或关闭php-fpm。
②配置Nginx支持PHP解析:
无论是将PHP页面交给LAMP服务器去解析,还是调用本机的php-fpm进程进行操作,都需要在"server { }"配置段中添加location设置,以便指定当访问php网页时采用哪种操作。
两种方法的配置项都可以在配置文件的末尾找到相应的模板。复制到相应位置,改改就可用。
对于第一种方法,可以不执行上面php-fpm的配置(转交给其他web服务器处理,使用如下格式的配置语句):
例如:交给IP地址为192.168.1.3的LAMP服务器处理,从而实现Nginx负责静态页面,LAMP负责动态页面的分离效果:

[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf                   ...................#省略部分内容server {                ...................location ~ \.php$ {         #访问.php页面的配置段            proxy_pass   http://192.168.1.3:80;            #apache服务器的监听地址        }                        ................... #省略部分内容}

我这里使用第二种方法(调用本机的php-fpm进程),配置如下:

[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf                   ...................#省略部分内容server {                ...................location ~ \.php$ {            root           /var/www/test1;             #设置php网页根目录            fastcgi_pass   127.0.0.1:9000;                      fastcgi_index  index.php;            include        fastcgi.conf;                #复制过来的模板,需要更改该行。        }                           ....................#省略部分内容}

③、编写php脚本文件,测试是否可以成功访问到PHP页面,并连接到数据库:
1) 编写php脚本:

[root@localhost etc]# vim /var/www/test1/test.php

2) 客户机访问:

至此,LNMP环境已经搭建完成了,顺道部署个web应用吧,在网上搜罗了一个社区论坛,就拿它说事了(博文开头的网盘链接的包中有该程序代码):
1、部署程序代码:

[root@localhost media]# cp Discuz_X3.3_SC_UTF8.zip /usr/src[root@localhost media]# cd /usr/src/[root@localhost src]# unzip Discuz_X3.3_SC_UTF8.zip          #解包[root@localhost src]# mv upload/ /var/www/test1/bbs          #将解压后的文件移动到网站根目录下[root@localhost src]# chown -R php:php /var/www/test1/bbs/         #调整权限

2、创建数据库:

[root@localhost src]# mysql -uroot -pEnter password:            #验证数据库用户密码mysql> create database bbs;        #创建专用的数据库Query OK, 1 row affected (0.00 sec)mysql> grant all on bbs.* to runbbs@localhost identified by 'pwd@123';  #授权用户为runbbsQuery OK, 0 rows affected (0.01 sec)

3、安装web应用:
① 客户端访问www.test1.com/bbs 即可就会打开Discuz!的安装程序:

② 下面的页面必须都是可写状态,若有红色的"X"号,则表示目录的权限有问题,查看源文件的目录权限吧!

③ 选择全新安装:

④ 设置数据库相关配置及应用后台管理密码:



访问www.test1.com/bbs/admin.php 登录到后台看看:


至此ok

配置 服务 进程 服务器 页面 数据 数据库 文件 内容 方法 环境 程序 脚本 部分 应用 监听 架构 位置 地址 权限 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司经营范围 互联网科技财经 广州互联网科技公司 苏州互联网科技贷款公司 广州凡科互联网科技 互联网科技logo 互联网 视角下的科技创新 上海卓越科技 互联网 互联网金融科技委员会 深圳卡尔迅互联网科技有限公司怎么样 江苏南京365互联网科技 深圳前海聚择互联网科技有限公司 济南华为互联网科技产业总部基地 常德市电业局互联网科技部 互联网和黑科技的看法 合肥互联网科技公司公章图片 广州互联网高科技取餐柜 易企秀互联网科技是做什么的 银川新华互联网科技学校是国营吗 互联网时代高科技布局 南京欣网互联网络科技有限公司 深圳九邦互联网科技有限公司 互联网科技产业 互联网科技公司官网 互联网科技大会案例 互联网企业和科技型企业 栖莱科技互联网股份有限公司 阿大互联网科技有限公司 互联网科技产业特征 每日互联网科技新闻
0