系统环境: 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中:

压力测试:

基于源码编译的lnmp架构实现论坛的搭建及memcache的应用的更多相关文章

  1. 源码编译配置lnmp部署zabbix

    环境说明: [root@wcy ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@wcy ~]# uname -a Linux ...

  2. WordPress安装篇(5):源码编译安装LNMP并部署WordPress

    与YUM方式安装相比,源码编译安装方式更灵活,安装过程中能自定义功能和参数,特别是在批量部署服务器又要求软件版本及配置一致时,源码编译安装的优势很明显.本文介绍如何通过源码编译方式安装Nginx1.1 ...

  3. 基于源码编译安装openssh

     最近的,openssl/openssh等相继漏洞的暴露,让暴露在公网的linux.沦陷为肉鸡的正营... 没办法,还是升级版本... 00.openssh简介 OpenSSH 是一组安全远程的连接工 ...

  4. 源码编译安装lnmp环境

    一.源码编译安装步骤 首先说明源码安装的好处   速度快,可自定义路径 主要有三步:1.配置 进入源码安装包  ./configure --prefix=/uer/local/nginx  可指定参数 ...

  5. 源码编译安装LNMP环境及配置基于域名访问的多虚拟主机

    实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) nginx版本: nginx-1.6.2 mysql版本:  Mysql-5.6.23 php版本: ...

  6. centos6源码编译安装lnmp环境

    操作系统 版本 64位 CentOS-6.6    10.0.0.20 安装环境所需依赖包 yum -y install gcc automake autoconf libtool make gcc- ...

  7. 源码编译安装lnmp环境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了无数坑,重装了十几次服务器才会的,不容易啊!

    和LAMP不同的是,LNMP中的N指的是Nginx(类似于Apache的一种web服务软件),并且php是作为一个独立服务存在的,这个服务叫做php-fpm,Nginx直接处理静态请求,动态请求会转发 ...

  8. 基于源码编译openssl

    openssh依赖于openssl,由于ssl频繁曝出漏洞,牵扯到openssh.而自身也存在漏洞... 00.下载openssl https://www.openssl.org/source/ ht ...

  9. openssh基于源码编译覆盖式安装

    覆盖式,就是卸载旧的openssh,打扫干净屋子再请客... 注意:请做做好测试工作 00.查看本机已安装的openssh rpm –qa |grep openssh rpm -e openssh-s ...

随机推荐

  1. Fast Run:提高 MegEngine 模型推理性能的神奇功能

    作者:王博文 | 旷视 MegEngine 架构师 一.背景 对于深度学习框架来说,网络的训练/推理时间是用户非常看中的.在实际生产条件下,用户设计的 NN 网络是千差万别,即使是同一类数学计算,参数 ...

  2. [JS]回调函数和回调地狱

    回调函数 小明在奶茶店点了奶茶,店员开始制作奶茶,此时"制作奶茶"与"小明等待奶茶"是一个同时进行的不同的两个事件(任务),那么,小明获取店员制作成功的奶茶是从 ...

  3. 缩减Azure上Linux虚拟机系统盘容量

    [话在前头] 这么些年微软 Azure 创建虚拟机一直不能修改系统盘大小,但很多时候实际又用不了这么大的操作系统磁盘.微软自己甚至还针对 Windows 服务器镜像推出一个 smalldisk 的镜像 ...

  4. 什么是CIDR?

    英文缩写: CIDR (Classless InterDomain Routing) 中文译名: 无类别域间路由选择 IP地址有"类"的概念,/8掩码是A类,/16掩码是B类,/2 ...

  5. [Ynoi2011]初始化 题解

    第一道Ynoi,纪念一下. 众所周知,Ynoi会进行惨无人道的卡常操作,所以我们可以使用暴力去做Ynoi. 于是乎,我们考虑分块+暴力. 对于操作2,不难发现是道裸的分块,可以抄P3372的代码. 对 ...

  6. Java面向对象12——static详解

    static  package oop.demon01.demon07; ​ // static : public class Student { ​     private static int a ...

  7. 虚拟机中桥接模式和NAT模式以及仅主机模式的区别

    桥接模式和NAT模式 网络连接类型的选择,网络连接类型一共有桥接.NAT.仅主机和不联网四种. 桥接:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上. NAT:NAT模 ...

  8. bugku-misc 9-16

    宽带信息泄露 拿到一个bin后缀的文件,知道是一个二进制文件,但是题目提到的和宽带有关,flag就是用户名.可以使用RoutePassView这个工具,使用的时候记得关闭杀毒软件. 工具可以在这里下载 ...

  9. Jetpack Compose 1.0 终于要投入使用了!

    前言 Jetpack Compose 是用于构建原生界面的「新款 Android 工具包」.2021 Google IO 大会上,Google宣布:「Jetpack Compose 1.0 即将面世」 ...

  10. Numpy数组的组合与分割详解

    在介绍数组的组合和分割前,我们需要先了解数组的维(ndim)和轴(axis)概念. 如果数组的元素是数组,即数组嵌套数组,我们就称其为多维数组.几层嵌套就称几维.比如形状为(a,b)的二维数组就可以看 ...