LNMP架构3——php

PHP

  • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言

PHP-FPM
PHP-FPM是一个实现了Fastcgi的程序,PHP-FPM的管理对象是php-cgi,被PHP官方收了
后来PHP内核集成了PHP-FPM之后就方便多了,使用enalbe-fpm这个编译参数即可
PHP-CGI
php-cgi 是解释PHP脚本的程序,只是个CGI程序,他自己本身只能解析请求,返回结果,不会进程管理

编译安装

[root@server1 /mnt]# yum install -y bzip2
[root@server1 /mnt]# tar jxf php-7.4.12.tar.bz2
[root@server1 /mnt]# yum install -y systemd-devel libxml2-devel sqlite-devel curl-devel libpng-devel
[root@server1 /mnt]# yum install -y oniguruma-*

软件编译

[root@server1 /mnt/php-7.4.12]# cd php-7.4.12/
[root@server1 /mnt/php-7.4.12]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx  --with-curl --with-iconv --with-mhash --with-zlib --with-openssl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-debug --enable-sockets --enable-soap --enable-inline-optimization --enable-xml --enable-ftp --enable-gd --enable-exif --enable-mbstring  --enable-bcmath --with-fpm-systemd
[root@server1 /mnt/php-7.4.12]# make
[root@server1 /mnt/php-7.4.12]# make install

拷贝php-fpm配置文件,修改php-fpm启动文件

[root@server1 /mnt/php-7.4.12]# cd /usr/local/php/etc/
[root@server1 /usr/local/php/etc]# cp php-fpm.conf.default php-fpm.conf
[root@server1 /usr/local/php/etc]# vim php-fpm.conf

在这里插入图片描述

[root@server1 /usr/local/php/etc]# cd php-fpm.d/
[root@server1 /usr/local/php/etc/php-fpm.d]# cp www.conf.default www.conf

编辑php核心配置更改时区

[root@server1 /mnt/php-7.4.12]# cd /usr/local/php/etc/
[root@server1 /usr/local/php/etc]# vim php.ini

在这里插入图片描述

使用systemctl命令来控制nginx

[root@server1 ~]# cd /mnt/php-7.4.12/sapi/fpm/
[root@server1 /mnt/php-7.4.12/sapi/fpm]# cp php-fpm.service /usr/lib/systemd/system
[root@server1 /mnt/php-7.4.12/sapi/fpm]# systemctl daemon-reload
[root@server1 /mnt/php-7.4.12/sapi/fpm]# systemctl start php-fpm.service #出错

在这里插入图片描述

重载服务的配置,让服务的服务程序配置文件生效,可让systemctl 管理

[root@server1 /usr/lib/systemd/system]# systemctl daemon-reload 
[root@server1 /usr/lib/systemd/system]# systemctl start php-fpm.service

在这里插入图片描述

nginx结合php-fpm

[root@server1 /usr/lib/systemd]# cd /usr/local/nginx/conf/
[root@server1 /usr/local/nginx/conf]# vim nginx.conf
[root@server1 /usr/local/nginx/conf]# nginx -s reload

在这里插入图片描述

添加php测试网页

[root@server1 /usr/local/nginx/html]# vim index.php

在这里插入图片描述
重载nginx后访问
在这里插入图片描述

php添加memcache功能模块

传统缓存策略
在这里插入图片描述

[root@server1 /mnt]# tar zxf memcache-4.0.5.2.tgz
[root@server1 /mnt]# cd memcache-4.0.5.2/
[root@server1 /mnt/memcache-4.0.5.2]# phpize
-bash: phpize: command not found

配置环境变量

[root@server1 ~]# vim .bash_profile
[root@server1 ~]# source .bash_profile
[root@server1 ~]# which phpize
/usr/local/php/bin/phpize
[root@server1 ~]# echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/local/php/bin

在这里插入图片描述

安装依赖项
phpize命令是准备php扩展安装的编译环境的。用于手动编译安装php扩展
在这里插入图片描述
在这里插入图片描述

[root@server1 /mnt/memcache-4.0.5.2]# ./configure --enable-memcache
[root@server1 /mnt/memcache-4.0.5.2]# make
[root@server1 /mnt/memcache-4.0.5.2]# make install

配置php加载模块

[root@server1 /mnt/memcache-4.0.5.2]# php -m | grep memcache
[root@server1 /mnt/memcache-4.0.5.2]# cd /usr/local/php/etc/
[root@server1 /usr/local/php/etc]# ls
php-fpm.conf  php-fpm.conf.default  php-fpm.d  php.ini
[root@server1 /usr/local/php/etc]# vim php.ini 
[root@server1 /usr/local/php/etc]# systemctl reload php-fpm.service 
[root@server1 /usr/local/php/etc]# php -m | grep memcache
memcache

在这里插入图片描述
在这里插入图片描述
将测试页面以及memcache复制至nginx html目录

[root@server1 /usr/local/php/etc]# cd /mnt/memcache-4.0.5.2/
[root@server1 /mnt/memcache-4.0.5.2]# cp example.php memcache.php /usr/local/nginx/html/
[root@server1 /mnt/memcache-4.0.5.2]# cd /usr/local/nginx/html/
[root@server1 /usr/local/nginx/html]# ls
50x.html  download  example.php  index.html  index.php  memcache.php

看不到,需要安装memached使之连接
在这里插入图片描述
安装启用memcached

