• 问题:  之前使用虚拟机nginx一直都是正常的, 就在昨天重新配置了一下nginx(其实只注释了反向代理,别的都没动), 重启nginx, 却报错pid为空. 无法启动nginx.   而且重启之前我是使用nginx  -t 检查了OK的, 没有语法错误. 提示信息:   invalid PID number '' in "/run/nginx.pid"
  • 排查:  在网上看到说nginx 重启是需要使用pid 的, 既然pid为空. 那就先启动nginx 
    sudo /etc/init.d/nginx start  #启动nginx

    结果没有启动成功. 提示信息:  使用  systemctl  status  nginx.service   -l   查看详情  或者使用   journalctl   -xn   查看信息.  于是输入这个systemctl  status  nginx.service  , 提示绑定80端口失败,Starting nginx: [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) 那就基本是80端口被占用.   接下来使用  sudo  netstat  -ntlp | grep 80 或者sudo  netstat -ltunp 查看什么程序占用80端口, 找到对应的pid关闭进程. (注意: 加上sudo, 开始没加结果显示不出来pid和占用的程序),  发现是Apache进程占用了80端口, 杀死Apache进程.  使用/etc/init.d/apache2 stop  停止Apache服务 使用 ps aux | grep apache2查看 但是Apache进程还存在....换一个kill -s 9 pid,  不知道为什么还是存在Apache进程, 最终是 使用 kill  -9  pid  逐个杀死Apache进程的pid(系统显示的有4个pid)  然后  启动nginx   OK!!!
    参考了: https://www.cnblogs.com/wang-yaz/p/9451312.html

  • nginx重启需要使用pid: 解释在这里--->  https://www.cnblogs.com/xiohao/p/6433124.html
  • 在查资料过程中看到了tcp6的一篇博客: https://www.cnblogs.com/wlzjdm/p/8684202.html   (Apache只显示tcp6 监听端口)
  • 20191018, 今天又遇到了PHP不能启动的问题, 同样是因为端口被占用了, 刚开始不知道查看那个端口, 后来在网上看到php-fpm查9000端口, 如果有占用9000端口的程序, kill  -s  9  pid, 然后启动php-fpm