从 php 运行 python 脚本时,我无法理解权限系统。看起来很微妙,我会尽量简化这个问题。
情况如下。我有:
- 位于 /var/www/ 中的 python 脚本myscript.py
- 位于 /var/www/的 php 脚本myscript.php
- 位于 /home/some_folder/ 中的文件foo.txt 。重要提示: foo.txt 仅具有 'r' 权限。
在 myscript.php 中:
exec('python myscript.py')
在 myscript.py 中:
f = open('/home/some_folder/foo.txt', 'r')
测试 1
从 /var/www/ 中的命令行运行 myscript.py:它确实打开了 foo.txt,不管它的位置。
测试 2
运行 myscript.php: foo.txt 没有打开。
测试 3
将 foo.txt 的位置更改为 /var/www/,相应地更改 myscript.py 并运行 myscript.php :打开 foo.txt。
所以......在这里我试图了解测试2有什么问题:给出了读取权限,那么可能会发生什么阻止python脚本完成它的工作?
这更多是出于好奇,因为很容易找到解决方法。但是我很困扰,并且对这些事情的理解还不够,无法想出一个体面的想法,为什么它不起作用。我相信你们中的一些人会的,我提前感谢他们:)