问题起因

问题:在centos7安装nginx时候更改起始目录的时候发生403错误,无法读取修改后的起始目录软件

网上搜索问题,都是说权限不够,然后 在用chmod各种花样改权限以后发现还是不行,遂想着读一下conf配置文件,详细了解每行代码什么意思

发现问题

学习nginx配置文件后发现因为我更改后的目录起始文件是index.php格式,而我在将原本的nginx配置文件改成https时候并没有在443端口上进行解析php文件,以及其他格式的文件,80端口只写了重定向的代码,并且将原本的server文件全部进行注释了,所以导致只能识别html文件而无法识别php

解决办法

在原本的server文件中写80端口进行重定向并且配置443端口。或者可以清空server文件,单独一个server对80端口进行重定向,然后重开一个server配置对443端口进行解析

nginx -t
#进行nginx配置文件的检查,同时可以查看本机配置文件存在哪里

以下使用分别配置80和443端口

server{
  listen 80 default_server reuseport;
  #listen [::]:80 default_server ipv6only=on;
  server_name 你的域名;
  rewrite ^(.*)$ https://$host$1 permanent;
  index index.html index.htm index.php;
}
server
    {
       listen       443 ssl ;
       listen       [::]:443 ssl ;
       http2 on;
       index index.html index.htm index.php;
       root  你的根目录;
       server_name 你的域名;
       ssl_certificate "你的ssl证书带pem后缀文件路径";
       ssl_certificate_key "你的ssl证书带key后缀文件路径";
       ssl_session_cache shared:SSL:1m;
       ssl_session_timeout  10m;
       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers on;

       include /etc/nginx/default.d/*.conf;
       error_page 404 /404.html;
           location = /40x.html {
       }

       error_page 500 502 503 504 /50x.html;
           location = /50x.html {
       }
        include enable-php-pathinfo.conf;
        #安装typecho需要引入enable-php-pathinfo.conf文件
        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }
        location ~ /\.
        {
            deny all;
        }
        access_log  /home/wwwlogs/access.log;
    }
```

然后再进行

nginx -t   
#检查配置文件
nginx -s reload
#重新载入nginx配置文件
最后修改:2024 年 09 月 27 日
希望这篇文章对你有用,能给你带来一个好心情!