LNMP搭建

L指Linux,

N指Nginx,

M一般指MySQL,也可以指MariaDB,

P一般指PHP,也可以指Perl或Python

1.搭建LNMP准备

1.1关闭selinux,selinux是Linux 内核模块,也是 Linux 的一个安全子系统

setenforce 0 #临时关闭

selinux getenforce #查看临时关闭情况

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config #永久关闭,重启电脑

1.2关闭防火墙

systemctl stop firewalld systemctl disable firewalld

1.3补充:

如果开机启用nginx提示如下:

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

这是因为80端口被占用

使用命令:fuser -k 80/tcp 解除占用

2.搭建LNMP架构

2.1使用官方仓库安装Nginx


  • 安装前:yum revmove nginx -y ##卸载旧版本nginx


  • 调整yum源优先级

    • rpm -qa yum-plugin-priorities
    • yum install yum-plugin-priorities -y

  • 配置yum源(目标从nginx官方下载如果不配置上面的优先级,默认从centos的官方下载.)

    • vim /etc/yum.repos.d/nginx.repo
    • 复制:
      ​ [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 priority=1 ​
    • yum install nginx -y #从nginx官方下载. nginx -v查看nginx版本号 nginx -t 检查有没有语法错误
    • 配置Nginx进程运行的用户

      • useradd -u1111 www -s /sbin/nologin -M
      • egrep "^user" /etc/nginx/nginx.conf
      • sed -i '/^user/c user www;' /etc/nginx/nginx.conf
      • egrep "^user" /etc/nginx/nginx.conf

    • systemctl start nginx #启动nginx服务
    • systemctl enable nginx #开机自启动
    • netstat -lntup|grep nginx #查看nginx服务是否启动
    • curl 127.0.0.1/index.html #测试nginx


2.2使用第三方扩展源安装php7.1


  • 配置PHP安装源

    • yum install epel-release -y



rpm -ql epel-release



wget ​​https://mirror.webtatic.com/yum/el7/webtatic-release.rpm​​ --no-check-certificate rpm -Uvh webtatic-release.rpm



rpm -ql webtatic-release-7-3



安装PHP及相关插件

  • 卸载旧版本的php

    • rpm -e $(rpm -qa|grep php) rpm -qa|grep php

  • 安装PHP及相关插件(网络下载安装)

    • yum install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd -y yum install php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd -y yum install php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb -y pwd

  • 安装php7版本的软件(本地安装)

    • tar xf php.zip



yum localinstall php/*.rpm -y



配置php-fpm用户与Nginx的运行用户保持一致

  • sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf



sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf





egrep "^user|^group" /etc/php-fpm.d/www.conf #查看已配置的权限



启动php-fpm,并将其加入开机自启

  • systemctl start php-fpm #启动php



systemctl enable php-fpm #开机启动php





netstat -lntup|grep php-fpm #查看是否启动php





2.3安装Mariadb/MySQL数据库


  • 安装
    yum install mariadb-server mariadb -y
  • 设置启动

    • systemctl start mariadb #启动Mariadb



systemctl enable mariadb #开机启动Mariadb





netstat -lntup|grep mysql #查看是否启动Mariadb



mysql #打开数据库
给Mariadb配置登陆密码,并是新密码进行登录数据库

  • mysqladmin password 'oldboy123' #设置密码
  • mysql -uroot -poldboy123 #登录


3.LNMP架构配置及整体测试实战----搭建博客

3.1配置虚拟主机配置文件


  • cd /etc/nginx/conf.d
  • gzip default.conf
  • vim 01_blog.etiantian.org.conf

    • ​ server { server_name blog.etiantian.org; listen 80; root /data/blog; index index.php index.html; location ~ \.php$ { root /data/blog; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ​

  • nginx -t
  • systemctl reload nginx

3.2创建站点目录


  • 创建授权blog目录

    • mkdir -p /data/blog
    • chown -R www.www /data/blog

  • 测试PHP服务

    • cd /data/blog/
    • cat >test.php<<EOF <?php phpinfo(); ?> EOF
    • cat test.php
      <?php phpinfo(); ?>

  • 测试php连接mysql

    • vim /data/blog/test_mysql.php
      ​ <?php $servername = "localhost"; $username = "root"; $password = "oldboy123"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "php连接MySQL数据库成功,oldboy安全8期"; ?> ​
    • 主机访问​​http://10.0.0.7/test_mysql.php​



  • 测试

    • index.html #验证nginx虚拟主机静态是否成功.
      echo oldboy >index.html
      curl 10.0.0.7
    • test.php #访问.php的程序,看看nginx是否后抛给php,是否解析成功.
      curl 10.0.0.7/test.php
    • test_mysql.php #访问.php的程序,看看nginx是否后抛给php,是否解析成功.是否连接数据库成功.
      curl 10.0.0.7/test_mysql.php

  • 域名测试

    • windows中的hosts
      路径:C:\Windows\System32\drivers\etc\hosts 添加内容:10.0.0.7 blog.etiantian.org
    • linux中的hosts
      路径:vim /etc/hosts
      添加内容:10.0.0.7 blog.etiantian.org

  • 安装wordpress软件

    • cd /data/blog #提前上传或下载latest-zh_CN.zip
    • unzip latest-zh_CN.zip #解压
    • mv wordpress/* #将wordpress文件夹下的文件移动到/data/blog中
    • chown -R www.www /data/blog #授权



  • 域名访问和地址访问都可以了
  • 创建是数据库

    • 方法1:浏览器访问blog.etiantian.org

      • 数据库:test
      • 用户:root
      • 密码:oldboy123
      • 主机:localhost

    • 方法2:Linux访问数据库

      • 创建数据库和用户: [root@oldboy blog]# mysql -uroot -poldboy123  #登录
      • MariaDB [(none)]> create database blog;  #创建库
      • MariaDB [(none)]> grant all on blog.* to blog@'localhost' identified by 'oldboy123';  授权库
      • MariaDB [(none)]> flush privileges;   #写入存储

        • 数据库:blog
        • 用户:blog
        • 密码:oldboy123
        • 主机:localhost