Redhat6.5系统下搭建LNMP环境(源码编译)

LNMP

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

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

LNMP架构介绍

在这里插入图片描述
LNMP架构和LAMP架构挺像的,只不过一个用的Apache一个用的Nginx。LNMP就是Linux+Nginx+MySQL+PHP,Nginx和Apache一样都是web服务器。
  还有一点不同的是在LNMP结构里php会启动一个服务:php-fpm,而LAMP中php只是作为Apache的一个模块存在。Nginx会把用户的动态请求交给php服务去处理,这个php服务就会去和数据库进行交互。用户的静态请求Nginx会直接处理,Nginx处理静态请求的速度要比apache快很多性能上要好,所以apache和Nginx在动态请求处理上区别不大,但如果是静态请求处理的话就会明显发现Nginx要快于apache,而且Nginx能承受的并发量要比apache大,可以承受好几万的并发量,所以大一些的网站都会使用Nginx作为web服务器。

LNMP环境搭建

源码编译安装Mysql

一、源码编译
1:下载cmake-2.8.12.2-4.el6.x86_64.rpm 和mysql-boost-5.7.17.tar.gz
cmake:
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

2:yum install cmake-2.8.12.2-4.el6.x86_64.rpm -y ##用yum安装可以解决软件依赖性(镜像中有的依赖性)
在这里插入图片描述
3:tar zxf mysql-boost-5.7.17.tar.gz
4:cd mysql-5.7.17/
5:执行:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
#安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data \
#数据库存放目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \
 #Unix socket 文件路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \
#安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安装 innodb 存储引擎
-DDEFAULT_CHARSET=utf8 \
#使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci \
#校验字符
-DEXTRA_CHARSETS=all \
#安装所有扩展字符集
-DWITH_BOOST=boost/boost_1_59_0/
#安装boost库

在这里插入图片描述
直接执行完上面命令后,会报错,要解决一系列依赖性
在这里插入图片描述
用yum安装以下依赖性:
yum install gcc gcc-c++ ncurses-devel -y
在这里插入图片描述
安装完这些依赖性后,也会执行成功,但是会有warning,要想消除warning,在下载一个依赖性,就可以解决
yum install bison -y
在这里插入图片描述
6:安装完依赖性后,先不要执行上一步的cmake命令,要先删除cmake缓存文件,因为编译时会优先读取cmake缓存文件,要将缓存文件删了,重新编译
在这里插入图片描述
7:现在可以再次执行第五步的cmake命令来重新编译了
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/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/
在这里插入图片描述
8:cmake完成后,执行make ####make过程非常慢
在这里插入图片描述
9:接下来执行make install
在这里插入图片描述
二、相关配置
1:cd /usr/local/mysql/support-files/
2:cp my-default.cnf /etc/my.cnf
在这里插入图片描述
3:vim /etc/my.cnf
编辑:

18 basedir = /usr/local/mysql
19 datadir = /usr/local/mysql/data
20 port = 3306
22 socket = /usr/local/mysql/data/mysql.sock

在这里插入图片描述
4:cp mysql.server /etc/init.d/mysqld
5:groupadd -g 27 mysql
6:useradd -u 27 -g 27 -M -d /usr/local/mysql/data -s /sbin/nologin mysql
在这里插入图片描述
7:cd /usr/local/mysql/
8:chown mysql.mysql . -R
在这里插入图片描述
9:cd
10:设置环境变量
vim .bash_profile
编辑:

10 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

在这里插入图片描述
11:source .bash_profile ##加载环境变量
在这里插入图片描述
12:cd /usr/local/mysql/
13:mysqld --initialize --user=mysql ###初始化
执行完这条命林后,会弹出很多行数据,复制最后一条冒号后生成的密码,冒号后面的全部内容
在这里插入图片描述
14:此时,mysqld服务已经可以开启关闭了
cd /usr/local/mysql/
chown root.root . -R
chown mysql data/ -R
在这里插入图片描述
15:打开mysqld /etc/init.d/mysqld start
在这里插入图片描述
16:进行安全初始化
mysql_secure_installation
(1)在第一次交互请求后面输入刚刚初始化时复制的密码
(2)然后输入两次新密码
(3)接下来的交互式请求可以直接回车,这条交互式请求是询问你是否要检查密码强度,如果输入y,就要重新修改密码,密码长度必须超过8位,必须有大小写字母,所以我们直接回车
(4)接下来会询问是否要修改root密码,直接回车,因为上面已经设置过了
(5)接下来全部输入y回车就行
在这里插入图片描述
17:现在就可以直接进入mysql了
mysql -p
输入设置的密码进入就行
在这里插入图片描述

源码编译安装PHP

