我正在尝试在用户 www-data 下使用 apache 运行的 python 脚本中使用导入的模块(pylightning)。
该脚本在以用户 www-data 通过 apache 运行时出现权限错误:
File "/usr/local/lib/python3.4/dist-packages/lightning/lightning.py", line 69, in call
sock.connect(self.socket_path)
PermissionError: [Errno 13] Permission denied
为了解决这个问题,我进行了大量搜索,发现我需要以 www-data 用户身份重新安装模块:
sudo pip3 uninstall pylightning
sudo -H -u www-data pip3 install pylightning
该脚本仍然以普通用户身份从 CLI 顺利运行:
$python3 index.py
Content-Type: text/html
<html><body>
etc...
但是从 apache(通过浏览器或从命令行作为用户 www-data)仍然给出相同的错误:
$sudo -u www-data python3 /var/www/html/index.py
Content-Type: text/html
<html><body>
Traceback (most recent call last):
File "/var/www/html/index.py", line 29, in <module>
print(rpc_interface.listpeers())
File "/usr/local/lib/python3.4/dist-packages/lightning/lightning.py", line 345, in listpeers
return self.call("listpeers", payload)
File "/usr/local/lib/python3.4/dist-packages/lightning/lightning.py", line 69, in call
sock.connect(self.socket_path)
PermissionError: [Errno 13] Permission denied
有人有任何想法吗?
脚本来源:
#!/usr/bin/env python3
import hashlib
from lightning.lightning import LightningRpc
rpc_interface = LightningRpc("/home/pi/.lightning/lightning-rpc")
print ("Content-Type: text/html\n\n");
print ("</body></html>asd");
print(rpc_interface.listpeers())
错误在这一行触发:print(rpc_interface.listpeers())
验证 www-data 用户是否具有访问权限/home/pi/.lightning/lightning-rpc
(包括父目录)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句