配置php-fpm服务

nginx(unix domain socket方式)

server {listen 80;#root /test/php/publiclocation / {#URL重写 例如隐藏index.phpif (!-f $request_filename) {rewrite  ^(.*)$  /index.php?s=/$1  last;break;}}location ~ [^/]\.php(/|$) {#try_files $uri =404;fastcgi_index index.php;fastcgi_pass unix:/tmp/php/var/run/php-fpm.sock;#pathinfo给fastcgi权限 可支持?s=/module/controller/action的url访问模式fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;include fastcgi_params;}
}

apache(unix domain socket方式)

<VirtualHost *:80>DocumentRoot "/test/php/public"ServerName _#ServerAlias _#ServerAdmin _#errorDocument 404 /404.htmlErrorLog "logs/htdocs-error.log"CustomLog "logs/htdoc-access.log" combined#DENY FILES<Files ~ (\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)$>Order allow,denyDeny from all</Files><FilesMatch \.php$>SetHandler "proxy:unix:/tmp/php/var/run/php-fpm.sock|fcgi://localhost"</FilesMatch><Directory "/test/php/public">SetOutputFilter DEFLATEOptions FollowSymLinksAllowOverride AllRequire all grantedDirectoryIndex index.php index.html</Directory>
</VirtualHost>

防跨目录设置-open_basedir

使用open_basedir可以限制程序可操作的目录和文件,提高系统安全性。
但会影响I/O性能导致系统执行变慢,因此需要根据具体需求,在安全与性能上做平衡,必经任何事物对于每个人的态度不一样嘛。
使用open_basedir会将realpath_cache_size设置为0,从而禁用realpath缓存。

用open_basedir指定的限制实际上是前缀,不是目录名。
也就是说open_basedir=/test/php/public也会允许访问/test/php/public_zxc。
如果要将访问限制为目录,使用斜线结束路径名,例如:open_basedir=/test/php/public/。
如果要设置多个目录,window使用;分隔目录,Linux使用:分隔目录。例如:open_basedir=/test/php/public/:/tmp。
也可加上:/proc/。

php.ini中

open_basedir = /test/php/public/:/tmp/

在程序中

ini_set('open_basedir', '/test/php/public/');

nginx或apache中

fastcgi_param PHP_VALUE "open_basedir=/test/php/public/:/tmp/"

.user.ini文件(在php项目根目录添加)

  • chattr -i .user.ini 解锁(可编辑)
  • chattr +i .user.ini 加锁(不可编辑)
open_basedir = /test/php/public/:/tmp/

测试

<?php
declare (strict_types=1);function getMicroTime(): float
{list($useC, $sec) = explode(' ', microtime());return (float)$useC + (float)$sec;
}/** 记录开始时间 */
$startTime = getMicroTime();/* 读取10000次文件 */
for ($i = 0; $i < 10000; $i++) {file_get_contents('test.txt');
}/* 记录结束时间 */
$endTime = getMicroTime();printf('run time %f ms' . PHP_EOL, (($endTime) - ($startTime)) * 1000);
关闭open_basedir测试
run time 150.619030 ms
打开open_basedir测试
run time 600.969076 ms
开启open_basedir后,执行时间接近关闭的4倍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring 5.3.x 、6.1.x、6.0.x 源码本地编译运行

参考大佬文章&#xff0c;完美完成本地idea spring源码编译和demo测试 参考链接&#xff08;spring5.3.x&#xff09; spring5.3.x源码阅读环境搭建 下面是spring6.0.x参考 spring6.0.x jdk调成17 idea 2022.2.4版本本地编译spring源码项目 spring6.0.x 分支 gradle-8…

ubuntu22.04 配置grpc(优化官方教程)

优化了官方教程&#xff0c;2024.7.17顺利打通。 一&#xff1a;添加环境变量 打开root文件夹下的 .bashrc 文件 编辑文件&#xff1a;滚动到文件的底部&#xff0c;然后添加以下行&#xff1a; export MY_INSTALL_DIR$HOME/.local mkdir -p "$MY_INSTALL_DIR" exp…

视觉巡线小车——STM32+OpenMV(三)

目录 前言 一、OpenMV代码 二、STM32端接收数据 1.配置串口 2.接收数据并解析 总结 前言 通过视觉巡线小车——STM32OpenMV&#xff08;二&#xff09;&#xff0c;已基本实现了减速电机的速度闭环控制。要使小车能够自主巡线&#xff0c;除了能够精准的控制速度之外&#xff0…

Hadoop3:MR程序处理小文件的优化办法(uber模式)

一、解决方案 1、在数据采集的时候&#xff0c;就将小文件或小批数据合成大文件再上传HDFS&#xff08;数据源头&#xff09; 2、Hadoop Archive&#xff08;存储方向&#xff09; 是一个高效的将小文件放入HDFS块中的文件存档工具&#xff0c;能够将多个小文件打包成一个HAR…

汽车信息安全--TLS,OpenSSL

目录 TLS相关知识 加密技术 对称加密 非对称加密 数字签名和CA 信任链 根身份证和自签名 双方TLS认证 加密和解密的性能 TLS相关知识 加密技术 TLS依赖两种加密技术 1. 对称加密&#xff08;symmetric encryption&#xff09; 2. 非对称加密&#xff08;asymmetri…

深入理解 Linux Zero-copy 原理与实现策略图解

