Day11 LNMP搭建

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

  • 安装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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:自定义Dockerfile 搭建LNMP架构


下一篇:LNMP安装