LMLPHP后院

Nginx 403 错误解决方法技术

maybe yes 发表于 2016-02-15 21:49

前一阵子在配置 Nginx 时,总是出现 403 错误,虽然之后看起来这个问题是非常简单的,但是对于不熟悉的人来讲,能找到问题还是很不容易的,请求了运维大哥,大哥依然找了很久就没能解决问题,最后解决问题了也是碰巧,还是没能真正的理解到 Nginx 的配置的含义。

Nginx 的配置比 Apache 要简单,好像并不能继承默认的 localhost,比如 index 的配置,不愧是轻量级的服务器。大概的配置如下所示:

server {
	listen 80;
	server_name home.may;
	#ssl_certificate ssl/example.com.crt;
	#ssl_certificate_key ssl/example.com.key;
	error_log /var/log/nginx/home.may.error.log;
	charset utf-8;
	root /home/leiminglin/work/code/may/lml;
	index index.html index.php;
	location / {
		try_files $uri $uri/ /index.php?$query_string;
	}
	location ~ \.php$ {
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
		fastcgi_split_path_info ^(.+\.php)(.*)$;
		include fastcgi_params;
	}
}

在主配置文件 nginx.conf 的最外层中包含配置文件目录 sites_enable(作为 sites_available 的链接目录),如下示例:

include sites_enable/*.conf;

要解决 403 错误需要保证每个 server 的配置都必须有 index 的配置(这点很重要,我一开始以为会默认继承主配置文件的 index 项),root 的配置,并且每个 root 所指向的路径都必须递归的拥有读写权限。然后按照上面的配置文件来进行修改,基本没有问题的。

相关文章
2024-03-29 03:50:43 1711655443 0.022833