“run”명령을 실행할 때 Play에서 사용하는 기본 포트 (9000)를 어떻게 변경합니까?


207

플레이 콘솔에서 "run"명령을 실행할 때 개발 모드에서 플레이 프레임 워크가 사용하는 기본 포트를 변경하는 방법

이것은 playframework 2.0 베타 용입니다.

명령 행 또는 application.conf에서 http.port 구성 매개 변수를 사용하는 것은 효과가없는 것 같습니다.

C:\dev\prototype\activiti-preso>play run --http.port=8080
[info] Loading project definition from C:\dev\prototype\activiti-preso\project
[info] Set current project to activiti-preso (in build file:/C:/dev/prototype/activiti-preso/)


Windows, really? Ok, disabling colors.

--- (Running the application from SBT, auto-reloading is enabled) ---

[error] org.jboss.netty.channel.ChannelException: Failed to bind to: 0.0.0.0/0.0.0.0:9000
[error] Use 'last' for the full log.

3
@ PereVillega 그것이 사실이기 때문에 재미 있습니다 : github.com/playframework/playframework/blob/…
Gregory Kalabin

1
"Windows 정말 봤어?" Windows에서 동료에게 여전히 그렇게하는지 확인하도록 요청해야했습니다. 우리는 2.2.0을 사용하고 있으며 더 이상 해당 메시지를 표시하지 않지만 색상을 비활성화합니다. 베타 버전에만 있다고 생각합니다.
Eric Wilson

PlayKeys.devSettings : = seq ( "play.server.http.port"-> "9001")를 build.sbt에 넣습니다
Rajat

답변:


407

2.x 플레이