一、源码编译
1:下载 php-5.6.35.tar.bz2 gd-devel-2.0.35-11.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
在这里插入图片描述
2:安装所需依赖性
yum install libxml2-devel openssl-devel curl-devel gd-devel-2.0.35-11.el6.x86_64.rpm gmp-devel libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm net-snmp-devel -y
在这里插入图片描述
3:下载re2c-0.13.5-1.el6.x86_64.rpm并且安装rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm
re2c:
re2c是一个扫描器制作工具,可以创建非常快速灵活的扫描器。它可以产生高效代码,基于C语言,可以支持C/C++代码。 与其它类似的扫描器不同,它偏重于为正则表达式产生高效代码(和他的名字一样)。因此,这比传统的词法分析器有更广泛的应用范围。 你可以在sourceforge.net获取源码。
PHP在最开始的词法解析器是使用的是flex,后来PHP的改为使用re2c。
在这里插入图片描述
4:tar jxf php-5.6.35.tar.bz2
cd php-5.6.35/
在这里插入图片描述
5:./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/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-mcrypt --with-mhash
在这里插入图片描述
在这里插入图片描述
6:make && make install
在这里插入图片描述
二、相关配置
7:cd /usr/local/php/etc/
8:cp php-fpm.conf.default php-fpm.conf
9:cd /root/php-5.6.35
10:cp php.ini-production /usr/local/php/etc/php.ini
11:cd /usr/local/php/etc/
在这里插入图片描述
12:vim php.ini
将时区改成 Asia/Shanghai
935 ; http://php.net/date.timezone
936 date.timezone = Asia/Shanghai
在这里插入图片描述
13:vim php-fpm.conf
24 ; Default Value: none
25 pid = run/php-fpm.pid ###去掉注释
149 user = nginx
150 group = nginx ###因为等会要结合nginx与php
在这里插入图片描述
在这里插入图片描述
14:useradd -M -d /usr/local/nginx -s /sbin/nologin nginx
15:cd /root/php-5.6.35/sapi/fpm/
16:cp init.d.php-fpm /etc/init.d/php-fpm
17:chmod +x /etc/init.d/php-fpm
18:/etc/init.d/php-fpm start
在这里插入图片描述

源码编译nginx并结合php

这部分源码编译nginx在之前的博客有专门说过,这里在操作一遍
一、源码编译
1:下载nginx-1.10.1.tar.gz nginx-sticky-module-ng.tar.gz
2:.tar zxf nginx-1.10.1.tar.gz
tar zxf nginx-sticky-module-ng.tar.gz
3:cd nginx-1.10.1
在这里插入图片描述
4:vim src/core/nginx.h
#去掉版本号
14 #define NGINX_VER “nginx”
在这里插入图片描述
5:vim auto/cc/gcc
注释掉debug
178 # debug
179 #CFLAGS="$CFLAGS -g"
在这里插入图片描述
6:./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --with-threads --with-file-aio --add-module=/root/nginx-sticky-module-ng
上条命令执行时会报错,根据报错我们需要下载pcre-devel
在这里插入图片描述
yum install pcre-devel -y
在这里插入图片描述
7:再次执行./configure命令
在这里插入图片描述
8:make && make install
在这里插入图片描述
二、相关配置
9:cd /usr/local/nginx/conf/
10:vim nginx.conf

	12 events {
	13     worker_connections  65535;
	14 }
	65         location ~ \.php$ {
  	66             root           html;
  	67             fastcgi_pass   127.0.0.1:9000;
  	68             fastcgi_index  index.php;
 	69         #    fastcgi_param  SCRIPT_FILENAME  /scripts  $fastcgi_script_name;
  	70             include        fastcgi.conf;
  	71         }

在这里插入图片描述
在这里插入图片描述
11:vim /etc/security/limits.conf
最后一行写入:
nginx - nofile 65536
在这里插入图片描述
12:vim ~/.bash_profile
第十行添加:
PATH=$ PATH:$HOME/bin:/usr/local/mysql/bin:/usr/ local/nginx/sbin
在这里插入图片描述
13:source ~/.bash_profile
14:nginx -t
15:nginx
在这里插入图片描述
16:nginx默认发布目录在 : /usr/local/nginx/html/
cd /usr/local/nginx/html/
vim index.php
写入:

<?php phpinfo() ?>

在这里插入图片描述
17:在浏览器中访问172.25.66.1访问的是nginx默认发布文件界面
在这里插入图片描述
18:输入172.25.66.1/index.php访问的是php界面
在这里插入图片描述
19:修改php为默认访问界面(将php后缀文件作为默认发布文件)
vim /usr/local/nginx/conf/nginx.conf

 43         location / {
 44             root   html;
 45             index  index.php index.html index.htm;
 46         }

在这里插入图片描述
20:修改完成后重载nginx
nginx -s reload
21:在浏览器中直接输入172.25.66.1,可以看到访问到的时php界面
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gd0306/article/details/84564203