Rumah > Soal Jawab > teks badan
1. Latar belakang
Persekitaran pelayan: CentOS7/Nginx1.10.0
2. Masalah
Selepas menukar direktori root web lalai Nginx, masalah 403 Forbidden berlaku apabila mengakses tapak web.
Direktori lalai: /usr/share/nginx/html
[root@AllenServer html]# pwd
/usr/share/nginx/html
[root@AllenServer html]# ls -al
总用量 16
drwxr-xr-x. 2 allen allen 71 5月 29 01:45 .
drwxr-xr-x. 5 allen allen 51 6月 1 14:47 ..
-rw-r--r--. 1 allen allen 537 4月 26 23:11 50x.html
-rw-r--r--. 1 allen allen 22 5月 29 01:45 index2.php
-rw-r--r--. 1 allen allen 617 5月 29 01:23 index.html
-rw-r--r--. 1 allen allen 167 5月 29 01:36 index.php
Direktori baharu: /home/nginx/default
[root@AllenServer default]# pwd
/home/nginx/default
[root@AllenServer default]# ls -al
总用量 16
drwxrwxrwx. 2 nginx nginx 71 6月 2 17:15 .
drwxrwxrwx. 3 nginx nginx 20 6月 1 16:10 ..
-rwxrwxrwx. 1 nginx nginx 537 6月 1 16:11 50x.html
-rwxrwxrwx. 1 nginx nginx 22 6月 1 16:11 index2.php
-rwxrwxrwx. 1 nginx nginx 618 6月 2 17:15 index.html
-rwxrwxrwx. 1 nginx nginx 167 6月 1 16:11 index.php
Fail konfigurasi Nginx:
[root@AllenServer default]# more /etc/nginx/nginx.conf
user nginx;
#user root;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Profil laman web:
[root@AllenServer conf.d]# more default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
#root /usr/share/nginx/html;
root /home/nginx/default;
#root /test;
index index.html index.htm index.php;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
#root /usr/share/nginx/html;
root /home/nginx/default;
#root /test;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#root /usr/share/nginx/html;
root /home/nginx/default;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
3. Perihalan
(1) Adalah perkara biasa untuk mengakses direktori lalai sebelum menukar konfigurasi
(2) Mulakan semula perkhidmatan Nginx selepas menukar konfigurasi
(3) Masalah 403 berlaku apabila mengakses selepas menukar akar Web baharu; direktori.
Bolehkah anda beritahu saya bagaimana untuk menyelesaikan masalah ini?
仅有的幸福2017-05-16 17:18:34
Isu kebenaran biasanya disemak seperti ini:
Tukar kepada pengguna menggunakan perisian yang bermasalah. Contohnya su - nginx
Cuba masukkan direktori bermasalah satu peringkat pada satu masa bermula dari /
Cuba baca fail
Apabila mengakses fail, bukan sahaja kebenaran fail sasaran mesti dibenarkan, tetapi juga kebenaran semua peringkat direktori di atasnya.
Lihat pada langkah mana ralat dilaporkan dan anda akan tahu di mana masalahnya.
Juga ambil perhatian bahawa sebagai tambahan kepada kebenaran POSIX asas, kebenaran anda juga termasuk SELinux. Sila semak, jika SELinux didayakan, SELinux juga mesti membenarkan nginx mengaksesnya. Jika masalah disebabkan oleh SELinux, SELinux mempunyai program pelaporan khas untuk melihat maklumat terperinci.