【问题标题】:Is it possible to run mod_python Python Server Pages outside of the Apache server context?是否可以在 Apache 服务器上下文之外运行 mod_python Python 服务器页面?
【发布时间】:2014-07-14 13:04:01
【问题描述】:

我有编写 PHP 和 Python 的经验,但直到最近才使用 Python 进行很多 Web 开发。

我已经使用带有 Python 服务器页面的 mod_python 启动了一个项目,它很好地完成了我需要它做的事情。这样做的优点之一是性能; Web 服务器不会为每个请求生成新的解释器。

系统最终将部署在我能够正确设置/etc/apache/conf.d等的服务器上。

但是,在开发和自动化回归测试期间,我希望能够运行 .psp 脚本而无需使用 Apache 实例。例如,可以使用 PHP cli 运行 PHP 脚本,我想从 shell 运行我的 .psp 脚本并在标准输出上查看生成的 HTTP/HTML。

我想这种模式需要支持模拟 POST 请求等。

更新

好的,在输入所有问题后,我在手册中发现了mod_python 命令行: http://modpython.org/live/current/doc-html/commandline.html

我想这将使我获得大部分成功,即能够以本地用户的身份运行我的应用程序,而无需部署到 Apache 服务器。

我把这个问题留在这里,以防有人像我一样进行网络搜索。

【问题讨论】:

  • 您可以添加您的 update 作为答案 - 您可以将其标记为已接受,我们可以对其进行投票。
  • 大声笑,当你的评论出现时,我正在这样做!

标签: python apache mod-python


【解决方案1】:

mod_python 命令行工具是执行此操作的一种方法。

http://modpython.org/live/current/doc-html/commandline.html

基本上,

mod_python create /path/to/new/server_root \
--listen 8888 \
--pythonpath=/path/to/my/app \
--pythonhandler=mod_python.wsgi \
--pythonoption="mod_python.wsgi.application myapp.wsgi::application"

设置一个骨架应用程序。

然后你运行它:

mod_python start /path/to/new/server_root/conf/httpd.conf

wget http://localhost/path/to/my/app:8888     

我还在测试这个...

警告此功能似乎仅来自 3.4.0

【讨论】:

  • 和 Debian Wheezy 默认为 3.3.1... 只是我的运气。希望在我开始使用更高版本构建 VM 时,其他人能够对此进行测试
  • 这是他们添加的时间:grisha.org/blog/2013/09/25/…
  • 我在 ubuntu 上安装了 apache mod_python,但我没有 mod_python 二进制文件在 apache 之外运行它。我怎样才能得到它?