LNMP架构

LNMP架构介绍

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

  • Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
  • Nginx是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP代理服务器。
  • Mysql是一个小型关系型数据库管理系统。
  • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

实验操作环境:linux6.5

操作的主机,selinux及iptables处于关闭状态。

Nginx的源码编译安装及配置
nginx的安装包可在官网下载(nginx.org)

[root@server1 ~]# tar zxf nginx-1.16.0.tar.gz
[root@server1 nginx-1.16.0]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README

编辑文件去掉nginx版本号(防止黑客攻击)和注释掉debug方便快速解析(日志内容太多)

		vim src/core/nginx.h 			## 去掉版本号
		14 #define NGINX_VER          "nginx"

在这里插入图片描述

		vim auto/cc/gcc					## 注释debug
		171 # debug
		172 #CFLAGS="$CFLAGS -g"

在这里插入图片描述

安装编译需要的依赖(环境不同可能需要依赖不同,编译失败时看error,缺少什么装什么)
需要在解压出来的目录下

	 yum install gcc pcre-devel openssl-devel -y

[root@server1 nginx-1.16.0]#./configure --prefix=/usr/local/lnmp/nginx \
> --with-http_ssl_module \
> --with-http_stub_status_module \
> --with-threads \
> --with-file-aio \
> --user=nginx \
> --group=nginx

结束之后没有报错 即为安装成功
在这里插入图片描述
编译安装

		make && make install

出现这条消息且没有报错即为成功编译
在这里插入图片描述

Nginx的相关配置
nginx配置文件: /usr/local/lnmp/nginx/conf/nginx.conf

	[root@server1 nginx-1.16.0]# vim /usr/local/lnmp/nginx/conf/nginx.conf
43         location / {
44             root   html;
45             index  index.php index.html index.htm;   
							## 支持php,默认以先后顺序访问
46         }

65         location ~ \.php$ {   ## 将以下注释去掉,支持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;   ##修改成.conf结尾
71         }

sbin下是nginx的启动脚本

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
		##  制作一个软连接 方便开启nginx

检测语法错误

		nginx -t	## 会直接指出错误的地方

在这里插入图片描述
上图报错是因为编译的时候选定了nginx用户和nginx组
手动创建用户即可

	useradd nginx

在这里插入图片描述

启动nginx后,查看80端口情况。确认端口和服务一起开启

		netstat -tnlp

在这里插入图片描述

Mysql数据库的源码编译安装及配置
安装包可从官网下载

	tar zxf mysql-boost-5.7.27.tar.gz   

在这里插入图片描述
在这里插入图片描述

官网下载Mysql预编译工具包,并进行安装(cmake:它支持编译c++语言)

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)

	yum install cmake-2.8.12.2-4.el6.x86_64.rpm  -y

编译之前安装依赖,编译过程报错缺什么安装什么

	yum install gcc gcc-c++ ncurses-devel bison -y

进行预编译(创建预编译环境时需指定一些之后用得到的参数)

如果之前编译失败过,在重新cmaek之前要删掉缓存

	rm  -rf  CMakeCache.txt

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 \   #Unix  socket文件路径
> -DWITH_MYISAM_STORAGE_ENGINE=1 \      #安装myisam存储引擎
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \    #安装innobase存储引擎
> -DDEFAULT_CHARSET=utf8 \              #utf8字符
> -DDEFAULT_COLLATION=utf8_general_ci \ #检验字符
> -DEXTRA_CHARSETS=all \                #安装所有扩展字符集
> -DWITH_BOOST=boost/boost_1_59_0

出现以下即为编译成功
在这里插入图片描述

make && make install 		## 此过程需要时间较长
					## 在编译之前确保虚拟机至少2G内存,双cpu

在这里插入图片描述

Mysql的相关配置

复制mysql服务启动脚本到/etc/init.d下,并给与可执行权限

cp -p /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/mysqld
				## 记得-p带权限一起复制
chmod +x /etc/init.d/mysqld			## 添加执行权限

复制mysql配置文件到/etc下并进行修改

cp /usr/local/lnmp/mysql/support-files/etc/my.cnf /etc/my.cnf

vim /etc/my.cnf    #编辑mysql的配置文件。
basedir = /usr/local/lnmp/mysql
datadir = /usr/local/lnmp/mysql/data
socket = /usr/local/lnmp/mysql/data/mysql.sock

在这里插入图片描述

为了方便操作更改环境变量并刷新

vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin

source ~/.bash_profile

mysql   ## 按两次tab键补全,来验证mysql环境变量配置成功

