nginxは、同じ所有者、グループ、および厳格な権限を持たないファイルを開くことはできません。

nginxは、同じ所有者、グループ、および厳格な権限を持たないファイルを開くことはできません。

index.phpNginxで実行されているWebサイトのファイルで権限拒否エラーが発生します。エラーは次のとおりです。

2018/01/19 05:50:01 [error] 9664#9664: *17 FastCGI sent in stderr: "PHP message:
PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0
Unable to open primary script: /var/www/the-site/index.php (Permission denied)" while
reading response header from upstream, client: xxx.xxx.xxx.xxx,
server: www.the-site.com, request: "GET /index.php HTTP/1.1",
upstream: "fastcgi://unix:/var/run/php5-fpm-the-site.sock:", host: "www.the-site.com"

ファイル権限は

-rw-rw-r--. 1 root root 418 Aug  2 17:49 index.php

ファイル権限を777(一時的に)に変更しても役に立ちませんでした。

-rwxrwxrwx.  1 root root   418 Aug  2 17:49 index.php

ただし、ファイルを移動すると、次のようになります。

mv index.php index-old.php

index.php以下を使用して新しいコンテンツに置き換えます。

<?php phpinfo(); ?>

それではうまくいきます。ユーザーとグループは同じですが、今は弱い権限を持っています。

$ ls -l index*
-rwxrwxrwx. 1 root root 418 Aug  2 17:49 index-old.php
-rw-r--r--. 1 root root  20 Jan 19 05:56 index.php

結果は次のとおりですls -Z

$ ls -Z index*
-rwxrwxrwx. root root unconfined_u:object_r:user_tmp_t:s0 index-old.php
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.php

ベストアンサー1

-rw-r--r--. 1 root root  20 Jan 19 05:56 index.php
          ^ this one

許可ビットの後の点は SELinux セキュリティコンテキストを表します。 SELinuxシステムを実行している場合、nginxファイルを読み取るには一致が必要です。ls -Zセキュリティコンテキストを表示するために使用できます。restoreconデフォルトのセキュリティコンテキストを復元します(私の意見ではファイルの場所に基づいています)。またはchcon変更してください。

このような

$ restorecon /var/www/the-site/index.php

または完全なカタログ。

$ restorecon -r /var/www/the-site

(今はどこでもテストできません。構文を確認してください。)

たとえば、参照してください。SELinux タグの Red Hat ドキュメント

おすすめ記事