LNMP分布式部署

LNMP是什么?

LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。

为什么使用LNMP、LNMP有什么特点?

LNMP动态网站部署架构是一套由Linux + Nginx + MySQL + PHP组成的动态网站系统解决方案,具有免费、高效、扩展性强且资源消耗低等优良特性。用于部署轻量级动态网站,其功能丰富、稳定性源自于采用了分阶段的资源分配技术,降低了CPU与内存的占用率,所以使用Nginx程序部署的动态网站环境不仅十分稳定、高效,而且消耗的系统资源也很少,Nginx具备的模块数量与Apache具备的模块数量几乎相同,而且现在已经完全支持proxy、rewrite、mod_fcgi、ssl、vhosts等常用模块。更重要的是,Nginx还支持热部署技术,可以7×24不间断提供服务。

源码包安装

环境准备:准备俩台centos7服务器
centos7-1 安装nginx+php IP地址为10.1.1.1
centos7-2 安装mysql数据库 IP地址为10.1.1.2
实验目的:很多人在搭建的时候都是使用的一台机器来部署LNMP环境,但是我们在实际的工作中一般都是分布式部署的。也就是说MySQL是MySQL;它是一台单机,分离部署自己跑自己的服务,提高效率!

Nginx+php

1、安装nginx+php所需要的插件
[root@localhost ~]#yum -y install zlib-devel xz-devel libxml2-devel pcre-devel openssl-devel
2、拖拽源码包解压并编译安装
nginx:
[root@localhost ~]# tar -zxvf nginx-1.11.1.tar.gz -C /usr/src
[root@localhost ~]#cd /usr/src/nginx-1.11.1/
[root@localhost  nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module &&make && make install
php:
[root@localhost  nginx-1.6.0]#cd /root
[root@localhost ~]#tar zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@localhost ~]#tar zxvf mhash-0.9.9.9.tar.gz -C /usr/src/
[root@localhost ~]#tar zxvf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@localhost ~]#tar  zxvf php-5.5.38.tar.gz -C /usr/src/
[root@localhost ~]#cd /usr/src/libmcrypt-2.5.8/
[root@localhost libmcrypt-2.5.8]#./configure && make && make install
[root@localhost libmcrypt-2.5.8]#ln -s /usr/local/lib/libmcrypt.* /usr/lib
[root@localhost libmcrypt-2.5.8]#cd /usr/src/mhash-0.9.9.9/
[root@localhost mhash-0.9.9.9]#./configure && make && make install
[root@localhost mhash-0.9.9.9]#  ln -s /usr/local/lib/libmhash.* /usr/lib
[root@localhost mhash-0.9.9.9]# cd /usr/src/mcrypt-2.6.8/
[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
[root@localhost mcrypt-2.6.8]#./configure && make && make install
[root@localhost mcrypt-2.6.8]#cd /usr/src/php-5.5.38/
[root@localhost mcrypt-2.6.8]# ./configure --prefix=/usr/local/php --with-mcrypt --with-mysql  --with-mysqli --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir=/usr --with-mhash --with-mcrypt --enable-mbstring --enable-sockets --enable-cgi --enable-fpm &&make &&make install
3、分别优化服务路径
nginx:
[root@localhost mcrypt-2.6.8]#ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
php:
[root@localhost mcrypt-2.6.8]#ln -s /usr/local/php/sbin/* /usr/local/sbin
[root@localhost mcrypt-2.6.8]#ln -s /usr/local/php/bin/* /usr/local/bin
4、编辑配置php-fpm配置文件
[root@localhost mcrypt-2.6.8]#cd /usr/local/php/etc
[root@localhost etc]#cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# vim php-fpm.conf
pid = run/php-fpm.pid		25#指定进程管理文件
;process_control_timeout = 0	70#进程超时时间,与keepalivetimeouti类似
process.max = 128		77#最大进程数
daemonize = yes			89#启用守护进程,防止后台进程被关闭或出现僵尸进程。
user = nobody			149#管理子进程的用户和组
group = nobody
listen = 127.0.0.1:9000		164#监听地址与端口号
pm.max_children = 5		230#最大连接数量
pm.start_servers = 2		235#默认启动的服务进程数
pm.min_spare_servers = 1	240#最小进程保留数,如果有大量空间进程时,保留多少
pm.max_spare_servers = 3	245#最大预留进程数,数量不能比pm.start_servers值少
pm.max_requests = 500		256#最大并发链接请求数
5、创建测试站点
[root@localhost etc]#vim /usr/local/nginx/html/index.php
添加如下:
<?php
$link=mysqli_connect('10.1.1.2','root','123.com');
if($link) echo "恭喜你chao,数据库连接成功啦!!";
?>
6、创建服务用户
useradd -M  -s /sbin/nologin nginx
7、创建nginx服务管理脚本:vim /etc/rc.d/init.d/nginx
添加如下:
#!/bin/bash
#chkconfig: 35 85 21
case $1 in
start)
	nginx
	;;
reload)
	killall -s HUP nginx
	;;
stop)
	killall -s QUIT nginx
	;;
restart)
	$0 stop
	$0 start
	;;
*)
	echo "start | reload | stop | restart"
	;;
esac
赋予执行权限:chmod a+x /etc/rc.d/init.d/nginx
8、添加nginx至服务管理器
chkconfig --add nginx
chkconfig nginx on
9、编辑nginx配置文件引用php-fpm
[root@localhost etc]#vim /usr/local/nginx/conf/nginx.conf
修改如下:65行
location ~ \.php$ {
            root           html;       //网页路径自己可换
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
10、重启nginx服务并设置为开机自启动
systemctl  restart nginx
systemctl  enable nginx


Mysql

1、安装mysql
yum -y install ncurses-devel perl perl-devel perl-DBD*
tar -zxvf cmake-2.8.6.tar.gz -C /usr/src
cd /usr/src/cmake-2.8.6/
./configure && gmake && gmake install
tar -zxvf mysql-5.6.36.tar.gz -C /usr/src
cd /usr/src/mysql-5.6.36
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
make  &&  make  install
2、优化服务路径
useradd -M -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
rm -f /etc/my.cnf
cp /usr/src/mysql-5.6.36/support-files/my-default.cnf /etc/my.cnf
cp /usr/src/mysql-5.6.36/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
echo "PATH=$PATH:/usr/local/mysql/bin">> /etc/profile
. /etc/profile
3、初始化数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql --group=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
4、重启mysql服务
systemctl restart mysqld
5、使用mysql授权:
 grant all on *.* to 'root'@'10.1.1.1' identified by  '123.com'//可以为单个主机

总结:

常见报错及解决思路总结至下一篇,源码包点此处提取密码cg66

猜你喜欢

转载自blog.csdn.net/weixin_46204314/article/details/111830167