创建mysql的用户和组

	useradd mysql

修改权限,创建/usr/local/lnmp/mysql/data,并更改该目录用户和所有组为mysql

cd /usr/local/lnmp/mysql/
mkdir data
chown mysql.mysql data

获取mysql的登陆密码

	mysqld --user=mysql --initialize  
			  ## 执行命令后,密码在最后一行,一定要记住这个密码。
	9=e7TyXGc7Bp

开启数据库,安全初始化,更改登陆密码。

	/etc/init.d/mysqld start
	mysql_secure_installation 
		## 更改密码时,就是刚刚生成的密码(9=e7TyXGc7Bp),其他默认回车

在这里插入图片描述

记得查看端口3306,确保端口和服务都是开启的

	netstat -tnlp

Php的源码编译安装及配置
官网下载php安装包

	tar jxf php-5.6.35.tar.bz2 

安装编译前的依赖性

[root@server1 ~]# yum install libxml2-devel -y
[root@server1 ~]# yum install openssl-devel -y
[root@server1 ~]# yum install libcurl-devel -y
[root@server1 ~]# yum whatprovides */jpeglib.h
[root@server1 ~]# yum install libjpeg-turbo-devel-1.2.1-1.el6.x86_64 -y
[root@server1 ~]# yum whatprovides */png.h
[root@server1 ~]# yum install libpng-devel-1.2.49-1.el6_2.x86_64 -y
[root@server1 ~]# yum install freetype-devel -y
[root@server1 ~]# yum whatprovides */gmp.h
[root@server1 ~]# yum install gmp-devel-4.3.1-7.el6_2.2.x86_64 -y
以下俩个需要在官网下载
libmcrypt-devel-2.5.8-9.el6.x86_64.rpm        
libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
[root@server1 ~]# yum install libmcrypt-* -y  
[root@server1 ~]# yum install net-snmp-devel -y
  • yum provides */不知道名称的包
    可以搜索安装包名称

配置编译环境

cd php-5.6.35
./configure --prefix=/usr/local/lnmp/php \  #php安装的位置
> --with-config-file-path=/usr/local/lnmp/php/etc \     #php配置文件所在的位置
> --with-openssl \          #支持openssl加密
> --with-snmp  \            #支持与mysql所数据库之间建立联系
> --with-libxml-dir \       #支持libxml函数
> --with-png-dir \          #支持php处理图片的格式(png格式)
> --with-jpeg-dir \         #支持php处理图片的格式(jpeg格式)
> --with-freetype-dir \     #支持php处理图片的格式(freetype格式)
> --enable-fpm \            #开启fpm模式(nginx等服务用的)
> --with-fpm-user=nginx \   #对php服务的限制通过nginx用户来实现
> --with-fpm-group=nginx \  #php以nginx用户组身份运行
> --with-mcrypt \           #提供了对多种算法的支持,主要用来实现加密等算法
> --with-mhash              #加密算法

编译安装

	make && make install   ## 该过程需要的时间较久

Php的相关配置
复制php启动脚本到/etc/init.d目录下,并给与执行权限

cd php-5.6.35/sapi/fpm/
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm ## 给启动脚本加可执行的权限

修改pid
因为上述的编译安装没有生成php-ftp.pid文件以供使用。所以要用下面的方案来生成php-fpm.pid文件

	cd /usr/local/lnmp/php/etc
	cp php-fpm.conf.default php-fpm.conf     
	 ## 拷贝文件。注意:这步是必须的,因为之后要在nginx服务的配置文件中进行相应的配置,使得nginx支持.conf结尾的文件
	vim php-fpm.conf
	打开端口 pid = run/php-fpm.pid(取消注释)

在这里插入图片描述

修改时区

[root@server1 php-5.6.35]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini    
		## 注意必须将cp过来的文件的名字该为php.ini
[root@server1 php-5.6.35]# vim /usr/local/lnmp/php/etc/php.ini
date.timezone = Asia/Shanghai         ## 将时区改为亚洲上海

在这里插入图片描述

开启php服务.并且查看9000端口是否存在

	etc/init.d/php-fpm start       ## 开启php-fpm服务
	netstat -tnlp

测试:

网页输入172.25.3.1(搭建lnmp服务器ip),即可访问到nginx默认页面。

在这里插入图片描述

检测是否支持php语言

	cd /usr/local/lnmp/nginx/html/
	vim index.php			## 编辑一个php的默认发布页面
	<?
		phpinfo()
	?>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值