php - 简单的 CGI python 网络服务器 + php 不工作

标签 php python webserver

现在其他地方也有人问过类似的问题。但是,我已经尝试了那里建议的解决方案,但没有帮助。

我正在运行以下 python CGI 网络服务器:

#!/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 的代码,我认为当进程被 fork 以执行 cgi-bin 并且文件描述符(stdin、stdout)使用 dup2 进行操作时,可能会出现问题。但是,我不知道如何让它工作。这个简单的事情让我困惑了几个小时,非常感谢任何帮助。

服务器机器是一台 ubuntu 9.04 机器。

最佳答案

#!/usr/bin/php 不会让您的脚本作为 CGI 运行;它使它作为命令行脚本运行。如果你身边有一个 php-cgi 二进制文件,请改用它;否则,您可能不得不在脚本中加入一些讨厌的东西,例如:

#!/usr/bin/php
Content-Type: text/html

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?> 
</body>
</html>

关于php - 简单的 CGI python 网络服务器 + php 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6698554/

相关文章:

http - 哪些 HTTP 请求 header 很重要/常用?

php - MySQL 中本地主机和生产环境中的字符串不同

python - IO错误: [Errno 13] Permission denied: I do have permissions?

python - 以编程方式 `git checkout .` 与 dulwich

IIS 7.5 : How to let him serve by default all file extensions (without manually adding them)?

url - 是具有多个相邻/重复的 URL

php - Laravel:如何在自定义目录中生成播种机

php - Encoder->IsPasswordValid 必须实现接口(interface)\UserInterface

php - JWPlayer 和保护视频

python - 如何在 Python 中使用 factorize() 后获取原始值?