我正在跟随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上运行。
答案 0 :(得分:2)
您可以使用以下任一方式更改revel应用程序的端口:
编辑config/app.conf
文件并设置
http.port = 8888
使用指定端口的参数运行您的revel应用程序。您还需要指定dev
或prod
来说明您的环境:
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。