如何使用Nginx和php7.3-fpm解决缓冲问题

时间:2019-04-22 04:56:08

标签: php nginx

我正在运行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>

1 个答案:

答案 0 :(得分:0)

lbu-谢谢! 通常,最简单的事情会使您无法完成(Doh!)。 问题确实是目录的权限不足。

所有已修复,现在可以正常工作。

我们可以认为这个问题已经回答!