我有一个网站,它使用 python 脚本从单独的实体获取信息。由于使用的库和其他实体的结构,需要 python 脚本。检索到的信息将在网站上以各种方式使用。
网站本身是在 Apache 上运行的 PHP,并且有一个部分启动 python 脚本。显然,作为 Apache 服务器,Python 脚本是由 Apache 启动的,因此该脚本必须可由 Apache 使用/读取。
问题是,如果用户转到脚本的位置(即
www.mysite.com/scripts/myscript.py
),则可以通过浏览器查看代码。
是否可以设置权限,让Apache可以继续使用该脚本,但是在浏览器中直接访问该脚本时,无法查看代码?我也同意将脚本更改为不易阅读(也许会混淆它?)。
我尝试更改
.htaccess
文件以不允许读取该目录中的文件,但是虽然它在尝试查看时确实会定向到 403 页面,但它会阻止 Apache 使用该脚本。我还更改了文件的权限以允许 Apache 执行该文件,但不读取它...这似乎阻止了 Apache 从脚本中读取结果。
有什么想法吗?
编辑1: 我认为应该注意的是,Python脚本是由PHP通过exec命令:
exec("$cmd > /dev/null 2>&1 & echo $!;")
启动的,其中$cmd
是要执行的命令。这可能是也可能不是这里的最佳用例。如果有另一种方法可以让 PHP 启动 python 脚本并从脚本中获取结果,我愿意接受这种替代方案。
你想多了。请注意如何调用 Python 脚本:
Python 脚本由 PHP 通过 exec 命令启动:
,其中exec("$cmd > /dev/null 2>&1 & echo $!;")
是要执行的命令。$cmd
具体是什么
$cmd
?服务器可以在文件系统上的任何位置执行脚本。它不需要位于 Apache Web 根目录中,而且确实与 Apache 无关。
只需将其放在文件系统上网站之外的其他位置即可。