执行php块而不保存到文件,也不更改内部路径



假设我有一个代码块,我想测试如下:

<?php 

require('wp-blog-header.php');
require('wp-includes/pluggable.php');
..........................
..........................
?>

Nginx:

location ~ /internal_token { 
fastcgi_pass   unix:/tmp/php-fpm.sock;
fastcgi_param  SCRIPT_FILENAME  # is possible to execute php some how, without call to filename?
include        fastcgi_params;
}

不可见的文件必须在WordPress的主根目录中,因为使用需要文件,我试图避免创建文件或符号。

这个问题有现成的解决办法吗?

更新:我正在构建一个类似cpanel的WordPress工具包的系统,因此我将添加一键登录功能

否,不可能从Nginx配置的上下文中执行随机PHP代码。

来自手动

语法:fastcgi_parameter-value[if_not_empty];默认值:--上下文:http、服务器、位置设置应传递给FastCGI服务器的参数。该值可以包含文本、变量及其组合。当且仅当在当前级别上没有定义fastcgi_param指令时,这些指令才会从以前的配置级别继承。

以下示例显示了PHP所需的最低设置:

fastcgi_param SCRIPT_FILENAME/home/www/scripts/php$fastcgi_SCRIPT_name;fastcgi_param QUERY_STRING$QUERY_STRING;

该指令的适当/预期用途是设置环境变量,而不是将任意代码传递给任意快速的cgi解释器。

如果要执行特定的脚本,请按照手册中的说明使用script_FILENAME参数。

我不认为协议禁止这种行为,因为至少根据我的解释,使用FCGI_PARAMS几乎可以发送任何东西。然而,从这个实现来看,SCRIPT_FILENAME至少是一个约定:PHP OOP fastcgi

如果您有一个"上游";您可以使用nginx的auth_request来进行额外的请求并在继续主请求之前检索数据(例如服务器端身份验证令牌(。

例如,对CCD_ 2的所有请求触发到内部位置CCD_ 4的CCD_。如果检查通过,则请求继续到/api或其他什么。

不确定这对您有帮助,也不确定php-fpm是否可能,但对某些用例非常有用。

最新更新