现在已经有类似的问题在其他地方被问到了。然而,我尝试了那里提供的建议解决方案,但没有帮助。
我正在运行以下Python CGI Web服务器:
#!/usr/bin/python
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
serve = HTTPServer(("",80),CGIHTTPRequestHandler)
serve.serve_forever()
在“cgi-bin”目录下,存储了以下php文件“simple.php”:
#!/usr/bin/php
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?>
</body>
</html>
这个文件已经被赋予可执行权限,并且可以在服务器上通过命令行正常执行。
但是,如果我启动服务器并尝试使用"http://server/cgi-bin/simple.php"访问页面,则只会得到一个空白页面,在服务器标准输出中没有看到任何错误信息。
我查看了CGIHTTPServer.py的代码,认为问题可能出现在进程分叉以执行cgi-bin时,使用dup2操作文件描述符(stdin、stdout)时。然而,我不知道如何使其正常工作。这个简单的问题困扰了我几个小时,真的很感激任何形式的帮助。
服务器机器是一个Ubuntu 9.04盒子。