Go Revel框架端口9000已在使用中

时间:2013-10-01 00:03:58

标签: nginx go localhost port revel

我正在跟随the Go Revel framework nicely,直到我去运行测试应用程序:

$ revel run myapp

它为我提供了所有正确的输出,但也提供了以下错误

ERROR 2013/09/30 19:51:41 harness.go:167: Failed to start reverse proxy: listen tcp 
<nil>:9000: address already in use

当我运行时:

$ sudo lsof -n -i4TCP:9000 | grep LISTEN

我明白了:

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
php-fpm 11007 root   11u  IPv4 0xffffff801441dde0      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 11008 _www    0u  IPv4 0xffffff801441dde0      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 11009 _www    0u  IPv4 0xffffff801441dde0      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 11010 _www    0u  IPv4 0xffffff801441dde0      0t0  TCP localhost:cslistener (LISTEN)

我有一个在端口80上运行的PHP-NGINX应用程序,不想丢失,但不知道这是否意味着这个PHP应用程序阻止我的Go应用程序运行。

有人可以加入吗?

我在MacOS X 10.7.5上运行。

4 个答案:

答案 0 :(得分:2)

您可以使用以下任一方式更改revel应用程序的端口:

  1. 编辑config/app.conf文件并设置

    http.port = 8888
    
  2. 使用指定端口的参数运行您的revel应用程序。您还需要指定devprod来说明您的环境:

    revel run myapp dev 8888
    

答案 1 :(得分:1)

建议使用lsof:

检查此端口上的进程是否已在运行
lsof -i :9000

有时,您看到系统上未安装lsof,然后首先安装lsof:

sudo apt-get install lsof

如果在此端口上运行相同的应用程序,您应该终止进程并重新开始:

kill -9 PORT

如果此端口上正在运行某些其他进程,则应按@Vanessa

的建议更改默认端口

答案 2 :(得分:0)

您也可以尝试运行

ps -A | grep revel

您的狂欢应用可能仍在运行。如果是,你可以用

杀死它
kill PID

答案 3 :(得分:0)

看起来你正在运行Nginx / PHP FPM,它将使用端口9000进行FPM进程通信。

您可以在PHP-FPM配置中将其更改为其他端口或使用本地套接字(最好)如果Nginx和php安装位于同一台计算机上)但请务必将Nginx网站定义更新为也反映了这种变化。

对于PHP,在php-fpm.conf中搜索listen指令:

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses on a
;                            specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000

在Nginx中更新fastcgi_pass指令:

fastcgi_pass   127.0.0.1:9000;

重启Nginx和PHP-FPM,你应该能够再次绑定到端口9000。