nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

Posted

技术标签:

【中文标题】nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)【英文标题】: 【发布时间】:2013-08-03 11:53:45 【问题描述】:

大家好,尝试使用 nginxphp5-fpm 配置我的网络服务器。

当我尝试重新启动/启动/停止 nginx 时,它显示:

Restarting nginx: 





nginx: [emerg] still could not bind()
nginx.

日志显示同样的事情。

我的网站配置:

server 

            listen   80;

            listen   [::]:80;

            root /home/marker/Projects/stereoshoots/www;

            server_name stereoshoots.local;







            location / 

                    autoindex  on;

    #                try_files $uri $uri/ @rewrite;

                    try_files $uri $uri/ /index.php;

            

    #        location @rewrite 

    #                rewrite ^/(.*)$ /index.php?q=$1;

    #        

            location ~* \.(jpg|jpeg|gif|css|png|js|ico|xml|txt)$ 

                access_log        off;

                expires           30d;

            

            location = /favicon.ico 

                    return 204;

                    access_log     off;

                    log_not_found  off;

            

            location ~ \.php$ 

                    fastcgi_pass unix:/var/run/php5-fpm.sock;

                    fastcgi_index index.php;

                    include fastcgi_params;

            

            location ~ /\.ht 

                    deny all;

            

    

安装nginx+php5-fpm时我在终端写的命令列表

1.sudo apt-get install nginx
2.sudo apt-get install php5-cli php5-common php5-mysql php5-suhosin php5-gd php5-fpm php5-cgi php5-fpm php-pear php5-mcrypt
3.sudo service nginx stop
4.sudo service php5-fpm stop
5.sudo gedit /etc/php5/fpm/php.ini
cgi.fix_pathinfo = 0;
6.sudo gedit /etc/php5/fpm/pool.d/www.conf
security.limit_extensions = .php .php3 .php4 .php5
listen = /var/run/php5-fpm.sock

【问题讨论】:

看起来 80 端口已经在使用中。也许是阿帕奇? Skype? Thisand thisand this看起来相关 没有apache,有skype的想法。 【参考方案1】:

如果你想同时支持 ipv4 和 ipv6(你应该支持,因为像 Apple 这样的公司已经转移到 ipv6-only 网络,2016.8,截至目前),你需要删除 listen 80 并且只在你的 nginx 中保留以下内容配置,

listen [::]:80

也许还有这个,

listen [::]:443

请记住,您需要将配置中的所有listen 80listen 443 更改为listen [::]:80listen [::]:443。不要忘记/etc/nginx/sites-available/default中的配置

【讨论】:

【参考方案2】:

Skype 默认使用端口 80,443,即 http 和 https 端口。尝试关闭Skype并重新启动nginx。

如果您使用的是“桌面版”的 Skype,您可以通过tools>options>advanced>connections > untick use port 80 and 443 as alternatives 更改此设置。

如果您使用的是 win8 应用程序,唯一的选择似乎是完全关闭 Skype 或完全删除它。

不过win8应用还是得有人确认一下,我用的是linux。

【讨论】:

以上是关于nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)的主要内容,如果未能解决你的问题,请参考以下文章

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:8088 failed (13: Permission denied) nginx 启动失败

nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

Gitlab nginx 问题 - nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

启动服务报错:nginx: [emerg] bind() to 0.0.0.0:80 failed

nginx - nginx:[emerg] bind()到[::]:80失败(98:地址已经在使用中)

nginx: [emerg] bind() to 0.0.0.0:18071 failed (13: Permission denied)