使用 WEBrick 为 PHP Web 应用程序提供服务
我是一名 PHP 开发人员,已经开始学习 Ruby on Rails。我喜欢启动和运行 Rails 应用程序开发是多么容易。我最喜欢的东西之一是 WEBrick。它使您不必为您正在处理的每个小项目配置 Apache 和虚拟主机。 WEBrick 允许您轻松启动和关闭服务器,以便您可以在 Web 应用程序周围单击。
我并不总是有机会开发 Ruby on Rails 应用程序,因此我想知道如何配置(或修改)WEBrick 以便能够使用它来为我的 PHP 项目和 Zend Framework 应用程序提供服务。
你尝试过这个吗?为了实现这一目标需要采取哪些必要步骤?
I am a PHP developer who has started learning Ruby on Rails. I love how easy it is to get up and running developing Rails applications. One of the things I love most is WEBrick. It makes it so you don't have to configure Apache and Virtual Hosts for every little project you are working on. WEBrick allows you to easily start up and shut down a server so you can click around your web application.
I don't always have the luxury of working on a Ruby on Rails app, so I was wondering how I might configure (or modify) WEBrick to be able to use it to serve up my PHP projects and Zend Framework applications.
Have you attempted this? What would be the necessary steps in order to achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
要在 webrick 中获得 php 支持,您可以使用 php 文件的处理程序。为此,您必须扩展
HttpServlet::AbstractServlet
并实现do_GET
和do_POST
方法。这些方法是为来自浏览器的 GET 和 POST 请求而调用的。您只需将传入的请求提供给 php-cgi 即可。要让 PHPHandler 处理 php 文件,您必须将其添加到特定安装的 HandlerTable 中。您可以这样做:
第一个语句初始化服务器。第二个将选项添加到
DocumentRoot
挂载。在这里,它启用目录列表并使用PHPHandler
处理 php 文件。之后可以使用s.start()
启动服务器。我自己编写了一个 PHPHandler,因为我在其他地方没有找到它。它基于 webricks
CGIHandler
,但经过重新设计以使其与php-cgi
一起使用。您可以在 GitHub 上查看 PHPHandler:https://github.com/questmaster/WEBrickPHPHandler
To get php support in webrick you can use a handler for php files. To do this you have to extend
HttpServlet::AbstractServlet
and implement thedo_GET
anddo_POST
methods. These methods are called for GET and POST requests from a browser. There you just have to feed the incoming request tophp-cgi
.To get the PHPHandler to handle php files you have to add it to the
HandlerTable
of a specific mount. You can do it like this:The first statement initializes the server. The second adds options to the
DocumentRoot
mount. Here it enables directory listings and handling php files withPHPHandler
. After that the server can be started withs.start()
.I have written a PHPHandler myself as I haven't found one somewhere else. It is based on webricks
CGIHandler
, but reworked to get it working withphp-cgi
. You can have a look at the PHPHandler on GitHub:https://github.com/questmaster/WEBrickPHPHandler
您可以使用 nginx 或 lighttpd
这是一个最小的 lighttpd 配置。
sudo port install php5 +fastcgi
lighttpd -f lighttpd.conf
即可。lighttpd.conf:
如果您想使用自定义 php.ini 文件,请将 bin-path 更改为:
如果您想配置 nginx 执行相同操作,这里有一个指针。
You can use nginx or lighttpd
Here's a minimal lighttpd config.
sudo port install php5 +fastcgi
lighttpd -f lighttpd.conf
from any directory you'd like to serve.lighttpd.conf:
If you'd like to use a custom php.ini file, change bin-path to this:
If you'd like to configure nginx to do the same, here's a pointer.
我发现了这个,但我真的认为这不值得这么麻烦。制作虚拟主机(甚至没有必要)有那么困难吗?在您需要将其设置为与 PHP 一起使用时,如果您甚至可以让它工作,您可以编写一个脚本来为您创建虚拟主机条目,使其像 webrick 一样简单。
I found this, but I really think it isn't worth the hassle. Is making a virtual host (which isn't even necessary) that difficult? In the time it would take you to set this up to work with PHP, if you can even get it working, you could have written a script that creates virtual host entries for you, making it as easy as webrick.
看起来像 WEBrick 有 CGI 支持,意味着您可以通过将 PHP 作为 CGI 脚本调用来运行它。每个可执行文件顶部的
#!
行只需指向php-cgi.exe
的绝对路径。值得注意的是,在将文件移动到任何其他不将 PHP 视为 CGI 脚本的服务器时,您需要删除
#!
行,这会是……呃……所有人。It looks like WEBrick has CGI support, which implies that you can get PHP running by invoking it as a CGI script. The
#!
line at the top of each executable file would just need to point towards the absolute path tophp-cgi.exe
.It's worth noting that you'd need to remove the
#!
line when moving the file to any other server that doesn't think of PHP as a CGI script, which would be ... uh ... all of'em.