您的位置:首页 > 博客中心 > 数据库 >

LNMP架构介绍 MySQL安装 PHP安装 Nginx介绍

时间:2022-03-16 11:26

一、LNMP架构介绍
技术分享图片
Nginx优势:Nginx用户并发数会是好几万很高,Apache做不到
LNMP和LAMP区别:
LNMP的全称是linux+nginx+mysql+php ,LAMP的全称是linux+apache+mysql+php, 由两个架构组成可以看出,其最主要的区别在于web的选择方面:一个选择的apache,一个选择的是nginx
Nginx: nginx是一款轻量级的web服务器/反向代理服务器/电子邮件代理服务器 其性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源少 既可对内进行持,也可对外进行服务。其还是一款非常优秀的邮件代理服务器,安装简单,配置简介。
相比于Apache,nginx使用资源更少,支持更多并发连接,效率更高,作为负载均衡服务器。 LNMP是Linux+Nginx+Mysql+PHP的组合方式,其特点是利用Nginx的快速与轻量级,替代以前的LAMP(Linux+Apache+Mysql+PHP)的方式。由于安装方便,并且安装脚本也随时更新。
LNMP方式的优点:占用VPS资源较少,Nginx配置起来也比较简单,利用fast-cgi的方式动态解析PHP脚本。
LNMP方式的缺点:php-fpm组件的负载能力有限,在访问量巨大的时候,php-fpm进程容易僵死,容易发生502 bad gateway错误
二、MySQL安装
技术分享图片
#rm -rf /usr/local/mysql //因为搭建LAMP之前安装过mysql,所以需要卸载之前安装的
#rm -rf /etc/init.d/mysqld //卸载/etc/init.d/目录下的mysqld
#cd /usr/local/src/
#wget //下载mysql.tar.gz安装包
#tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz //解压.tar.gz包
#mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql //挪目录并且改名字,挪动目录之前确保/usr/local目录下没有mysql目录,不然会挪到mysql的目录下面去
#useradd -s /sbin/nologin mysql //添加mysql用户
#cd /usr/local/mysql/ //进入到/usr//loacl/mysql/目录下
#ls //查看下mysql目录下的文件
#mkdir /data/ //创建data目录
#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql //安装过程中要出现两个OK才对
#cp support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
技术分享图片
#cp support-files/mysql.server /etc/init.d/mysqld //将mysql启动脚本拷贝到/etc/init.d/目录下,并且重命名为mysqld
#vim /etc/init.d/mysqld //编辑配置文件,并修改mysql启动路径和数据存放路径
技术分享图片
#/etc/init.d/mysqld start //启动服务
#chkconfig --add mysqld //把mysqld服务加入到系统服务列表里面
#chkconfig --list /可以查看下mysqld服务是否加入到系统服务列表里面
#chkconfig mysqld on //设置开机启动mysqld服务

三、PHP安装
技术分享图片
#cd /usr/local/src/
#cd php-5.6.32/
#make clean //把之前编译的文件都删掉,删完之后相等于一个刚解压的状态
技术分享图片
#useradd -s /sbin/nologin php-fpm
#./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl
// 注释:--prefix=/usr/local/php-fpm指定路径;--with-config-file-path=/usr/local/php-fpm/etc指定配置文件所在路径;--enable-fpm必须要加上,不加这个没办法启动这个服务; --with-fpm-user=php-fpm --with-fpm-group=php-fpm指定用户和用户组;--with-mysql=/usr/local/mysql 指定mysql路径;--with-mysqli=/usr/local/mysql/bin/mysql_config指定mysqli路径;--with-pdo-mysql=/usr/local/mysql指定pdo-mysql路径;--with-mysql-sock=/tmp/mysql.sock指定sock路径
技术分享图片
执行./configure命令报错,缺少curl,如果不知道包名,可以使用#yum list来查看下
#yum install -y libcurl-devel //安装缺少的包,因为之前LAMP的时候安装过很多依赖包,所有这里不会缺少很多包,如需要请参照之前安装PHP的帖子
#./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl //继续执行命令
#make && make install //安装过程需要几分钟
ls /usr/local/php-fpm/sbin/
php-fpm //这个文件就是用来启动php-fpm服务的
/usr/local/php-fpm/sbin/php-fpm -m //看下php-fpm可不可以使用-m和-i
/usr/local/php-fpm/sbin/php-fpm -i 或者 # /usr/local/php-fpm/bin/php -i 查看相关信息
/usr/local/php-fpm/sbin/php-fpm -t //用来测试它自己配置文件语法的
技术分享图片
#cp php.ini-production /usr/local/php-fpm/etc/php.ini //production是生产环境上使用的
#cp php.ini-development /usr/local/php-fpm/etc/php.ini //development是开发环境上使用的,这两个的区别是一些配置上的不同,比如错误日志就不同
#cd /usr/local/php-fpm/etc/
#vim php-fpm.conf //创建php-fpm.conf文件,或者直接把/usr/local/php-fpm/etc/目录下的php-fpm.conf.default文件改名为php-fpm.conf
技术分享图片
#cd /usr/local/src/php-5.6.32/
#cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#chmod 755 /etc/init.d/php-fpm
#chkconfig --add php-fpm
#chkconfig php-fpm on
#/usr/local/php-fpm/sbin/php-fpm -t
#service php-fpm start
Starting php-fpm done
#ps aux |grep php-fpm
技术分享图片
四、Nginx介绍
技术分享图片
NGINX官网:
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
优点:
Nginx 可以在大多数 UnixLinux OS 上编译运行,并有 Windows 移植版。 Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。
Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:
在连接高并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。
服务器:
Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。
无缓存的反向代理加速,简单的负载均衡和容错。
FastCGI,简单的负载均衡和容错。
模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。
支持 SSL 和 TLSSNI。
代码:
Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。
代理服务器:
作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务器。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

本类排行

今日推荐

热门手游