簡體   English   中英

使用WEBrick來提供PHP Web應用程序

[英]Using WEBrick to serve PHP web applications

我是一名PHP開發人員,已經開始學習Ruby on Rails。 我喜歡開發和運行開發Rails應用程序是多么容易。 我最喜歡的一件事是WEBrick。 它使您無需為正在處理的每個小項目配置Apache和虛擬主機。 WEBrick允許您輕松啟動和關閉服務器,以便您可以單擊Web應用程序。

我並不總是能夠使用Ruby on Rails應用程序,所以我想知道如何配置(或修改)WEBrick以便能夠使用它來提供我的PHP項目和Zend Framework應用程序。

你試過這個嗎? 為實現這一目標,必要的步驟是什么?

要在webrick中獲得php支持,您可以使用php文件的處理程序。 為此,您必須擴展HttpServlet::AbstractServlet並實現do_GETdo_POST方法。 從瀏覽器調用這些方法用於GET和POST請求。 在那里你只需要將傳入的請求提供給php-cgi

要讓PHPHandler處理php文件,你必須將它添加到特定mount的HandlerTable中。 你可以這樣做:

s = HTTPServer.new(
    :Port => port,
    :DocumentRoot => dir,
    :PHPPath => phppath
)
s.mount("/", HTTPServlet::FileHandler, dir, 
    {:FancyIndexing => true, :HandlerTable => {"php" => HTTPServlet::PHPHandler}})

第一個語句初始化服務器。 第二個添加了DocumentRoot掛載的選項。 在這里,它啟用目錄列表和PHPHandler處理PHP文件。 之后,可以使用s.start()啟動服務器。

我自己編寫了一個PHPHandler,因為我還沒有在其他地方找到它。 它基於webricks CGIHandler ,但是經過重新設計才能使用php-cgi 你可以看一下GitHub上的PHPHandler:

https://github.com/questmaster/WEBrickPHPHandler

您可以使用nginxlighttpd

這是一個最小的lighttpd配置。

  1. 使用FastCGI支持安裝PHP並調整系統下面的“bin-path”選項。 您可以使用sudo port install php5 +fastcgiMacPorts中安裝它
  2. 將此文件命名為lighttpd.conf
  3. 然后從你想要服務的任何目錄中運行lighttpd -f lighttpd.conf
  4. 將您的webbrowser打開到localhost:8000

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來做同樣的事情, 這里有一個指針

我發現了這一點 ,但我認為這不值得麻煩。 制作虛擬主機(甚至不需要)那么困難嗎? 在你需要將它設置為使用PHP的時候,如果你能使它工作,你可以寫一個腳本為你創建虛擬主機條目,使它像webrick一樣簡單。

看起來WEBrick有CGI支持 ,這意味着你可以通過調用它作為CGI腳本來運行PHP。 #! 每個可執行文件頂部的行只需要指向php-cgi.exe的絕對路徑。

值得注意的是,您需要刪除#! 將文件移動到任何其他不認為PHP作為CGI腳本的服務器的行,這將是...呃......所有的'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM