LAMP/LNMP==Linux + Apache/Nginx + Mysql + Php/Python/Perl
一、Nginx与Php的结合
1、Php的安装
下载PHP安装包:PHP: Hypertext Preprocessorhttps://www.php.net
安装依赖软件:
yum install -y systemd-devel
yum install -y libxml2-devel
yum install -y sqlite-devel
yum install -y libcurl-devel
yum install -y libpng-devel
yum install -y oniguruma-6.8.2-1.el7.x86_64.rpm
yum install -y oniguruma-devel-6.8.2-1.el7.x86_64.rpm
编译安装:
2、Php的配置文件管理
php-fpm.conf是PHP-FPM特有的配置文件;php.ini是所有php模式中必需的配置文件
两者的区别是:php-fpm.conf是PHP-FPM进程管理器的配置文件;php.ini是PHP解析器的配置文件
有的PHP版本的配置文件路径中还有/fpm.d/www.conf配置文件;这是php-fpm.conf配置的文件的扩展文件,可以打开php-fpm.conf文件查看(; include=fpm.d/*.conf)
【1】文件配置
【2】php-fpm配置文件更改
##打开php管理进程
【3】 php.ini配置文件更改
##配置时区
3、配置Php-fpm的守护进程启动方式
【1】复制启动脚本文件
##/usr/lib/systemd/system目录自动存放启动文件的配置位置
【2】编辑启动脚本文件,重载服务配置文件——>配置完成
##此处选择注释掉也可;默认php-fpm启动时只读挂载至/usr目录
##daemon-reload:重新加载服务的配置文件;如果新安装了一个服务,归属于 systemctl 管理,要使新服务的服务程序配置文件生效,需重新加载
【3】配置php命令
4、Nginx结合Php时的Nginx配置
【1】nginx配置文件修改
【2】配置php测试页面
【3】重启nginx后测试
5、配置Php的memcache模块
【1】memcache的安装:
memcache软件下载地址: http://pecl.php.net/package/memcache
安装依赖软件:
yum install -y autoconf
yum install -y automake
不同系统的编译要用不同的编译参数,但是开源软件不可能带多个Makefile,而且又难写,于是有了configure脚本,它自动检测系统,并接受一个Makefile.in文件,根据它来生成Makefile
然而confiure脚本和Makefile.in还是很难写;于是GNU推出了autoconf和automake,用于生成configure脚本和Makefile.in文件,其中autoconf是用来生成configure的,automake是用来生成Makefile.in的
##之后make
在使用php的过程中,我们常常需要去添加一些PHP扩展库,但是重新对php进行编译是比较麻烦的,所以这时可以使用phpize对php进行添加扩展,并且phpize编译的扩展库可以随时启用或停用,比较灵活
【2】配置Php加载memcache模块
6、安装memcached服务并启用
其实我们这里所说的memcache和memcached说的是PHP的扩展,假如我们要在PHP中使用 memcache,我们肯定是需要在服务器上安装memcached服务,也需要为PHP安装对应的扩展,这样我们才能用PHP代码控制memcache;如果安装了memcached不安装扩展,那么php无法操控memcached,但命令行使用起来没有问题;如果安装了memcache扩展但是没有安装memcached服务,那么这个扩展就无法使用 ;只有同时安装了memcached服务和memcache扩展才可以在PHP中使用memcached提高动态网站性能
memcache 是一个原生版本,完全是在PHP框架内开发的,支持OO(面向对象)和非OO两套接口并存,而memcached是建立在libmemcached的基础上的,只支持OO接口;这就意味着在安装 memcache扩展的时候不要求安装其他的东西,但是在安装memcached的时候会要求你安装 libmemcached,因为libmemcached是memcache的C客户端,它具有低内存,线程安全等优点
7、配置php和memcache在nginx中的发布文件
重启nginx后在浏览器中测试访问
压力测试:
ab -c 10 -n 5000 http://172.25.100.1/index.php
##未配置memcache模块的发布文件;速率较快但有错误请求
ab -c 10 -n 5000 http://172.25.100.1/example.php
##配置了memcache模块的发布文件;速率较差但无失败请求
8、构建Nginx的高速缓存
Nginx有两种缓存机制:fastcgi_cache和proxy_cache
proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态的;
fastcgi_cache作用是缓存fastcgi生成的内容,很多情况是php生成的动态内容;
proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端带宽;
fastcgi_cache缓存减少了nginx与php的通信次数,更减轻了php和数据库的压力
我们都知道Nginx有很多的特性和好处,但是在Nginx上开发成了一个难题;Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者对其望而生畏;为了开发人员方便,所以引进了一种整合了Nginx和lua的框架,即OpenResty,它帮我们实现了可以用lua的规范开发,实现各种业务,并且帮我们弄清楚各个模块的编译顺序
OpenResty(也称为ngx_openresty)是一个全功能的Web应用服务器;它打包了标准的Nginx核心、很多常用的第三方模块以及它们的大多数依赖项
通过揉和众多设计良好的Nginx模块,OpenResty有效地把Nginx服务器转变为一个强大的Web应用服务器,基于它开发人员可以使用Lua编程语言对Nginx核心以及现有的各种Nginx C模块进行脚本编程,构建出可以处理一万以上并发请求的极端高性能的Web应用
简而言之,openresty其实就是对Nginx的又一次封装,它集成了Nginx核心和常用模块,再基于lua这个脚本语言,让开发者对Nginx的功能扩展和定制不再困难
OpenResty的安装
软件下载地址:OpenResty® - 中文官方站https://openresty.org/cn/
原码编译安装:
OpenResty的配置
配置前要确保服务器上安装了memcached服务并启用服务,并且如果安装了nginx服务,要把nginx服务关闭,因为我们要使用openresty中的nginx模块实现高速缓存
openresty中nginx的配置文件配置:
配置openresty下nginx的发布文件:
重启openresty下nginx后测试效果
ab -c 10 -n 5000 http://172.25.100.1/index.php
##速率很快且无失败请求
ab -c 10 -n 5000 http://172.25.100.1/example.php
##速率很快且无失败请求
9、tomcat配置
Tomcat是常见的免费的web服务器
tomcat软件下载地址:Apache