Del*_*ran 1 php curl php-builtin-server
我有一个相对简单的脚本,如下所示:
<?php
$url = "localhost:2222/test.html";
echo "*** URL ***\n";
echo $url . "\n";
echo "***********\n";
echo "** whoami *\n";
echo exec('whoami');
echo "* Output **\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
Run Code Online (Sandbox Code Playgroud)
当我在命令行上执行它时,它可以正常工作 - 我从test.html中获得了微薄的结果.
当我通过加载内置的PHP服务器并浏览到脚本来运行此脚本时,它会挂起.没有输出到屏幕,没有写入日志.
我读到有时用户权限可能会妨碍,所以我尝试使用whoami来确保运行内置PHP服务器的用户与在命令行上执行脚本的用户相同; 他们是谁.
safe_mode关闭,disable_functions设置为空.我可以成功执行其他命令(比如whoami).
我还应该检查什么?内置的PHP服务器在满足请求时是否算作其他用户?
dec*_*eze 17
将评论作为答案:PHP内置开发Web服务器是一个非常简单的单线程测试服务器.它不能一次处理两个请求.您正试图在单独的请求中从自身检索文件,因此您遇到了死锁.第一个请求正在等待第二个请求完成,但第一个请求在第一个请求仍在运行时无法处理.
| 归档时间: |
|
| 查看次数: |
2248 次 |
| 最近记录: |