相关疑难解决方法(0)

Nginx 403禁止所有文件

我在CentOS 5机器上安装了带有PHP-FPM的nginx,但我很难让它为我的任何文件服务 - 无论是否PHP.

Nginx作为www-data:www-data运行,默认的"欢迎使用EPEL上的nginx"站点(由root拥有:具有644权限的root)加载正常.

nginx配置文件有/etc/nginx/sites-enabled/*.conf的include指令,我有一个配置文件example.com.conf,因此:

server {
 listen 80;

 Virtual Host Name
 server_name www.example.com example.com;


 location / {
   root /home/demo/sites/example.com/public_html;
   index index.php index.htm index.html;
 }

 location ~ \.php$ {
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param  PATH_INFO $fastcgi_script_name;
  fastcgi_param  SCRIPT_FILENAME  /home/demo/sites/example.com/public_html$fastcgi_script_name;
  include        fastcgi_params;
 }
}
Run Code Online (Sandbox Code Playgroud)

尽管public_html由www-data:www-data拥有2777文件权限,但该网站无法提供任何内容 -

 [error] 4167#0: *4 open() "/home/demo/sites/example.com/public_html/index.html" failed (13: Permission denied), client: XX.XXX.XXX.XX, server: www.example.com, request: "GET /index.html HTTP/1.1", host: "www.example.com"
Run Code Online (Sandbox Code Playgroud)

我发现很多其他帖子的用户从nginx获得403s,但我见过的大部分都涉及使用Ruby/Passenger进行更复杂的设置(过去我实际上已成功)或者只是在上游PHP时收到错误-FPM参与其中,所以他们似乎没什么帮助.

我在这做过傻事吗?

php centos nginx http-status-code-403

184
推荐指数
6
解决办法
22万
查看次数

从ubuntu上的laravel开始

我正在尝试使用laravel作为PHP框架,我已经将laravel zip解压缩到~/opt/xampp/htdocs/laravel但是当我去localhost/laravel或者localhost/laravel我收到403错误消息时说:

访问被禁止!

您无权访问请求的对象.它受读保护或服务器无法读取.

我在某处读到了我需要编辑storagelaravel里面的文件夹所以它可以读写,所以我chmod -R 766 laravel/storage仍然没有运气,我从Ubuntu 12.04这样做有没有人遇到过这个?

编辑
我有chmod -R 0+w laravel/storage,现在当我去localhost/laravel我得到一些文件的索引,但当我去localhost/laravel/public/仍然得到403错误,而不是预期的结果

编辑2
我已经设置chmod -R 765 laravel/public,现在当我得到localhost/laravel/public我得到这个消息这让我相信我越来越近了:

警告:require(/opt/lampp/htdocs/learning-laravel/laravel/laravel.php):无法打开流:第34行/opt/lampp/htdocs/learning-laravel/public/index.php中的权限被拒绝

致命错误:require():在/ opt/lampp /中打开所需的'/opt/lampp/htdocs/learning-laravel/laravel/laravel.php'(include_path ='.:/ opt/lampp/lib/php')失败第34行的htdocs/learning-laravel/public/index.php

php ubuntu laravel

34
推荐指数
3
解决办法
5万
查看次数

角度i18n应用的Nginx配置

我使用支持法语和英语的i18n构建了一个angular-5应用程序.然后,我为每种支持的语言部署了一个单独的应用程序版本

 - dist
    |___ en/
    |    |__ index.html
    |___ fr/
         |__ index.html

我还添加了以下nginx配置,以两种语言提供应用程序;

server {
    root /var/www/dist;
    index index.html index.htm;
    server_name host.local;

    location ^/(fr|en)/(.*)$ {
        try_files $2 $2/ /$1/index.html;
    }
}

我想要做的是为两个应用程序提供服务,并允许在英语和法语版本之间切换.

比方说,host.local/en/something 如果我切换到host.local/fr/something我应该得到"某事"页面的法语版本.

使用我共享的nginx配置,每次刷新我的应用程序时刷新页面都会出现404未找到的错误,这也会阻止我独立浏览我的应用程序并在它们之间切换.

我错过了什么?什么是适当的Nginx conf来实现这一目标?

nginx internationalization angular

10
推荐指数
3
解决办法
3370
查看次数

nginx 不遵循 www-data 用户的符号链接

我已经在默认服务器上创建了一个文件夹/var/www/default,一切都按预期进行。在该文件夹内,我使用通用~/WebstormProjects/my-projectln -s. 它工作了一段时间,最后一次我使用 更新时apt-get,nginx 不再遵循符号链接,这给了我一个 404 错误,甚至没有像以前那样列出符号链接。

尝试使用该disable_symlinks指令,将其设置为off,但没有任何反应。也按照此链接中的步骤操作,但仍然没有任何结果。还把自己添加到www-data用户中,什么也没有。

但是,如果我nginx.conf通过将user指令更改为我自己的用户并重新启动服务器来进行编辑,确实可以工作,但我知道这是一种非常糟糕的做法,并且在将来的某一天它将不允许 PHP-FPM 工作。

那么,我该怎么做才能让 nginx 遵循符号链接,而不更改源目录的所有者呢?顺便说一句,我使用的是 Ubuntu 14.04.3 和通过包管理器安装的 nginx 1.4.6。

permissions symlink nginx configuration-files ubuntu-14.04

5
推荐指数
1
解决办法
9999
查看次数

Laravel + NGINX 给出 403 禁止

我真的第一次在网络(EC2)上加载 Laravel 应用程序。

我有一个运行最新 Laravel 5.6 的 Ubuntu 18.04 实例。我已经被困了几个小时试图解决 403 问题。我遵循了:

这些步骤(创建新组,向其中添加 ubuntu 和 www-data,设置组和所有者为读取、写入和执行)

这些步骤设置文件夹权限

...许多其他尝试/服务器重建...

所以刚才我把root中的所有文件和文件夹都设置为777来测试

$ find /home/ubuntu/projectname -type f -exec chmod 777 {} \;
$ find /home/ubuntu/projectname -type d -exec chmod 777 {} \;
Run Code Online (Sandbox Code Playgroud)

根据下面的建议,我也这样做了:

$ namei -l /home/ubuntu/projectname/public
f: /home/ubuntu/projectname/public
drwxr-xr-x root     root     /
drwxr-xr-x root     root     home
drwxr-xr-x ubuntu   ubuntu   ubuntu
drwxrwxrwx www-data www-data projectname
drwxrwxrwx www-data www-data public

$ sudo chmod -R 777 /home/ubuntu/projectname

$ ls -l
drwxrwxrwx   8 www-data …
Run Code Online (Sandbox Code Playgroud)

php nginx http-status-code-403 laravel laravel-5.6

1
推荐指数
1
解决办法
7979
查看次数