美文网首页
day46课堂笔记(LNMP搭建)

day46课堂笔记(LNMP搭建)

作者: 五月_w | 来源:发表于2019-05-07 13:59 被阅读0次

    第一章、LNMP Web服务搭建

    1.1、JAVA Web环境(企业更多)

    1) [tomcat(jvm)]、resin、jboss、Weblogic
    配合nginx proxy_pass代理功能
    2)Python Web环境
    配合nginx uwsgi_pass代理功能
    3)PHP Web环境
    配合nginx fastcgi_pass代理功能
    4)Go 语言环境
    

    第二章、企业级LNMP环境应用实践

    2.1、LNMP介绍

    LNMP(即Linux、Nginx、Mysql、PHP),已经逐渐成为国内大中型互联网公司网站的主流组合环境
    

    2.2、LNMP基本访问流程

    image.png
    image.png

    第三章、LNMP中Mysql数据库

    3.1、Mysql数据库介绍

    image.png

    3.2、Mysql数据库产品

     Mysql(mariadb)、 Oracle、SQL、SERVER、PGSQL
    

    3.3、为什么选择Mysql数据库?

     1)性能卓越,服务稳定,很少出现异常宕机
     2)开放源代码且无版权之约,自主性强,使用成本低
     3)历史悠久,社区及用户非常活,遇到问题可以很快获取到帮助
     4)软件体积小、安装使用简单,并且易于维护、安装及维护成本低
     5)支持多种操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言无缝支持
     6)品牌口碑效应,使得企业直接使用
    

    3.4、安装Mysql数据库

    3.41、安装方式

    image.png

    3.42、第一步、创建用户

    useradd mysql -s /sbin/nologin -M
    id mysql
    
    image.png

    3.43、第二步、切换到指定目录

    cd /server/tools/
    
    image.png

    3.44、第三步、上传压缩包,解压

    rz
    ls -sh mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
    tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
    mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql-5.7.26
    ln -s /application/mysql-5.7.26/ /application/mysql 
    ls /application/mysql
    

    3.45、第四步、配置配置文件/etc/my.cnf

    rpm -e --nodeps mariadb-libs(卸载忽略依赖)
    vim /etc/my.cnf
    [mysqld]
    basedir = /application/mysql/
    datadir = /application/mysql/data
    socket = /tmp/mysql.sock
    server_id = 1
    port = 3306
    log_error = /application/mysql/data/oldboy_mysql.err
    [mysql]
    socket = /tmp/mysql.sock
    prompt = oldboy [\\d]>
    
    image.png
    image.png
    image.png

    3.46、第五步、初始化数据库

    rpm -qa mariadb-libs
    yum install libaio-devel -y
    mkdir -p /application/mysql/data
    chown -R mysql.mysql /application/mysql/
    /application/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/application/mysql/ --datadir=/application/mysql/data
    
    image.png
    image.png

    3.47、配置启动服务

    vim /etc/systemd/system/mysqld.service
    [Unit]
    Description=MySQL Server by oldboy
    Documentation=man:mysqld(8)
    Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE = 5000
    systemctl start mysqld
    systemctl enable mysqld
    systemctl status mysqld
    netstat -lntup |grep mysql
    ps -ef |grep mysql|grep -v grep
    echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
    tail -1 /etc/profile
    . /etc/profile
    echo $PATH
    mysql
    
    image.png
    image.png
    image.png

    3.48、修改密码

       mysqladmin -u root password 'oldboy123'
    交互式登录
       mysql -uroot -p
    非交互式登录
      mysql -uroot -poldboy123
    
    image.png
    image.png

    第四章、FastCGI

    4.1、什么是CGI?

    CGI的全称"通用网关接口",为HTTP服务器与其他机器上的程序服务通信交流的一种工具,CGI程序运行在网络服务器上。
    传统CGI方式在处理高并发访问时几乎是不可用的并且CGI接口方式安全性很差,因此诞生了FastCGI。
    

    4.2、什么是FastCGI

    FastCGI是一个可伸缩地、高速地在HTTP服务器和动态脚本语言间通信的接口(在Linux下,FastCGI接口即为socker,这个socker可以是文件socker,也可以是IP socker)
    主要优点是:把动态语言和HTTP服务器分离开,多数流行的HTTP服务器都支持FastCGI,包括Apache、Nginx、Lighttpd等。
    

    4.3、FastCGI特点

     1)HTTP服务器和动态脚本语言间通信的接口
     2)可把动态语言解析和HTTP服务器分离开来
     3)Apache、Nginx、Lighttpd以及多数动态语言都支持FastCGI
     4)  FastCGI接口方式采用C/S结构,分为客户端(HTTP服务器)和服务端(动态语言解析服务器)
     5)PHP动态语言服务端可以启动多个FastCGI的守护进程(例如:php-fpm(fcgiprocess mangement))
    6)   http服务器通过(例如:Nginx fastcgi_pass)FastCGI客户端和动态语言FastCGI服务端通信(例如pho-fpm)
    

    4.4、FastCGI运行原理

    image.png

    4.5、安装PHP

    1、安装PHP调用的库
    useradd -u 1111 nginx
    netstat -lntup |grep nginx
    netstat -lntup |grep mysql
    yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y
    yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y
    rpm -qa install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
    rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
    cd /server/tools/
    rz
    tar xf libiconv-1.16.tar.gz 
    cd libiconv-1.16/
    ./configure --prefix=/application/libiconv
    make
    make install
    cd ../
    yum install libmcrypt-devel -y 
    yum install mhash -y
    yum install mcrypt -y
    
    2、安装PHP
    cd /srver/tools
    rz
    tar xf php-7.3.5.tar.gz
    cd php-7.3.5/
    ./configure --prefix=/application/php-7.3.5 --enable-mysqlnd  --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/application/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --enable-opcache=no
    echo $?
    make && make install
    ln -s /application/php-7.3.5/ /application/php
    ls /application/php
    
    3、配置pho.ini(PHP解析器配置文件)
    cd /server/tools/php-7.3.5/
    ls php.ini-*
    cp php.ini-development /application/php/lib/php.ini
    ls -l /application/php/lib/php.ini
    
    4、配置PHP FPM
    cd /application/php/etc/
    cp php-fpm.conf.default php-fpm.conf
    cd php-fpm.d/
    ls
    cp www.conf.default www.conf
    
    5、启动PHP服务
    /application/php/sbin/php-fpm 
    netstat -lntup |grep php-fpm
    
    6、开机自启动
    vim /etc/rc.local
    /application/nginx/sbin/nginx
    /application/php/sbin/php-fpm
    
    
    7、配置nginx转发PHP请求
    vim 03_blog.conf 
    location ~ .*\.(php|php5)?$ {
            root html/blog;
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
    nginx -t
    nginx -s reload
    
    8、测试NGINX连接PHP
       编写测试文件
    echo "<?php phpinfo(); ?>" > ../html/blog/test_info.php
    cat ../html/blog/test_info.php
    /application/php/bin/php /application/nginx/html/blog/test_info.php
    
    9、测试PHP连接mysql
    vim /application/nginx/html/blog/test_mysql.php 
    <?php
    //$link_id=mysqli_connect('主机名','用户','密码');
               $link_id=mysqli_connect('localhost','root','oldboy123') or mysql_error();
               if($link_id){
                          echo "mysql successful by oldboy.\n";
               }else{
                          echo mysql_error();
               }
    ?>
    /application/php/bin/php /application/nginx/html/blog/test_mysql.php
    

    LNMP环境搭建成功。


    image.png
    image.png image.png
    image.png

    相关文章

      网友评论

          本文标题:day46课堂笔记(LNMP搭建)

          本文链接:https://www.haomeiwen.com/subject/ghploqtx.html