我刚刚买了一台新服务器,想尝试一些其他的东西。比如用 Nginx 代替 Apache。
因此,安装后nginx
,进入欢迎页面,安装php5-fpm
并下载 Wordpress 进行尝试。
403 Forbidden
但是,当我尝试前往该地址时仍然出现...
这是配置文件:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/axiol.access.log;
error_log /var/log/nginx/axiol.error.log error;
root /usr/share/nginx/axiol;
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/axiol$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
try_files $uri $uri/ /index.php?$args;
}
我已经检查了该文件夹的 chmod axiol
。
任何想法 ?
答案1
您在 php 位置中犯了一个错误。您需要转义,.
因为它在正则表达式中另有用处。
location ~ \.php$ {
编辑:
您还应该添加以下内容server
:
index index.html index.htm index.php;
如果没有指定文件,则需要自动传递 index.php(如果 index.html 和 index.htm 不存在)。
答案2
检查服务以哪个用户和组身份运行,并确保它已读取文件并在 nginx 文件夹及其下的所有内容的目录上执行。
您可以通过执行此命令并查看第一列来检查 nginx 服务正在运行的用户:
ps aux | grep nginx
(这些权限非常严格,但很安全)
find /usr/share/nginx/ -type f | xargs chmod 444
find /usr/share/nginx/ -type d | xargs chmod 555