私のドキュメントディレクトリを参照するnginxサーバー側にシンボリックリンクパスを作成しました。
[user1@localhost nginx] pwd
/user/share/nginx
[user1@localhost nginx] sudo ln -s ~/Documents/nginx-sites/app app
[user1@localhost nginx] ls
lrwxrwxrwx 1 root root 37 Sep 21 14:58 app -> /home/user1/Documents/nginx-sites/app
ところで、nginxユーザーがそのファイルにアクセスできないようです(権限が拒否されました)
nginxエラーログはここにあります-> 2022/09/21 13:35:20 [エラー] 20547#20547: *3 open() "/usr/share/nginx/app/public" 失敗 (13: 許可拒否)、クライアント: 127.0、サーバー: localhost, リクエスト: "GET /app/public HTTP/1.1", ホスト: "localhost"
だから私は行動しようとしています。統計資料コマンドを使用してhttp(私のnignxユーザー)ディレクトリにアクセスしようとした結果は次のとおりです。
// 1'st tried
[user1@localhost nginx]$ sudo -u http stat app/public
stat: cannot statx 'app/public': Permission denied
// 2nd tried -> cd inside subsequently, and perform stat again
[user1@localhost nginx]$ sudo -u http stat app
File: app -> /home/user1/Documents/nginx-sites/app
Size: 37 Blocks: 0 IO Block: 4096 symbolic link
Device: 259,2 Inode: 13375664 Links: 1
...
[user1@localhost nginx]$ cd app
[user1@localhost app]$ sudo -u http stat public
File: public
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 259,2 Inode: 11015535 Links: 2
...
その結果、最初の試みは失敗しましたが、2番目の試みは成功しました。なぜこのような問題が発生しますか?次の作品を作る方法は?
- nginxユーザーはそれにアクセスして提供できます。
- sudo -u http stat app/public が成功を返します。
/*For information purpose*/
[user1@localhost ~]$ groups http
user1 http
[user1@localhost ~]$ ls ~/Documents/nginx-sites
drwxr-xr-x 13 user1 user1 4096 Sep 21 14:16 app
[user1@localhost ~]$ ls ~/Documents/nginx-sites/app
drwxr-xr-x 7 user1 user1 4096 Sep 20 21:19 app
-rwxr-xr-x 1 user1 user1 1686 Sep 20 21:19 artisan
drwxr-xr-x 3 user1 user1 4096 Sep 20 21:19 bootstrap
drwxr-xr-x 2 user1 user1 4096 Sep 20 21:19 public