1

在运行测试应用程序之前,我很好地遵循了 Go Revel 框架:

$ 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)

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

任何人都可以插话吗?

我在 MacOS X 10.7.5 上运行。

4

4 回答 4

2

您可以使用以下任一方法更改狂欢应用程序的端口:

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

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

    revel run myapp dev 8888
    
于 2013-10-01T01:17:32.820 回答
1

建议使用 lsof 检查进程是否已在此端口上运行:

lsof -i :9000

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

sudo apt-get install lsof

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

kill -9 PORT

如果此端口上正在运行其他进程,则应按照@Vanessa 的建议更改默认端口

于 2014-03-06T14:50:26.900 回答
0

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

如果 Nginx 和 php 安装在同一台机器上,您可以在 PHP-FPM 配置中将其更改为不同的端口或使用本地套接字(首​​选),但请务必更新您的 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。

于 2014-05-17T15:46:27.377 回答
0

您也可以尝试运行

ps -A | grep revel

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

kill PID
于 2014-03-09T00:30:29.597 回答