php - 如何解决 nginx 和 php7.3-fpm 的缓冲问题
问题描述
我正在运行 nginx 1.10.3 和 php7.3-fpm。我需要使用给定目录中文件的文件名填充网页上的下拉列表。问题是 php 脚本中的“foreach”循环中的任何内容都不会输出到 Web 服务器。使用 php-cli 时一切正常。
我怀疑它与缓冲区没有被刷新有关,我已经尝试了我在网上可以找到的所有东西来尝试解决这个问题。任何帮助解决这个问题将不胜感激!!!
这是我用于测试的 index.php 文件:
<!doctype html>
<html lang="en-us">>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>PHP drop-down list population test</h1>
<?php
header('X-Accel-Buffering: no');
header('Cache-Control: no-cache');
header('Content-Encoding: none');
$path = "/root/Music/";
$flist = glob($path . "*.wav");
echo("<form>\n");
echo("<select name=\"music\">\n");
foreach($flist as $fname) {
$info = pathinfo($fname);
$fn = $info['filename'];
if($idx == 0)
echo("<option value=\"$fname\" selected>$fn</option>\n");
else
echo("<option value=\"$fname\">$fn</option>\n");
$idx++;
}
ob_end_flush();
flush();
echo("</select>\n");
echo("</form>\n");
?>
</body>
</html>
下面是我使用 curl 得到的输出:
<!doctype html>
<html lang="en-us">>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>PHP drop-down list population test</h1>
<form>
<select name="music">
</select>
</form>
</body>
</html>
这是我期望得到的:
<!doctype html>
<html lang="en-us">>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>PHP drop-down list population test</h1>
<form>
<select name="music">
<option value="/root/Music/church-chime.wav" selected>church-chime</option>
<option value="/root/Music/dixie-horn.wav">dixie-horn</option>
<option value="/root/Music/evacuate-alarm.wav">evacuate-alarm</option>
</select>
</form>
</body>
</html>
解决方案
lbu - 谢谢!它往往是最简单的事情可以让你撤消(Doh!)。问题确实是目录权限不足。
现在一切都已修复并正常工作。
我们可以考虑回答这个问题!
推荐阅读
- php - PHP 7.1 - 迭代器不能通过引用与 foreach 一起使用
- c++ - Qt 连接到开槽辅助接口
- angular - 我想通过完整的离子应用程序检查离线和在线模式,如何制作?
- asp.net-core - 如何在 Nlog.Web.AspNetCore 中省略转义“/”
- ios - Xcode>Assets 1x 2x 3x 全屏图像
- python - 如何抓取由 XHR 动态创建的值并且它不会显示在 selenium driver.page_source 中
- dji-sdk - 如何用电脑控制 Mavic Air 无人机
- excel - 如何在 Excel 中根据单击值突出显示多个单元格
- python - 如何正确安全地查询播放列表
- javascript - ReactJS 函数组件:手风琴,允许使用 useState 打开多个选择