用户态和内核态 一般来说&#xff0c;我们在编写程序操作 Linux I/O 之时十有八九是在用户空间和内核空间之间传输数据&#xff0c;因此有必要先了解一下 Linux 的用户态和内核态的概念。 从宏观上来看&#xff0c;Linux 操作系统的体系架构分为用户态和内核态&#xff08;或者…

SourceCodester v1.0 SQL 注入漏洞(CVE-2023-2130)

前言 CVE-2023-2130是一个影响SourceCodester Purchase Order Management System v1.0的SQL注入漏洞。此漏洞的存在是由于应用程序未能正确过滤和验证用户输入&#xff0c;使得攻击者可以通过SQL注入来执行任意SQL命令&#xff0c;从而对数据库进行未授权的访问和操作。 在利…

【大数据面试题】38 说说 Hive 怎么行转列

一步一个脚印&#xff0c;一天一道大数据面试题 博主希望能够得到大家的点赞收藏支持&#xff01;非常感谢 点赞&#xff0c;收藏是情分&#xff0c;不点是本分。祝你身体健康&#xff0c;事事顺心&#xff01; 行转列 假设我们有一张名为 sales_data 的表&#xff0c;其中包含…

15Kg级无人机降落伞系统技术详解

15Kg级无人机降落伞系统由以下几个主要部分组成&#xff1a; 1. 降落伞主体&#xff1a;采用轻质高强度的材料制成&#xff0c;能够承受无人机在降落过程中产生的冲击力&#xff0c;并确保无人机平稳安全地着陆。 2. 伞绳与连接机构&#xff1a;伞绳负责连接降落伞主体与无人机…

nginx虚拟主机配置项

50x和40x配置 error_page 500 502 503 504 /50x.html; location /50x.html {root html; }error_page 404 /404.html; location /404.html {root html; }URL重写配置(例如隐藏) location / {if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s/$1 last;break;}index…

1-2、truffle与webjs亲密接触(truffle智能合约项目实战)

1-2、truffle与webjs亲密接触&#xff08;truffle智能合约项目实战&#xff09; 5&#xff0c;web3调用智能合约6&#xff0c;Ganache 5&#xff0c;web3调用智能合约 在前面已经完成简单的合约编写 使用web3调用此函数 Web端的代码使用web3进行智能合约的访问 首先在cmd以…

使用9种方法隐藏和显示元素

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>使用9种方法隐藏和显示元素</title><sty…

火影评论词云图

背景介绍 词云图(Word cloud)又称文字云,是一种文本数据的图片视觉表达方式,一般是由词汇组成类似云的图形,用于展示大量文本数据。 我收集了豆瓣网站上火影博人传下方的网友评论&#xff0c;以评论为数据基础制作了词云图。 准备工作 安装两个模块&#xff1a;词云模块和结…

verilog行为建模(四):过程赋值

目录 1.两类过程赋值2.阻塞与非阻塞赋值语句行为差别举例13.阻塞与非阻塞赋值语句行为差别举例24.阻塞与非阻塞赋值语句行为差别举例35.举例4&#xff1a;非阻塞赋值语句中延时在左边和右边的差别 微信公众号获取更多FPGA相关源码&#xff1a; 1.两类过程赋值 阻塞过程赋值执…

HTML零基础自学笔记(上)-7.18

HTML零基础自学笔记&#xff08;上&#xff09; 参考&#xff1a;pink老师一、HTML, Javascript, CSS的关系是什么?二、什么是HTML?1、网页&#xff0c;网站的概念2、THML的基本概念3、THML的骨架标签/基本结构标签 三、HTML标签1、THML标签介绍2、常用标签图像标签&#xff…

网易易盾图标点选验证码识别代码

简介 网易图标点选一直都是一个大难题&#xff0c;如上图所示。难点之一是图标变幻莫测&#xff0c;很难刷出有重复的图标&#xff0c;所以使用传统等等方式去标注、识别具有较大的难度。 经过我们大量的数据标注&#xff0c;终于完成了这款验证码的识别。 目前我们提供两种识…

Shell程序设计

各位看官&#xff0c;从今天开始&#xff0c;我们进入新的专栏Shell学习&#xff0c;Shell 是操作系统的命令行界面&#xff0c;它允许用户通过输入命令与操作系统交互。常见的 Shell 有 Bash 和 Zsh&#xff0c;它们可以执行用户输入的命令或运行脚本文件。Shell 广泛应用于系…

昇思25天学习打卡营第5天 | 数据集

在探索MindSpore深度学习框架中的数据集处理过程&#xff0c;我对其数据加载和处理流程有了深入的了解。MindSpore提供了一套功能强大的工具&#xff0c;可以有效地处理和转换数据&#xff0c;确保了数据预处理的效率和质量。以下是我从本次学习中得到的几点主要心得&#xff1…

[算法题]重排字符串

题目链接: 重排字符串 首先找出出现次数最多的字符和其出现次数, 如果该字符的出现次数大于 (字符串的长度 1) / 2, 那么该字符串必然不能重排, 如果该字符的出现次数小于等于 (字符串的长度 1) / 2, 是可以重排的, 重排方式如下图所示: 先以间隔的方式将出现次数最多的字符…

MRD、BRD、PRD

MRD、BRD、PRD是产品开发过程中不同的文档类型&#xff0c;‌它们各自具有特定的目的和内容&#xff0c;‌以支持产品从概念到实现的各个阶段。‌ MRD&#xff08;‌Market Requirement Document&#xff09;‌&#xff0c;‌即市场需求文档&#xff0c;‌侧重于市场和用户需求…