12.2 MySQL安装
12.3/12.4 PHP安装
12.5 Nginx介绍
LNMP架构介绍
php会启动一个独立的服务php-fpm, Nginx会把用户请求的服务交给php处理,与MySQL做交互
php在LAMP中是以apache模块形式出现,用户请求php时,apache会交给php模块,libphp5/7模块
Nginx在处理静态文件时性能比Apache高很多
MySQL安装
把之前的MySQL清除掉
重新安装,
下载解压
把原/data/mysql/*相关删除,初始化操作,目的是为了生成Mysql服务启动所需的文件
拷贝默认配置文件cp support-files/my-default.cnf /etc/my.cnf ,并确认Mysqld下的datadir和socket路径正确
拷贝启动脚本
修改basedir,datadir
把mysql加入启动项,并设置开启启动
PHP安装
make clean
编译
报错,少cRUL
yum list 查找devel包,并安装
make & make install
编译完成后echo $?检测有无错误,对比php和php-fpm目录,多了sbin和var目录,var目录下有log和run目录,Log存日志,run记录PID,可指定
sbin目录下有php-fpm文件可以用-i查看info, -m查看具体模块名和/usr/local/php/bin/php -m,-i类似
但是不同的是,多了一个-t选项(/usr/local/php-fpm/sbin/php-fpm -t)检查语法错误,如下图出现报错是因为配置文件缺失,需要编辑配置文件才能开启php-fpm服务
useradd -s /sbin/nologin php-fpm
把php.ini-production/development文件拷贝到/usr/local/php-fpm/etc/php.ini
进入/usr/local/php-fpm/etc 下 ls发现没有.conf配置文件,可以更改.default文件,或者新建并编辑vim php-fpm.conf配置文件,输入如下内容:
通常情况下php-fpm和nginx服务是在一台服务器上运行的,两者之间通信只需要通过内部网络,故监听本机IP即可(可监听的是socket或者TCP/IP)可写成 listen=127.0.0.1:9000,监听其他IP也可以,端口默认9000,也可以改成其他的
listen.mod定义socket文件权限为666,group定义服务的所属组,主
进入源码包目录/usr/local/src/php 拷贝启动脚本到/etc/ini.t下: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
service php-fpm start
ps aux |grep php-fpm如下图
其中pool为www,www在php-fpm服务的配置文件/usr/local/php-fpm/etc/php-fpm.conf中,如下图
如下图,socket文件权限为666
Nginx介绍
①反向代理>>扩展为负载均衡 (针对2台或多台机器)
②淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css请求合并,减少并发相应次数
③Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928
扩展
Nginx为什么比Apache Httpd高效:原理篇 http://www.toxingwang.com/linux-unix/linux-basic/1712.html
apache和nginx工作原理比较 http://www.server110.com/nginx/201402/6543.html
mod_php 和 mod_fastcgi以及php-fpm的比较 http://dwz.cn/1lwMSd
概念了解:CGI,FastCGI,PHP-CGI与PHP-FPMhttp://www.nowamagic.net/librarys/veda/detail/1319/https://www.awaimai.com/371.html