• 基于源码编译的lnmp架构实现论坛的搭建及memcache的应用


    系统环境: RHEL6 x86-64 selinux and iptables disabled

    LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构
    Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统
    Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
    Mysql是一个小型关系型数据库管理系统
    PHP是一种在服务器端执行的嵌入HTML文档的脚本语言
    这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统

    1.解决依赖性

    2.源码编译三步曲

    [root@server1 mysql-5.7.11]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/
    [root@server1 mysql-5.7.11]# make
    [root@server1 mysql-5.7.11]# make install

    这里写图片描述
    如果cmake出错则删除缓存信息再进行编译,否则编译的时候执行的是上一次cmake错误的信息

    3.修改mysql的配置文件

    这里写图片描述
    4.设置mysql的启动脚本
    确保有可执行权限

    5.建立mysql用户

    6.设置mysql命令路径

    示图:文件编写内容
    这里写图片描述
    可以直接使用mysql命令
    这里写图片描述
    7.mysql 初始化安装

    出现warning可以跳过,但是error不行
    这里写图片描述
    修改目录权限,设置data目录的所有人为mysql,所有组为root
    其他目录的所有人和所有组都是root

    这里写图片描述

    8.安全初始化:

    此时需要输入之前初始化安装时的默认密码

    这里写图片描述

    设置完成
    这里写图片描述


    1.解决依赖性

    下面的包需要在网上找资源

    解包

    2.源码编译三步曲

    [root@server1 php-5.6.35]# https://blog.csdn.net/weixin_41476978/article/details/configure –prefix=/usr/local/lnmp/php –with-config-file-path=/usr/local/lnmp/php/etc –with-mysql=mysqlnd –enable-mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-openssl –with-snmp –with-gd –with-zlib –with-curl –with-libxml-dir –with-png-dir –with-jpeg-dir –with-freetype-dir –with-pear –with-gettext –with-gmp –enable-inline-optimization –enable-soap –enable-ftp –enable-sockets –enable-mbstring –enable-fpm –with-fpm-user=nginx –with-fpm-group=nginx –with-mcrypt –with-mhash
    [root@server1 php-5.6.35]# make && make install

    3.配置php

    这里写图片描述

    4.创建nginx用户

    5.创建脚本

    设置成功


    1.编译前的设置

    取消版本号
    这里写图片描述
    关闭掉调试功能

    这里写图片描述
    解决依赖性:

    2.源码编译三步曲

    [root@server1 nginx-1.10.1]# https://blog.csdn.net/weixin_41476978/article/details/configure –prefix=/usr/local/lnmp/nginx –with-http_ssl_module –with-http_stub_status_module –user=nginx –group=nginx –with-threads –with-file-aio
    [root@server1 nginx-1.10.1]# make && make install

    3.修改最大连接数

    修改操作系统的最大文件数

    4.设置nginx命令路径

    示图:文件编写内容
    这里写图片描述
    可以直接使用nginx命令

    测试:在浏览器访问172.25.62.1 出来nginx 欢迎界面
    这里写图片描述
    5.访问php页面设置
    编写php页面

    当访问以.php结尾交给fastcgi处理

    测试:在浏览器访问:172.25.7.1/index.php
    这里写图片描述
    如果向直接访问php页面则:加入index.php

    这里写图片描述
    测试:在浏览器访问:172.25.62.1则出来php的页面
    这里写图片描述

    1.解压论坛的包

    2.给一个满权限

    3.指定socket的路径

    这里写图片描述
    修改访问权限:

    测试:在浏览器访问:172.25.7.1/bbs
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    论坛搭建成功:
    这里写图片描述

    memcache是一套分布式的高速缓存系统,MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据

    [1]设php命令的路径

    [2]预编译环境实现

    [3]源码编译

    [4]给php添加memcache

    示图:php.ini改写内容
    这里写图片描述
    安装工具

    这里写图片描述
    [5]测试

    这里写图片描述
    这里写图片描述
    这里写图片描述

    测试:当访问多次example.php后,再访问memcache.php命中率会提高
    这里写图片描述
    这里写图片描述
    压力测试:

    这里写图片描述

    这里写图片描述

    传统上是通过PHP操作memcache的,要执行PHP代码,Nginx就必然要和FastCGI通信,同时也要进入PHP的生命周期,因此SAPI、PHP Core和Zend Engine的一系列逻辑会被执行
    这里写图片描述
    更高效的缓存策略是Nginx直接访问memcache,并用uri和args 等Nginx内置变量设定缓存key规则,这样,当缓存命中时,Nginx可以跳过通过fastcgi和PHP通信的过程,直接从memcache中获取 数据并返回。初三英语知识点memc-nginx和srcache-nginx正是利用这种策略提高了缓存的效率。下图是这种高效缓存策略的示意图(当memcache 命中时)
    这里写图片描述

    源码编译

    [root@server1 openresty-1.13.6.1]# https://blog.csdn.net/weixin_41476978/article/details/configure –prefix=/usr/local/lnmp/openresty –with-http_ssl_module –with-http_stub_status_module –user=nginx –group=nginx –with-threads –with-file-aio
    [root@server1 openresty-1.13.6.1]# gmake && gmake install

    修改openresty中的nginx的配置文件

    访问测试:http://172.25.62.1/
    这里写图片描述
    把之前的php页面copy一份到openresty中:

    压力测试:

    这里写图片描述

    这里写图片描述

  • 相关阅读:
    2019-01-28 dubbo安装并启动测试
    JAVAWEB项目获取服务器、项目相关路径方法
    Hibernate中的查询方式
    Hibernate在eclipse中的简单运用
    JQuery Tips(2)----关于$()包装集你不知道的
    JQuery Tips(3)----关于$()包装集内元素的改变
    JQuery Tips(4)----一些关于提高JQuery性能的Tips
    利用FireBug使JQuery的学习更加轻松愉快
    asp.net core2 mvc 基础教程--中间件
    asp.net core2 mvc 基础教程--服务注册和管道
  • 原文地址:https://www.cnblogs.com/zhangyanran/p/9928930.html
Copyright © 2020-2023  润新知