我的用户主目录中有一个 txt 文件,该文件会通过脚本定期更新。我现在希望能够从 Web 访问(读取)此文件。
/home/user/folder/file.txt
所以我现在尝试以 root 身份登录,进入我的网络服务器 httpdocs 文件夹
/var/www/path/to/domain/httpdocs
然后我尝试创建一个符号链接
ln -s /home/user/foler/file.txt /var/www/path/to/domain/httpdocs/file.txt
但这不起作用...我已经尝试更改符号链接的 chmod(当然会更改原始文件的 chmod)以及来自网络服务器的 chown 到用户,但无论我尝试什么,我都无法从网络或 php 脚本打开该文件(这是我想要做的)
有人能帮助我并告诉我我需要做什么吗?我需要授予什么权利?或者还有其他方法可以实现这一点吗?
答案1
符号链接将始终具有以下权限:lrwxrwxrwx。“升“表示它是一个链接。因此,所有用户都可以访问该链接,因为有效权限是链接指向的文件的权限。尝试更改符号链接的权限永远没有用。
从根目录到相关文件的整个路径必须对 Apache 用户可读。因此...查看主文件夹的权限:
ls -la /
主目录应由 root 拥有,由 root 拥有的组,默认情况下具有 0755 权限掩码:drwxr-xr-x
。如果不是,请更改它:
sudo chown root:root /home; sudo chmod 0755 /home
现在看一下您的用户目录:
ls -la /home
如果有问题的用户名是桑搏,用户的主目录应归 sambo 所有,归 sambo 所有组,默认权限掩码为 0755:drwxr-xr-x
。如果不是,请将其更改为:
sudo chown sambo:sambo /home/sambo; sudo chmod 0755 /home/sambo
重复此操作多次,直到找到包含该文件的目录为止。然后,不要忘记文件本身。
sudo chown sambo:sambo /home/sambo/path/to/file/file.txt; sudo chmod 0644 /home/sambo/path/to/file/file.txt
然后使用PHP打开:
<?php
$file = '/home/sambo/path/to/file/file.txt';
$fp = fopen($file, 'r');
此时您也可以使用符号链接。