当前位置:首页 > 计算机相关 > 建站之路 > 正文内容

php开启APCU扩展,提前把常用文件加载到内存中

piikee3个月前 (01-19)建站之路198
  1. 安装 APCu 扩展
    确保 PHP 已安装 APCu 扩展:


    sudo apt install php-apcu

    这里是按照默认版本,也可以按php版本安装,比如 apt install php7.4-apcu就是安装php7.4版本的apcu。

  2. 在 PHP 中加载 IP 列表到共享内存
    创建一个 PHP 脚本,定时加载 IP 列表到 APCu 缓存中:

    <?php   
        // 文件路径
        $file = '/etc/nginx/ip_list.txt';// 加载文件到内存
            function loadIpList($file) 
            {   
             $ipList = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);    
            if ($ipList === false) {        
                throw new Exception("无法读取 IP 列表文件:$file");
                }    // 存储到 APCu
                apcu_store('ip_list', $ipList);
            }// 加载 IP 列表
            try {   
              loadIpList($file);    
                echo "IP 列表加载成功!\n";
            } catch (Exception $e) {    
                echo $e->getMessage() . "\n";
            }

将此脚本设置为定时任务(如每分钟更新一次):

crontab -e

添加任务:

* * * * * php /path/to/load_ip_list.php
  1. PHP 脚本调用内存中的 IP 列表
    在业务逻辑中读取 APCu 中的 IP 列表并进行处理:

    <?php 
    	// 检查客户端 IP 是否在列表中
    	$clientIp = $_SERVER['REMOTE_ADDR'];
    	$ipList = apcu_fetch('ip_list'); // 从 APCu 读取 IP 列表
    	if (in_array($clientIp, $ipList)) {    
    		echo "您的 IP 被允许访问";
    		} else {   
    		 echo "禁止访问";
    		}


扫描二维码推送至手机访问。

版权声明:本文由萍客小居[www.piikee.net]发布,如需转载请注明出处。

本文链接:https://www.piikee.net/1528.html

分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。