linux venv中的www.example.com文件权限错误sqlite.py

fafcakar  于 2023-06-21  发布在  Linux
关注(0)|答案(1)|浏览(121)

我需要从Debian $pid = shell_exec(sprintf('nohup /bin/bash /home/debian/Desktop/Holibot/holi.sh > /dev/null 2>&1 & echo $!'));上的Apache 2启动这样的脚本
holi.sh只需激活venv并运行python脚本。
然而,我安装的一个外部库(kerykeion)在它使用的www.example.com文件库(用于获取地理名称)上引发了一个权限错误13 permission deniedsqlite.py。但是我已经把chmod 777 rwxrwxrwx和chown www-data递归地放在我的python项目的文件夹/文件中!!!脚本.py与www-data用户运行良好,并在执行过程中崩溃,错误为...
完整追溯:

2023-06-14 13:40:16,532 - KrInstance - ERROR - Error in fetching http://api.geonames.org/searchJSON: attempt to write a readonly database

Which error comes from

self.responses[cache_key] = cached_response
  File "/home/debian/Desktop/Holibot/venv/lib/python3.9/site-packages/requests_cache/backends/sqlite.py", line 283, in __setitem__
    con.execute(
sqlite3.OperationalError: attempt to write a readonly database

当我直接用www-data运行脚本时,它可以正常工作,而不会出现perm错误...**theo@x:/home/debian/Desktop/Holibot$ sudo -u www-data bash -c "/home/debian/Desktop/Holibot/holi.sh"
我要疯了!是Apache导致了这个问题吗?为什么我自己运行的时候它还能工作...

eyh26e7m

eyh26e7m1#

问题是python库在/var/www/html/而不是/home/debian/Desktop/Holibot/中创建了一个文件夹,所以PWD变量是不同的!
我成功地解决了

import traceback
print(traceback.format_exc())

而且www-data在html/文件夹中没有perm到“wx”,这可能是一个不好的做法?...

相关问题