nginx无法启动的N种常见错误情况解决教程
注意:以下方案中的编译安装需要写入文件。如果安装了宝塔系统加固等安全软件,需要先关闭再进行,以免权限不足
情况一:报libluajit-5.1.so.2错误如图
解决方法:
重新编译安装下nginx
依赖没有安装完整
情况二:报错:gd库问题 libgd.so.2
如图
解决方法:安装下依赖gd库
centos系统安装命令:
- yum -y install gd gd-devel
复制代码
ubuntu、debian等linux系统安装命令:
- apt-get install gd gd-devel
复制代码
情况三:报错提示没有这个文件/www/server/total/nginx_log.lua
如图
解决方法:一般将网站监控报表卸载重装一下就可以
情况四:报错:www用户问题
如图
解决方法:新建www用户,服务器命令行执行以下命令新建
- /usr/sbin/groupadd -f www
复制代码
- /usr/sbin/useradd -g www www
复制代码
情况五:报错libjemalloc.so.2问题
如图
解决方法:卸载编译方式重装一下nginx即可
情况六:报错没有这个文件enable-php.conf
如图
解决方法:在/www/server/nginx/conf新建一个enable-php.conf的文件。文件内容:
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-74.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
注意:文件内容的74是php版本,具体是哪个版本,就改为哪个版本,不能生搬硬套
情况七:ssl证书部署问题导致
如图
解决方法:将蓝色框的域名的ssl证书关闭后再重新部署
情况八:报错nginx.conf test failed
如图
解决方法:有安装防火墙的话,卸载重装下nginx防火墙 还不行卸载用编译方式重装nginx
或者将nginx版本直接切换至nginx 1.18或者nginx 1.19
情况九:爆内存
如图
排查方法一:
服务命令行执行以下命令看看还剩多少内存
- free -m
复制代码
然后修改nginx.conf
- vim /www/server/nginx/conf/nginx.conf
复制代码
将fastcgi_cache_path /data/www/wordpress/fastcgi/ngx_fcgi_cache levels=2:2 keys_zone=ngx_fcgi_cache:500m inactive=30s max_size=5g;这行的500m改为free内存的数量即可,但是也不要一点不剩
然后保存测试下nginx的配置文件,再重启nginx试试
排查方法二:如果有安装网站加速的话,看看这里如图设置有多大,调小一些试试
情况十:报错unknown directive
这个需要具体问题具体分析,一般报错会报具体配置文件第几行哪个指令未知
以下为解决问题实例:
报错如图:
排查过程:经了解,用户之前用的是apache服务器,目前在使用nginx作为web服务器,因此根据截图判断,用户用了apache的伪静态
解决方法:将apache的伪静态转换成nginx的,问题解决
情况十一 端口占用导致的报错如图
解决方法:服务器命令行执行以下命令排查看看是哪个服务占用了22000端口,一般都是报错80端口被占用
- lsof -i:22000
复制代码
然后
- kii -9 PID
复制代码
注意,这个PID为占用22000端口的进程PID,记得替换,不能生搬硬套哦
红字提醒,如果进程名为sshd,mysqld等环境服务,不要kill,可操作更改端口,以免端口冲突
再重启nginx
- /etc/init.d/nginx start
复制代码
未经允许不得转载:网络营销师马栓 » nginx无法启动的N种常见错误情况解决教程