Nginx not following symlinks

余生长醉 提交于 2019-11-28 06:14:19
cobaco

Have a look at the following config option from nginx docs:

Syntax:

disable_symlinks off;
disable_symlinks on |
if_not_owner [from=part];

Default: disable_symlinks off;

Context: http, server, location

This directive appeared in version 1.1.15.

In my case nginx was already configured to follow symbolic links. But the issue was the user nginx could not access my home files and therefore symbolic link to my home directory was not working.

Example

Suppose we have symbolic link /usr/share/nginx/www/mylink -> /home/u/html

cd /usr/share/nginx/www
mkdir   -p  /home/u/html
sudo ln -sv /home/u/html mylink  # creates mylink -> /home/u/html

Give permissions

Give the read and execute permissions using chmod and find:

chmod +rx /home/u
chmod +rw /home/u/html
find /home/u/html/php -type d -exec chmod +rx {} +
find /home/u/html/php -type d -exec chmod +w  {} +  # optional

Notes:

  1. The permission x is named execute. But when applied to a directory, this permission allows to recurse the directory tree (see Unix modes).

  2. The command find ... -exec chmod ... recursively changes the permissions. We could also use the command chmod -R +rx /home/myuser/html but this last command also gives the execution permission to all regular files, and we do not want that. The option -type d execute chmod to only directories.

  3. The last optional command gives write permission if your PHP scripts require to write data. Try to limit write permission to only required directories for security reasons.

Test

No need to restart ngnix, just press Ctrl+F5 in your browser.

Caution: It is not recommended to create symbolic links pointing to your home directory because a mistake on read/write access or a wrong symbolic link may expose your digital data...

Reference: Arch wiki on nginx

Asgher Hussain

if olibre's answer doesn't help edit the file /etc/nginx/sites-available/default and add this line where you've specified your server root directory.

autoindex on;

save the file and restart server

/etc/init.d/nginx restart
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!