天天看點

GCP搭建網站後403解決

由于開發需要,在本地用虛拟機配置了

LNMP

環境,使用的是

Centos 6.8

的yum安裝,安裝一切正常,但是使用預設的網站配置目錄,是在

/usr/share/nginx/html

這個目錄下。簡直是有點奇葩了。

于是乎,我先将預設的配置檔案copy了一份,修改root為

/data/www

,接着就在根目錄下建立了

/data/www

這個目錄準備放置新的網站檔案。

感覺一切都很ok的時候,重新開機運作發現,報錯了

403 forbidden

。這着實讓我很意外,預設的配置下,都是可以打開,為什麼換個目錄就不行了呢。

于是檢視nginx日志,路徑為

/var/log/nginx/error.log

。打開日志發現報錯

Permission denied

,詳細報錯如下:

open() "/data/www/1.txt" failed (13: Permission denied), client: 192.168.1.194, server: www.web1.com, request: "GET /1.txt HTTP/1.1", host: "www.web1.com"      

這就很尴尬了,沒有權限?不可能啊。于是開始一個個排查錯誤。

注意:

引起

nginx 403 forbidden

通常是三種情況:

  • 一是缺少索引檔案,
  • 二是權限問題,
  • 三是SELinux狀态。

很多人在排查錯誤的時候,前兩個步驟都知道,但是第三個真的很少有人知道,我也是找了半天才發現需要設定

SELinux

狀态。

那麼,我們看三步解決nginx報錯

403 forbidden (13: Permission denied)

的問題?

一、缺少

index.html

或者

index.php

檔案,就是配置檔案中

index index.html index.htm

這行中的指定的檔案。

server {  
  listen       80;  
  server_name  localhost;  
  index  index.php index.html;  
  root  /data/www/;
}      

如果在

/data/www/

下面沒有

index.php,index.html

的時候,直接檔案,會報

403 forbidden

二、權限問題,如果nginx沒有web目錄的操作權限,也會出現403錯誤。

解決辦法:修改web目錄的讀寫權限,或者是把nginx的啟動使用者改成目錄的所屬使用者,重新開機Nginx即可解決

chmod -R 777 /data
chmod -R 777 /data/www/      

三、

SELinux

設定為開啟狀态(

enabled

)的原因。

3.1、檢視目前selinux的狀态。

/usr/sbin/sestatus      
GCP搭建網站後403解決

3.2、将

SELINUX=enforcing

 修改為 

SELINUX=disabled

 狀态。

vi /etc/selinux/config

#SELINUX=enforcing
SELINUX=disabled      
GCP搭建網站後403解決

3.3、重新開機生效。

reboot

reboot      

我這裡出現錯誤的問題就是在第三步設定

SELinux

的問題上,折騰我好長時間。

簡單的三個步驟輕松的解決

Nginx

出現

403 forbidden (13: Permission denied)

報錯的問題。

繼續閱讀