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知识库 -> PHP配置、nginx结合php-fpm、memcache模块、openresty模块以及高速缓存 -> 正文阅读

[PHP知识库]PHP配置、nginx结合php-fpm、memcache模块、openresty模块以及高速缓存

一、PHP的安装部署

网址导航:https://www.php.net/
1. 安装
wget http://172.25.28.250/pub/docs/lamp/php-7.4.12.tar.bz2
tar jxf php-7.4.12.tar.bz2 
cd /root/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-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 --with-mhash	编译
yum install -y systemd-devel libxml2-devel sqlite-devel libcurl-devel libpng-devel	根据编译提示安装依赖性
wget http://172.25.28.250/pub/docs/lamp/oniguruma-6.8.2-1.el7.x86_64.rpm  系统仓库中没有此安装包,所以从网上下载
wget http://172.25.28.250/pub/docs/lamp/oniguruma-devel-6.8.2-1.el7.x86_64.rpm	系统仓库中没有此安装包,所以从网上下载
yum install -y  oniguruma-devel-6.8.2-1.el7.x86_64.rpm oniguruma-6.8.2-1.el7.x86_64.rpm	安装依赖性
./configer	重新编译
make
make install
2. 部署:拷贝php-fpm配置文件
1)php-fpm.conf
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf	
2)www.conf
cd  /usr/local/php/etc/php-fpm.d/
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf	
vim 	/usr/local/php/etc/php-fpm.d/www.conf
	pid = run/php-fpm.pid	##取消注释
3)php.ini
cp /root/php-7.4.12/php.ini-production /usr/local/php/etc/php.ini
vim /usr/local/php/etc/php.ini
	date.timezone = Asia/Shanghai	##取消注释
4)php-fpm.service,读取并开启服务
cp /root/php-7.4.12/sapi/fpm/php-fpm.service /usr/lib/systemd/system
vim /usr/lib/systemd/system/php-fpm.service	##php-fpm启动文件
	#ProtectSystem=full			##注释掉
systemctl daemon-reload 
systemctl start php-fpm.service

二、nginx结合php-fpm

1、修改nginx配置文件

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

vim /usr/local/nginx/conf/nginx.conf
        location / {
            root   html;
            index  index.html index.htm index.php;
        }
        
        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;
        }
vim /usr/local/nginx/html/index.php
	<?php
	phpinfo()
	?>
nginx -s reload
宿主机浏览器访问172.25.28.1/index.php,出现php的测试页面表示成功
2、添加环境变量
cd
vim .bash_profile 
	PATH=$PATH:$HOME/bin:/usr/local/php/bin
source .bash_profile 
which php		##/usr/local/php/bin/php
which phpize	##/usr/local/php/bin/phpize

三、php添加memcache功能模块

Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。
它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
Memcache官方网站:http://www.danga.com/memcached,更多详细的信息可以来这里了解

1、安装部署php的memcache
wget http://pecl.php.net/get/memcache-4.0.5.2.tgz				二选一
wget http://172.25.28.250/pub/docs/lamp/memcache-4.0.5.2.tgz	二选一
tar zxf memcache-4.0.5.2.tgz
cd memcache-4.0.5.2/
phpize	执行phpize,提醒缺少依赖。
		phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。
yum install -y autoconf automake.noarch	安装依赖性
phpize	扩展成功
 ./configure --enable-debug	对memcache进行源码编译,configure--make--make install 三步曲。
 make
 make install
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/	查看memcache.so是否存在
vim /usr/local/php/etc/php.ini 
	;;;;;;;;;;;;;;;;;;;;;;
	; Dynamic Extensions ;			在这个位置
	;;;;;;;;;;;;;;;;;;;;;;
	extension=memcache				连接php与memcache服务,938行插入
systemctl reload php-fpm.service
php -m | grep memcache				出现memcache表示添加成功
2、添加memcache功能模块
yum install -y memcached			安装memcached
systemctl start memcached.service	开启服务
cat /etc/sysconfig/memcached		11211端口
	PORT="11211"
netstat -antlp | grep 11211			查看有无11211端口
cp /root/memcache-4.0.5.2/example.php /usr/local/nginx/html/
cp /root/memcache-4.0.5.2/memcache.php /usr/local/nginx/html/
vim /usr/local/nginx/html/memcache.php
	define('ADMIN_PASSWORD','westos');      // Admin Password					设定密码
	$MEMCACHE_SERVERS[] = '172.25.24.1:11211'; // add more as an array			server1IP
	#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array	注释	
nginx -s reload
systemctl start php-fpm.service
systemctl start memcached.service

宿主机浏览器测试:

在这里插入图片描述
用户memcache,密码westos
在这里插入图片描述
在这里插入图片描述

四、配置php加载模块openresty,构建nginx高速缓存

基于openresty(构建高效透明的缓存机制) 访问,能将缓存放在nginx中,速度更快。
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制。
如果需要做到高速缓存,nginx可以跳过php直接向memcache存储,但是只能做静态存储 ,如果需要动态存储,还是要调用php,因此两种缓存策略时同时在进行的。
在这里插入图片描述

1、安装部署
wget https://openresty.org/download/openresty-1.19.3.1.tar.gz		二选一
wget http://172.25.28.250/pub/docs/lamp/openresty-1.19.3.1.tar.gz	二选一
tar zxf openresty-1.19.3.1.tar.gz 
cd openresty-1.19.3.1/
./configure --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
make
make install
2、软件配置

编辑配置文件,拷贝配置文件,重启服务。

vim /usr/local/openresty/nginx/conf/nginx.conf
	user  nginx;
	worker_processes  1;

	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;
        }
cp /usr/local/nginx/html/example.php /usr/local/openresty/nginx/html/
cp /usr/local/nginx/html/index.php /usr/local/openresty/nginx/html/
/usr/local/openresty/nginx/sbin/nginx
/usr/local/openresty/nginx/sbin/nginx -t
/usr/local/openresty/nginx/sbin/nginx -s reload
3. 进一步配置来提升性能
 vim /usr/local/openresty/nginx/conf/nginx.conf
	http {
        upstream memcache {
        server 127.0.0.1:11211;
        keepalive 512;					##保持512个不立即关闭的连接用于提升性能
        }

        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.24.1/example.php
	Complete requests:      5000
	Failed requests:        0
	Total transferred:      1425000 bytes
	HTML transferred:       580000 bytes
			##可以看到压测速度很快,且没有报错,速度很快。
ab -c10 -n 5000 http://172.25.24.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-10 10:38:00  更:2021-09-10 10:38:51 
 
开发: 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年12日历 -2024/12/29 18:18:16-

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