Play 2에서는 sbt 플러그인으로 구현되므로 다음 지침은 실제로 sbt 작업입니다. 당신이 사용할 수있는 SBT 주자 (예 2 플레이, 이들로 구현 SBT 플러그인, 다음이 정말 SBT 작업 그래서. 당신은 어떤 SBT 러너 (예를 들어, 사용 sbt, play또는 activator). 아래 sbt주자 사용을하지만, 선택한 sbt 러너 대신 사용할 수 있습니다.

2.x 플레이-개발자 모드

브라우저 재로드 모드의 경우 :

sbt "run 8080"

연속 재 장전 모드의 경우 :

sbt "~run 8080"

2.x 플레이-디버그 모드

port에서 http 리스너를 사용하여 디버그 모드로 실행하려면 다음을 8080실행하십시오.

sbt -jvm-debug 9999 "run 8080"

2.x 재생-Prod 모드

Prod 모드에서 시작하십시오.

sbt "start -Dhttp.port=8080"

Play 2.x-단계별 배포

단계적 배포를 만듭니다.

sbt stage

Play 2.0.x 및 2.1.x의 경우 target/start스크립트 (Unix 만 해당)를 사용하십시오 .

target/start -Dhttp.port=8080

Play 2.2.x 및 2.3.x의 경우 target/universal/stage/bin디렉토리 에서 적절한 시작 스크립트를 사용하십시오 .

target/universal/stage/bin/[appname] -Dhttp.port=8080

Windows에서 Play 2.2.x 및 2.3.x 사용 :

target\universal\stage\bin\[appname].bat -Dhttp.port=8080

Play 2.x-Zip 배포

우편 배포를 만들려면

sbt dist

Play 2.0.x 및 2.1.x의 경우 start압축이 풀린 zip에 스크립트 (Unix 전용)를 사용하십시오.

start -Dhttp.port=8080

Play 2.2.x의 경우 [appname]-[version]/bin디렉토리 에서 적절한 스크립트를 사용하십시오 .

[appname]-[version]/bin/[appname] -Dhttp.port=8080

Windows에서 Play 2.2.x 사용시 :

[appname]-[version]\bin\[appname].bat -Dhttp.port=8080

1.x 플레이

파일 의 http.port값을 변경 conf/application.conf하거나 명령 행을 전달하십시오.

play run --http.port=8080

흥미롭게도 실제로 작동하지 않습니다. 그러나 아마도 그것은 버그 또는 내 시스템의 문제 일뿐입니다.
보리스 Terzic

1
지금은 이것은 단지 1.x에서 들어 아직 2.0 베타 버전에서 구현되지 않습니다 믿습니다
페레 Villega에게

18
Play 2.0을 실행하고 있습니다. 시도해 play run 8080도 여전히 9000에서 실행됩니다. 저는 Mac에 있습니다. 무엇을 제공합니까? 편집 : play "run 8080" 작동합니다!
Jay Q.

6
@StefanK. Play가 포트에서 수신 대기 할 때까지 구성을 읽을 수 없으므로 Play 구성 파일에 포트를 넣을 수 없습니다. env var를 사용하여 포트를 설정할 수 있습니다.
James Ward

1
@James 해결 방법으로 github.com/sbt/sbt-native-packager/issues/155 문제를 제출했습니다 . 감사!
gfournier

33

2.0-RC4 플레이

실행하려는 play 명령 주위에 따옴표를 포함시키는 것이 중요합니다. 내 경우에는 따옴표가 없으면 포트 9000에서 계속 재생됩니다.

play "run 8080"

또는 플레이 콘솔에서 다음을 실행할 수 있습니다 ( 'play'를 입력하여 콘솔로 이동).

run 8080

4
Windows를 사용하는 사람들에게는 두 번째 옵션이 효과적이었습니다 (Play 2.0.4 final).
Baztoune

14

이것이 누군가를 돕기를 바랍니다.

sbt 설정을 통해 :

...
.settings(PlayKeys.playDefaultPort := 8855)
...

1
이것이 정답입니다! 감사합니다! (나와 같은 다른 SBT 및 Play 초보자 .settings의 경우 build.sbt파일 뒤에 줄을 lazy val root = (project in file("."))추가하십시오. SBT 설정에 대한 자세한 내용은 여기를 참조하십시오 : scala-sbt.org/1.0/docs/Custom-Settings.html )
Cameron Hudson

이것은 내가 찾은 유일한 해결책이 플레이 2.7.x에서 작동
Coert Grobbelaar

7

버전 2.0.3 :

  • 프로젝트 디렉토리로 가서 play 라고 말하십시오 . 플레이 콘솔이 열립니다.

  • 다음으로 8080을 실행하십시오 . 포트 8080에서 재생이 시작됩니다.

이게 도움이 되길 바란다.


5

배포 가능한 tar 파일이있는 Windows의 Play 2.2.x의 경우 배포 가능한 루트 디렉토리에 {PROJECT_NAME} _config.txt라는 파일을 만들고 추가했습니다.

-Dhttp.port=8080

{PROJECT_NAME}은 (는) 프로젝트 이름으로 바꿔야합니다. 그런 다음 bin \ 디렉토리에서 평소와 같이 {PROJECT_NAME} .bat 스크립트를 시작했습니다.


Windows에서 (dist 및 zip 옵션 사용) 명령 행 인수 전달이 작동하지 않습니다 (2.2.0 재생). 그러나 구성 파일에 동일한 인수를 제공하면 매력처럼 작동합니다.
skywalker

5

Windows에서 2.2.0 재생

zip 배포 ( "dist"명령을 사용하여 생성)를 사용하여 시작 포트를 변경하는 유일한 방법은 먼저 JAVA_OPTS를 설정 한 다음 응용 프로그램을 시작하는 것입니다.

예를 들어, 명령 행에서

set JAVA_OPTS=-Dhttp.port=9002
bin\myapp.bat

여기서 myapp.bat는 "dist"명령으로 작성된 배치 파일입니다.

다음은 항상 내 http.port 매개 변수를 무시하고 기본 포트 9000에서 시작하려고합니다.

bin\myapp.bat -Dhttp.port=9002

그러나 요청 된 포트에서 시작하여 Linux / OSX에서 제대로 작동한다는 것을 알았습니다.

./bin/myapp -Dhttp.port=9002


4

.sbtopts프로젝트 디렉토리에서 HTTP 포트를 설정할 수도 있습니다 .

-Dhttp.port=9001

그런 다음 run매번 작업 에 추가해야합니다 .

Play 2.1.1에서 테스트했습니다.



2

커밋 소개 오늘 (11월 25일), 당신은 이제 후 포트 번호를 오른쪽으로 지정할 수 있습니다 run또는 startSBT 명령을.

예를 들어

play run 8080 또는 play start 8080

기본 포트 9000으로 재생


최신 업데이트에 감사드립니다! 귀하의 정보를 추가하기 위해 James의 답변을 업데이트했습니다. 아마도 여기에 정식 답변을 작성할 수 있습니다.
보리스 Terzic

2

Windows에서는 "run 9001"재생이 작동하지 않을 수 있습니다. play.bat 파일을 변경해야합니다. 티켓 참조


링크가 끊어지는 경우 (그리고 SO에 대한 도움을 원하는 사람을 더 빨리 도울 수있는 경우) 여기에서 play.bat 파일을 변경하는 방법을 신속하게 나타내는 것이 중요 할 수 있습니다.
Taylor R

2

플레이 콘솔에서 포트 8888에서 실행하려면 run 8888 만 입력하면됩니다.

play> run 8888

2

플레이 2.5.x

1 단계 : control + D를 사용하여 netty 서버 (실행중인 경우) 중지

2 단계 : sbt-dist / conf로 이동

3 단계 :이 파일 'sbtConfig.txt'를 다음과 같이 편집

-Dhttp.port=9005

4 단계 : 서버 시작

5 단계 : http : // host : 9005 /


2

에 다음 줄을 추가하십시오. build.sbt

PlayKeys.devSettings := Seq("play.server.http.port" -> "8080")


1

Windows에서 Play 2.2.1은 PLAY_OPTS 환경 변수를 지원합니다. Play의 play.bat 파일에는 다음 줄이 포함되어 있습니다.

java -Dsbt.ivy.home="%~dp0repository" -Dplay.home="%~dp0framework" -Dsbt.boot.properties="%fp%framework/sbt/play.boot.properties" %PLAY_OPTS% -jar "%~dp0framework\sbt\sbt-launch.jar" %*

포트 9002에서 실행하려면

set PLAY_OPTS=-Dhttp.port=9002
play run

1

2.3.7 Play 프레임 워크로 테스트했습니다. 잘 작동합니다.

./{application}/bin/{executable} -Dhttp.port=5000

1

나는 이걸했다. sudo필수적이다.

$ sudo play debug -Dhttp.port=80
...
[MyPlayApp] $ run

편집 : 사용 sudo하기 때문에 문제가 있었으므로 주의하십시오. 마지막으로 프로젝트를 정리하고 더 이상 그 트릭을 사용하지 않았습니다.


1
이것은 배포판 (Ubuntu ...)과 루트로 로그인했는지 여부에 따라 다릅니다.
Pierre-Yves Le Dévéhat

1

Play 버전 2.5.6을 사용하고 있습니다.

포트를 변경하려면 프로젝트 루트 폴더로 이동하여 다음을 누르십시오. activator "run 8008" 명령 프롬프트 / 터미널에서 을 .

그리고 그게 다야.


0

Windows에서는 다음과 같이 start.bat 파일을 사용합니다.

java -Dhttp.port=9001 -DapplyEvolutions.default=true -cp "./lib/*;" play.core.server.NettyServer "."

-DapplyEvolutions.default = true는 확인을 요구하지 않고 자동으로 진화를 적용하도록 진화에 지시합니다. 물론 프로덕션 환경에주의해서 사용하십시오 ...


0

avtivator에서 애플리케이션 포트를 변경할 수 없지만 명령 행 활성화 기 "~ run 8080"에서 변경할 수 있습니다.

그러나 활성화 기에서 시인 9000을 실행하려면이 포트를 사용하는 응용 프로그램을 중지해야합니다. 이 응용 프로그램을 사용하여이를 찾아 프로세스를 종료 할 수 있습니다 https://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

이 후 우리는 실행할 수 있고 성공할 것입니다.


0

개발중인 포트 지정

기본적으로 SBT는 포트 9000에서 응용 프로그램을 실행합니다.

sbt run

포트 추가 -Dhttp.port 플래그 를 지정하려면 다음과 같이하십시오.

sbt run -Dhttp.port=8080

-Dhttp.port 플래그를 사용하면 개발 시스템에서 여러 애플리케이션을 디버그 할 수 있습니다. 테스트 및 프로덕션 환경에서 -Dhttp.port 플래그를 사용할 수도 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.