Nginx访问PHP文件的File not found错误处理,两种情况

这个错误很常见,原有有下面两种几种

php-fpm找不到SCRIPT_FILENAME里执行的php文件

php-fpm不能访问所执行的php,也就是权限问题

第一种情况

更改配置文件nginx.conf

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 

替换成下面

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

宝塔nginx禁止直接通过IP访问网站

在宝塔建站过程中如何禁止通过IP直接访问网站呢?方法如下:

如果listen没有设置default,那么可以这样

server {
listen 80;
server_name _;
return 404;
}

如果设置了default的话,上面那样做就不太好用了,可以在server{}里加入下面的判断,位置加在server_name下面location上面就行,对于开启https站定,同样有效。

if ( $host ~* "\d+\.\d+\.\d+\.\d+" ) {
return 404;
}

Zabbix使用Nginx做前端部署安装

zabbix官网默认是使用apache做前端安装部署的,个人觉得使用nginx效果也很好,于是尝试用nginx来部署一下zabbix4,
具体方法如下,我来使用源码安装配置。

1.安装依赖库

yum install -y gcc wget vim unixODBC-devel net-snmp-devel libxml2-devel libcurl-devel libevent-devel curl-devel gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2.安装nginx

下载安装源码包:

wget https://nginx.org/download/nginx-1.18.0.tar.gz

配置nginx支持php

确保php-fpm已经安装和启动:

ps -ef | grep php-fpm

如果没有安装,用 yum install -y php-fpm 安装即可,确保php环境都已经安装。
如果没有启动,则启动php-fpm:

/usr/local/sbin/php-fpm &

查看是否启动成功:

[root@localhost ~]# ps -ef | grep php-fpm
root       6465   2679  0 11:11 pts/2    00:00:00 php-fpm: master process (/etc/php-fpm.conf)
apache     6467   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
apache     6468   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
apache     6469   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
apache     6470   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
apache     6471   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
root       6495   2679  0 11:12 pts/2    00:00:00 grep --color=auto php-fpm

[root@localhost ~]# netstat -lpn |grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      6465/php-fpm: maste