2016-01-18 47 views
0

我需要整合閃亮的應用程序到一些現有的PHP/HTML代碼。我已經看到了它可以通過輸入運行應用程序:在沒有閃亮服務器的情況下,閃亮的作品會在線嗎?

R -e "shiny::runApp('path_to_shiny', port=9999)" 

所以我計劃在服務器上運行該腳本,並把它重定向到這個iframe中。它可以工作嗎?

+1

我會對結果感興趣,我猜你正在運行'R'應該充當服務器,但你將如何處理多個用戶實例?對於一個簡單的應用程序,似乎可以運行它獲取URL「http://127.0.0.1:6990」,並通過多個瀏覽器通過不同的指令訪問該URL(所以我猜''shiny :: runApp'維護必要的多個應用程序實例)。 – Konrad

回答

1

您可以讓Shiny服務器運行在與web服務器不同的端口上(默認爲80)。例如,請參閱閃亮服務器的default configuration,該服務器可讓閃存在端口3838上運行。這比運行其中包含閃亮軟件包的R進程要好,因爲您獲得了閃亮服務器的啓動腳本,可處理各種情況否則將不得不手動處理(例如,在服務器重新啓動時重新啓動R進程等)。

1

是的,你需要添加host說法與'0.0.0.0'在你的代碼,以及像下面,

R -e "shiny::runApp('path_to_shiny', host='0.0.0.0', port=9999)" 

而且,你還需要確保該服務器沒有使用9999端口,例如,如果web服務器使用端口80(即yoururl.com),如果有任何衝突,您可能需要更改某個端口,如yoururl.com:8080。所以基本上你可以運行兩個不同的應用程序。