[root@server1 /usr/local/nginx/html]# yum install -y memcached.x86_64
[root@server1 /usr/local/nginx/html]# systemctl start memcached.service
[root@server1 /usr/local/nginx/html]# cat /etc/sysconfig/memcached 
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

在这里插入图片描述
编辑memcache.php,修改信息

[root@server1 /usr/local/nginx/html]# vim memcache.php

在这里插入图片描述
重载nginx访问memcache.php页面,输入上边自己写的用户名密码
在这里插入图片描述
在这里插入图片描述
多次访问此时页面,只有第一次是从后端拿的(因为第一次访问缓存查自己没有所以去后端取),之后都是从缓存里拿的(之后访问缓存查自己已经有了就不会去后端拿了)
刷新example界面,看到数据有所变化
所以缓存命中率会越来越高
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

构建nginx高速缓存

由于传统缓存是php从缓存拿,响应时间由php决定,现在我们让nginx直接去响应请求从缓存里拿。
官网:传送门
在这里插入图片描述
要换一个nginx实现,也就是openresty;其实就是nginx的加强版,nginx加了一个lua模块。下载解压进入解压目录可以看到自带nginx
源码编译安装

[root@server1 /mnt]# tar zxf openresty-1.19.3.1.tar.gz 
[root@server1 /mnt]# cd openresty-1.19.3.1/

为了不将老的nginx顶掉,我们不带路径模块参数

[root@server1 /mnt/openresty-1.19.3.1]# ./configure
[root@server1 /mnt/openresty-1.19.3.1]# make && make install

配置文件从老的nginx拷一份出来,适当修改
并且之前现成的php测试页拷贝到openresty发布目录下

[root@server1 /usr/local/openresty/nginx/conf]# cp /usr/local/nginx/conf/nginx.conf /usr/local/openresty/nginx/conf/
cp: overwrite ‘/usr/local/openresty/nginx/conf/nginx.conf’? yes
[root@server1 /usr/local/openresty/nginx/html]# cp /usr/local/nginx/html/index.php .
[root@server1 /usr/local/openresty/nginx/html]# cp /usr/local/nginx/html/example.php .

停掉之前的nginx,开启openresty

[root@server1 /usr/local/openresty/nginx/conf]# vim nginx.conf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重载openresty

[root@server1 /usr/local/openresty/nginx/conf]# /usr/local/openresty/nginx/sbin/nginx
[root@server1 /usr/local/openresty/nginx/conf]# /usr/local/openresty/nginx/sbin/nginx  -s reload

这回再做压测,访问静态页面速度快多了
动态页面速度也实现了质的飞跃,也没有丢包的现象了

[root@foundation25 mnt]# ab -c10 -n 5000 http://172.25.25.1/example.php

在这里插入图片描述

goaccess 日志可视化

源码编译安装

[root@server1 /mnt/goaccess-1.4]# tar zxf goaccess-1.4.tar.gz
[root@server1 /mnt/goaccess-1.4]# cd /mnt/goaccess-1.4
[root@server1 /mnt]# yum install -y GeoIP-devel-1.5.0-13.el7.x86_64.rpm
[root@server1 /mnt/goaccess-1.4]# yum install -y ncurses-devel
[root@server1 /mnt/goaccess-1.4]# ./configure --enable-utf8 --enable-geoip=legacy
[root@server1 /mnt/goaccess-1.4]# make
[root@server1 /mnt/goaccess-1.4]# make install

存在此文件

[root@server1 ~]# cd /usr/local/bin/
[root@server1 /usr/local/bin]# ls
goaccess

后台运行

cd /usr/local/openresty/nginx/conf
[root@server1 /usr/local/openresty/nginx/conf]# /usr/local/openresty/nginx/sbin/nginx -s stop
[root@server1 /usr/local/openresty/nginx/conf]# nginx
[root@server1 /usr/local/openresty/nginx/conf]# goaccess access.log -o /usr/local/nginx/html/report.html --log-format=COMBINED --real-time-html &

在这里插入图片描述
做压测发现可视化界面有详细的数据记录

[root@foundation25 mnt]# ab -c10 -n 1000 http://172.25.25.1/index.html

在这里插入图片描述

tomcat结合memcache

tomcat是一种web服务器,也可以称作运行在服务器(物理意义上的计算机)上的一种软件包。用来对服务器上的HTML文档提供访问权限控制。
2、3上各启用tomcat

[root@server2 /mnt]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server2 /mnt]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
[root@server2 /mnt]# cd /usr/local/
[root@server2 /usr/local]# ln -s apache-tomcat-7.0.37/ tomcat
[root@server2 /usr/local]# ll
[root@server2 /usr/local]# cd tomcat/
[root@server2 /usr/local/tomcat]# bin/startup.sh

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

[root@server1 /usr/local/nginx/conf]# vim nginx.conf
[root@server1 /usr/local/nginx/conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server1 /usr/local/nginx/conf]# nginx -s reload

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

[root@server2 /usr/local/tomcat]# cd webapps/ROOT/
[root@server2 /usr/local/tomcat/webapps/ROOT]# ll test.jsp #测试脚本文件

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

server2、3都做

yum install -y memcached.x86_64
systemctl start memcached.service
vim /usr/local/tomcat/conf/context.xml

在这里插入图片描述
在这里插入图片描述
从250下一个jar的包到/usr/local/tomcat/lib目录下

yum install -y telnet

在这里插入图片描述

评论 2 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

贾几人要努力

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值