小权的探险日记

nginx启动不了的N种常见报错情况的解决教程

起因:

[scode type="green"]本内容来源于宝塔论坛,为了方便在出本文章[/scode]

昨天换服务器在转移站点的时候发现好家伙nginx错误了?从没有出现这种情况的我表示一脸懵逼::bilibili:heirenwenhao::,然后就是小白的一套狂找教程法,结果非常的....

啥都没找到,我是崩溃的,要么就是没用,要么就是看不懂感觉乱七八糟的,最后无意之间发现个宝塔还有个微信客服,问了一下客服给了我个链接,最后成功找到问题解决方式搞定。

想了一下我觉得应该还有好多人可能会遇到这个问题,所以想了想要不放我网站这里说不定可以帮一下!顺便水一期

[font color="FF0F3D"] 注意:以下解决方法中的编译安装等,需要写入文件,如果有安装宝塔系统加固等安全软件,需要关掉后,再进行,以免权限不足[/font]

情况一:报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版本,具体是哪个版本,就改为哪个版本,不能生搬硬套(也就是4行的那个“74.sock”)

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,记得替换,不能生搬硬套哦

[font color="#B22222"]红字提醒,如果进程名为sshd,mysqld等环境服务,不要kill,可操作更改端口,以免端口冲突[/font]

再重启nginx

/etc/init.d/nginx start

情况十三 站点[XXX]创建失败, ERROR: 检测到配置文件有错误

一般情况下这个都是用了迁移插件导致的,这个错误是说没有可用的“connection_upgrade”,您可以在nginx的配置文件的http模块下配置下面的内容

map $http_upgrade $connection_upgrade {
      default upgrade;
       "" close;
 }

推荐

如果你们有不会的,可以在宝塔服务器那边点设置在线客服即可用微信联系到(一般论坛回复太慢使用)

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »