我已经成功安装了使用PHP-FPM的nginx,但不幸的是,从不同目录加载PHP文件时遇到了一些问题。我的所有文件都位于/var/www/html的子目录中(例如,所有css文件位于/var/www/html/css,所有javascript文件位于/var/www/html/js,所有php文件位于/var/www/html/php)。根据这一点,我将php文件的根目录路径更改为/var/www/html/php:
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.php home.php;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html/php;
include snippets/fastcgi-php.conf;
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
不幸的是,当访问我的nginx服务器使用我的网络浏览器,我得到错误403(禁止)。当直接访问我的index.php(http://192.168.2.109/index.php)时,一切正常。所以,我认为这意味着文件权限是正确的,但是nginx不能索引 /var/www/html/php目录。此外, /var/log/nginx/error.log包括:
2017/05/28 07:49:56[错误]13678#13678:*1目录索引“/var/www/html/”被禁止,客户端:192.168。2.101,服务器:\请求:“GET/HTTP/1.1”,主机:“192.168.2.109”
我已经尝试启用自动索引并在“location~.php${”部分添加索引说明符,但没有成功。结果相同:(
有人知道我做错了什么/错过了什么吗?Nginx 403中的所有建议错误:【文件夹】的目录索引被禁止并没有解决我的问题。
问题很简单:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html/php;
include snippets/fastcgi-php.conf;
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
正如我所读到的,当你请求一个*. php文件时,你改变了根地址。但是,当您请求"默认索引"时,您请求的是/,而不是. php
您需要一个新位置,以便根据请求更改根路径。尝试使用以下方法:
location = / {
root /var/www/html/php;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
也许,在这个配置上,你需要放一个“重写index.php”,但是我不知道,因为我从来没有测试过这个配置。
不要认为我的新位置顺序(location=/)与您的位置顺序(location/)相同,因为我的带有等号的顺序仅在您请求完全没有任何参数的“main”位置时才适用。
我有3个域名,正在尝试使用Nginx将所有3个站点托管在一台服务器(数字海洋水滴)上。 谜题1。命名为mysite2。命名为mysite3。名称 其中只有一个有效。另外两个导致403个错误(以相同的方式)。 在我的nginx错误日志中,我看到:。 我的站点已启用配置为: 所有3个站点都有几乎相同的配置文件。 每个网站的文件都在 /usr/share/nginx/mysite1.name/someF
问题内容: 我在CentOS 5盒子上安装了Nginx和PHP-FPM,但是我很难使它服务于我的任何文件-无论是否为PHP。 Nginx以www-data:www-data的身份运行,默认的“欢迎使用EPEL上的nginx”站点(由root:root拥有644权限)可以很好地加载。 nginx配置文件具有 /etc/nginx/sites-enabled/*.conf 的include指令 , 而
在我的覆盆子,我已经建立了一个新的网站,与一些php页面。 HTML所有的工作都很好,但是php页面,它只是抛出一个“403禁止”错误。 文件和目录的权限似乎是开放的,他们可以...有什么想法,我还需要检查什么?
我花了几个小时在这个问题上,尽管相关帖子很多,但我无法解决它。我有一个Fedora 20盒与Nginx PHP-FPM,直到今天工作得很好(在我重新加载php-fpm.service我猜)。Nginx提供的静态文件没有问题,但是任何PHP文件都会触发错误403。 权限正常,nginx和php fpm在用户“nginx”下运行: 服务的文件也被设置为nginx用户,我甚至结束了chmoding 77
问题内容: 关于此问题还有其他一些问题: boto.exception.S3ResponseError:S3ResponseError:403禁止 S3ResponseError:S3ResponseError:403禁止 S3ResponseError:403禁止使用Boto Python:Amazon S3无法达到目标:说“ 403 Forbidden” 但是,似乎我可能遇到了其他问题(例如,
我将docker compose与以下: nginx conf是: 它工作得很好,如果我创建。但是,如果我想访问,我有一个403错误,并在docker-comple中使用以下日志: 我试过其他Q中的建议