2013-05-28 70 views
1

這一定是一個非常容易回答的問題,但我似乎無法在任何地方找到解決方案。我有一個我想在Windows Server 2008上投入生產的play framework 2應用程序。我只有端口80 8080和443向外部開放。 我開始播放應用與此:沒有端口的Play Framework 2 URL

play -Dhttp.port=80 "run 80" 

,但我得到的說:「沒能綁定到一個錯誤:/0.0.0.0:80 我可以這樣做:

play -Dhttp.port=8080 "run 8080" 

和這個作品,我可以通過鍵入http://sometestingurl.pt:8080/index讓我的web應用程序的外部訪問,但我不希望在我的URL的端口號。我怎樣才能做到這一點?

感謝

回答

2

在生產模式下運行應用程序時,來自Play的建議是not use the run command,而是使用運行dist任務後爲您生成的start腳本。

一旦你運行dist任務,並在服務器上解壓縮您的應用程序,下面的命令應該啓動它,並綁定到端口80:

start -Dhttp.port=80 
+0

的遊戲框架目前並不正式支持Windows生產模式(即開始和階段任務),所以你必須在運行模式下開發的應用程序。 [http://www.playframework.com/documentation/2.1.1/Production](http://www.playframework.com/documentation/2.1.1/Production)。 – Ian

1

這可能是因爲你有其他應用程序端口80上運行。如果是Windows Server,那麼IIS很可能會運行(有關如何關閉它的詳細信息,請參閱http://support.microsoft.com/kb/321141)。

除了將Play應用程序本身配置爲在端口80上運行外,您還可以按照此處所述設置前端Web服務器:http://www.playframework.com/documentation/2.1.1/HTTPServer。這項技術還具有額外的優勢,它使您能夠使用虛擬主機在端口80上運行多個Play應用程序。

另一件事......目前無法在Windows上以生產模式運行Play應用程序,因此您必須使用「運行」命令(或將應用程序移動到Unix框中)。進一步的細節在這裏:http://www.playframework.com/documentation/2.1.1/Production

0

我使用玩的版本2.2.2。下面的解決方案是在CentOS 6.5測試:

如果您在服務器上的源代碼文件夾:

  1. cd進入你的項目目錄
  2. sudo play "start -Dhttp.port=80"

您可能會遇到錯誤sudo: play: command not found。爲了解決這個問題,你這樣做:

  1. '納米的/ etc/sudoers文件' 中的「secure_path」(這注釋掉這一行)的前
  2. 添加「#」
  3. 然後,回去你的項目目錄,並重復步驟2)sudo play "start -Dhttp.port=80"

如果你想你的代碼部署到生產服務器,這是你要做的:

  1. 光盤到您的項目目錄
  2. play dist - >此命令將在目標/通用目錄中生成一個.zip文件。
  3. transfter這個.zip文件到生產服務器
  4. 解壓的.zip文件unzip yourfile.zip
  5. 後檔解壓:
    cd your_unzipped_folder/bin
  6. 應該有具有相同名稱爲您的應用程序名稱的文件。要啓動它:
    sudo nohup ./yourapp -Dhttp.port=80