Centos
Nginx 說 open() ‘/etc/nginx/conf.d/foo.conf’ failed (13: Permission denied)
這是我所擁有的
ls -al /etc/nginx
:total 52 drwxr-xr-x. 4 root root 4096 Jul 28 04:16 . drwxr-xr-x. 78 root root 8192 Jul 28 03:37 .. drwxr-xr-x. 2 root root 26 Jul 28 03:55 conf.d drwxr-xr-x. 2 root root 6 May 10 09:21 default.d -rw-r--r--. 1 root root 1034 May 10 09:21 fastcgi.conf -rw-r--r--. 1 root root 964 May 10 09:21 fastcgi_params -rw-r--r--. 1 root root 2837 May 10 09:21 koi-utf -rw-r--r--. 1 root root 2223 May 10 09:21 koi-win -rw-r--r--. 1 root root 3957 May 10 09:21 mime.types -rw-r--r--. 1 root root 1033 Jul 28 03:43 nginx.conf -rw-r--r--. 1 root root 596 May 10 09:21 scgi_params -rw-r--r--. 1 root root 623 May 10 09:21 uwsgi_params -rw-r--r--. 1 root root 3610 May 10 09:21 win-utf
這是我
/var/log/nginx/error.log
之後看到的sudo service nginx start
:[emerg] 20360#0: open() "/etc/nginx/conf.d/foo.conf" failed (13: Permission denied) in /etc/nginx/nginx.conf:33
這就是我所擁有的
ls -al /etc/nginx/conf.d/
:$ ls -al /etc/nginx/conf.d/ total 8 drwxr-xr-x. 2 root root 26 Jul 28 03:55 . drwxr-xr-x. 4 root root 4096 Jul 28 04:16 .. -rw-r--r--. 1 root root 230 Jul 28 03:50 foo.conf
怎麼了?
當您
permission denied
因未知原因在文件訪問等方面遇到錯誤時,可能與 SELinux 有關。特別是當您看到有問題的文件/目錄drwxr-xr-x.
顯示的權限後有一段時間時ls -l
,它們可能被錯誤標記(您可以通過 看到ls -Z
)並導致問題。您應該首先通過執行檢查目前的 SELinux 模式
getenforce
。如果顯示,則通過 runningEnforcing
暫時將模式設置為,然後查看您的應用程序是否正常工作。Permissive``setenforce 0
請查閱您發行版的 SELinux 指南以獲得永久修復,包括在啟動時設置 SELinux 模式、重新標記文件或目錄、更新策略等。這裡是CentOS 的 Howto。