我是一名开始学习Ruby on Rails的PHP开发人员。我喜欢开发和运行开发Rails应用程序是多么容易。我最喜欢的一件事是WEBrick。它使您无需为正在处理的每个小项目配置Apache和虚拟主机。 WEBrick允许您轻松启动和关闭服务器,以便您可以单击Web应用程序。
我并不总是能够使用Ruby on Rails应用程序,所以我想知道如何配置(或修改)WEBrick以便能够使用它来提供我的PHP项目和Zend Framework应用程序。
你试过这个吗?为实现这一目标,必要的步骤是什么?
答案 0 :(得分:6)
要在webrick中获得php支持,你可以使用php文件的处理程序。为此,您必须扩展HttpServlet::AbstractServlet
并实施do_GET
和do_POST
方法。从浏览器调用这些方法用于GET和POST请求。在那里,您只需将传入的请求提供给php-cgi
。
要让PHPHandler处理php文件,您必须将其添加到特定挂载的HandlerTable
。你可以这样做:
s = HTTPServer.new(
:Port => port,
:DocumentRoot => dir,
:PHPPath => phppath
)
s.mount("/", HTTPServlet::FileHandler, dir,
{:FancyIndexing => true, :HandlerTable => {"php" => HTTPServlet::PHPHandler}})
第一个语句初始化服务器。第二个添加了DocumentRoot
mount的选项。在这里,它启用目录列表和处理PHPHandler
的php文件。之后,可以使用s.start()
启动服务器。
我自己编写了一个PHPHandler,因为我还没有在其他地方找到它。它基于webricks CGIHandler
,但经过重新设计以使其与php-cgi
一起使用。您可以在GitHub上查看PHPHandler:
答案 1 :(得分:3)
这是一个最小的lighttpd配置。
sudo port install php5 +fastcgi
lighttpd -f lighttpd.conf
。 lighttpd.conf:
server.bind = "0.0.0.0"
server.port = 8000
server.document-root = CWD
server.errorlog = CWD + "/lighttpd.error.log"
accesslog.filename = CWD + "/lighttpd.access.log"
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm" )
server.modules = ("mod_fastcgi", "mod_accesslog")
fastcgi.server = ( ".php" => ((
"bin-path" => "/opt/local/bin/php-cgi",
"socket" => CWD + "/php5.socket",
)))
mimetype.assign = (
".css" => "text/css",
".gif" => "image/gif",
".htm" => "text/html",
".html" => "text/html",
".jpeg" => "image/jpeg",
".jpg" => "image/jpeg",
".js" => "text/javascript",
".png" => "image/png",
".swf" => "application/x-shockwave-flash",
".txt" => "text/plain"
)
# Making sure file uploads above 64k always work when using IE or Safari
# For more information, see http://trac.lighttpd.net/trac/ticket/360
$HTTP["useragent"] =~ "^(.*MSIE.*)|(.*AppleWebKit.*)$" {
server.max-keep-alive-requests = 0
}
如果您想使用自定义的php.ini文件,请将bin-path更改为:
"bin-path" => "/opt/local/bin/php-fcgi -c" + CWD + "/php.ini",
如果您想将nginx配置为here's a pointer。
答案 2 :(得分:0)
我找到this,但我认为这不值得麻烦。制作虚拟主机(甚至不需要)那么困难吗?在你需要将它设置为使用PHP的时候,如果你能使它工作,你可以编写一个脚本来为你创建虚拟主机条目,使它像webrick一样简单。
答案 3 :(得分:0)
看起来像WEBrick has CGI support,这意味着您可以通过将其作为CGI脚本调用来运行PHP。每个可执行文件顶部的#!
行只需要指向php-cgi.exe
的绝对路径。
值得注意的是,当您将文件移动到任何其他不将PHP视为CGI脚本的服务器时,您需要删除#!
行,这将是......呃...所有的'。