cgi 中的文件采购失败

file sourcing within cgi failed

我的cgi文件:

#!/bin/sh -f
source /Users/sfma/sastbx/build/setpaths_all.sh
python processQuery.py

然后出现"Internal Server Error"。我检查了 error_log,它说:

 [Thu Jun 23 15:02:39.809441 2016] [cgi:error] [pid 1327] [client ::1:52131]     AH01215: /Users/sfma/sastbx/build/bin/libtbx.path_utility: line 63: /Users/sfma/sastbx/build/../../Library/Enthought/Canopy_64bit/User/bin/python: Permission denied: /Library/WebServer/CGI-Executables/web.cgi, referer: http://localhost/modelRetrieval/query.html

删除source语句,它工作正常。但我需要获取此文件以供进一步使用。

编辑
根据错误信息,我认为错误可能是由于 python permission.

#!/bin/sh -f
#python processQuery.py   #this works fine
/Users/sfma/Library/Enthought/Canopy_64bit/User/bin/python processQuery.py    #this does not work. Permission denied.

这让我很困惑,因为 /Users/sfma/Library/Enthought/Canopy_64bit/User/bin/python 正是我正在使用的 python:

$which python 
/Users/sfma/Library/Enthought/Canopy_64bit/User/bin/python

我终于解决了这个问题。

由于 python 工作正常而 /Users/sfma/Library/Enthought/canopy_64bit/User/bin/python 导致问题,我将文件 libtbx.path_utility 和 sastbx.python 中的一些变量硬编码为 "python" 而不是他们曾经是什么:“/Users/sfma/sastbx/build/../../Library/Enthought/canopy_64bit/User/bin/python”

更新
/Users/sfma/Library/Enthought/Canopy_64bit/User/bin/python 权限被拒绝的原因是 _www 现在可以访问我的 Library 文件夹。检查 this。使该目录对所有人可用后,这个问题终于解决了。