IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Linux自动化运维——9—Nginx+PHP -> 正文阅读

[PHP知识库]Linux自动化运维——9—Nginx+PHP

Nginx中、PHP配置、nginx结合php-fpm、memcache模块、openresty模块

一、PHP的源码编译

1、软件包下载

https://www.php.net/	

在这里插入图片描述2、编译php

configure

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/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

在这里插入图片描述将缺少的依赖性安装

yum install -y systemd-devel
yum install -y libxml2-devel
yum install -y sqlite-devel
yum install -y libcurl-devel
yum install libpng-devel -y
oniguruma-devel   #此安装包不在软件仓库中,csdn中搜索下载
rpm -ivh oniguruma-6.8.2-1.el7.x86_64.rpm
rpm -ivh oniguruma-devel-6.8.2-1.el7.x86_64.rpm

configure完成
在这里插入图片描述编译 make
在这里插入图片描述安装 make install
在这里插入图片描述

二、拷贝php-fpm配置文件

1、php-fpm.conf

在这里插入图片描述2、www.conf
在这里插入图片描述进入php-fpm.conf文件,将注释打开
在这里插入图片描述

在这里插入图片描述

3、php.ini

在这里插入图片描述
设置地区时间
在这里插入图片描述4、php-fpm.service,读取并开启服务
在这里插入图片描述
注释
在这里插入图片描述

三、nginx中使用php-fpm

1、修改nginx配置文件

进入nginx的配置目录,编辑配置文件,注释之前的设定,取消php的注释

cd /usr/local/nginx
vim conf/nginx.conf
nginx -s reload

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

在html中编写php发布页面,重新启动服务,在真机浏览器访问http://172.25.73.1/index.php

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

2、添加环境变量

在这里插入图片描述

四、php添加memcache功能模块

1、软件包准备

http://pecl.php.net/package/memcache	##网址下载

在这里插入图片描述

2、软件安装

解压软件包进入目录,执行phpize,提醒缺少依赖。phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。
在这里插入图片描述
安装依赖,重新phpize

yum install autoconf -y
yum install automake.noarch -y
phpize			##扩展成功

在这里插入图片描述对memcache进行源码编译、make、mkae install

./configure --enable-debug
make
make install

在这里插入图片描述
编辑php.ini ,然后重启服务,执行php -m可以看到memcache

cd /usr/local/lnmp/php/etc/
ls
vim php.ini 
///
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;				##在这个位置
;;;;;;;;;;;;;;;;;;;;;;
 938 extension=memcache				##连接php与memcache服务
///
php -m | grep memcache				##出现memcache表示添加成功
systemctl reload php-fpm.service 
php -m								##测试php服务是否正常,可以看到memcache

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

3、构建nginx高速缓存,添加memcache功能模块

使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制。先安装memcached,并开启服务,查看端口。

yum install -y memcached
systemctl start memcached.service
netstat -antlp					##11211端口
cat /etc/sysconfig/memcached	##11211端口

在这里插入图片描述
在这里插入图片描述
cd memcache目录,拷贝文件并编译,最后重启服务

cd 
cd memcache-4.0.5.2/
ls
cp example.php /usr/local/nginx/html/
cp memcache.php /usr/local/nginx/html/
cd /usr/local/nginx/html/
ls
vim memcache.php
///
define('ADMIN_PASSWORD','root');      // Admin Password						##设定密码
$MEMCACHE_SERVERS[] = '172.25.73.1:11211'; // add more as an array				##server1IP
#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array		##注释
///
nginx -s reload							##重启nginx
systemctl start php-fpm.service			##开启服务
systemctl start memcached.service		##开启服务

在这里插入图片描述

在这里插入图片描述此时服务配置成功,访问172.25.73.1/memcache.php。使用 用户名,密码 登陆

在这里插入图片描述

五、配置php加载模块openresty

基于openresty(构建高效透明的缓存机制) 访问,能将缓存放在nginx中,速度更快

1、准备

nginx -s stop		##先停止nginx服务

https://openresty.org/cn/		##软件下载

在这里插入图片描述

2、软件安装

tar zxf openresty-1.19.3.1.tar.gz 
ls
cd openresty-1.19.3.1/
ls
./configure --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
make
make install

3、软件配置

cd /usr/local/openresty/nginx.conf
vim nginx.conf
///
user  nginx;
worker_processes  auto;

events {
    worker_connections  65535;
}

        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;
        }
///
cd ..
cd html/
cp /usr/local/nginx/html/example.php .		
cp /usr/local/nginx/html/index.php .
/usr/local/openresty/nginx/sbin/nginx -t
/usr/local/openresty/nginx/sbin/nginx -s reload

ERROR
在这里插入图片描述

/usr/local/openresty/nginx/sbin/nginx -s reload 
报错 nginx: [error] invalid PID number "" in "/usr/local/openresty/nginx/logs/nginx.pid"

解决:使用nginx -c的参数指定nginx.conf文件的位置,conf文件的位置在nginx -t的返回信息中

/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf
/usr/local/openresty/nginx/sbin/nginx -s reload

更改配置改进一步来提升性能

cd /usr/local/openresty/nginx/conf
vim nginx.conf
///
http {
        upstream memcache {
        server 127.0.0.1:11211;
        keepalive 512;					##保持512个不立即关闭的连接用于提升性能
        }

    include       mime.types;
    default_type  application/octet-stream;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location /memc {
        internal;						##表示只接受内部访问
        memc_connect_timeout 100ms;
        memc_send_timeout 100ms;
        memc_read_timeout 100ms;
        set $memc_key $query_string;	##使用内置的$query_string来作为key
        set $memc_exptime 300;			##表示缓存失效时间
        memc_pass memcache;
        }
///
/usr/local/openresty/nginx/sbin/nginx -t
/usr/local/openresty/nginx/sbin/nginx -s reload

在这里插入图片描述在这里插入图片描述在真机进行压力测试

ab -c10 -n 5000 http://172.25.73.1/example.php
///
Complete requests:      5000
Failed requests:        0
Total transferred:      1425000 bytes
HTML transferred:       580000 bytes
///
##可以看到压测速度很快,且没有报错,速度很快。
ab -c10 -n 5000 http://172.25.73.1/index.php
///
Complete requests:      5000
Failed requests:        492
   (Connect: 0, Receive: 0, Length: 492, Exceptions: 0)
Total transferred:      358824457 bytes
HTML transferred:       357979457 bytes
///
##传输量大幅度提升

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 10:35:27  更:2021-09-05 10:36:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 18:35:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码