如何使用 apache 提供脚本而不是运行它?

Posted

技术标签:

【中文标题】如何使用 apache 提供脚本而不是运行它?【英文标题】:How do I serve a script with apache instead of running it? 【发布时间】:2010-09-13 05:53:58 【问题描述】:

我正在尝试使用 apache 网络服务器托管 python 脚本,但服务器尝试运行脚本而不是仅仅提供下载。

我没有直接访问服务器,添加行

AddType text/plain .py

根文件夹中的 .htaccess 似乎不起作用,尽管我可能做错了什么。

如何让服务器仅将文件作为文本发送而不是尝试运行它?

-编辑

更改名称不起作用。 Script.py.safe 在单击时仍然会给出 500 Server 错误。

我还应该提到 .htaccess 文件确实可以工作,但由于某种原因,一个 addType 行无法正常工作。要么是因为它没有覆盖某些东西,要么是行错误。

【问题讨论】:

【参考方案1】:

在您的 .htaccess 中:

移除处理程序.py

【讨论】:

【参考方案2】:

如果您无法更改 Apache 配置并且无法使用 htaccess 文件覆盖它,那么在我看来,最简单的解决方案是更改文件扩展名,或者编写一个打印的脚本目标脚本的内容。

两者在某种程度上都是 hack,但正确的解决方案是更改 Apache 配置。

【讨论】:

【参考方案3】:

一种选择是更改扩展名并明确应将其重命名。即 python.py.safe 或 python.py.dl。然后用户需要删除多余的位。

你也可以把它拉起来。

【讨论】:

【参考方案4】:

我会写一些东西来加载 python 脚本。这样你甚至可以变得精力充沛,并包括代码的格式和样式。你甚至可以用 python 编写它,因为你不会通过文件扩展名排除它。

【讨论】:

我希望更多的是 1 分钟解决方案而不是 1 天解决方案。 ;)【参考方案5】:
<IfModule mime_module>
    <Files *.py>
        ForceType text/plain
    </Files>
</IfModule>

在文件夹的 .htaccess 中应该可以工作 ;)

【讨论】:

以上是关于如何使用 apache 提供脚本而不是运行它?的主要内容,如果未能解决你的问题,请参考以下文章

Apache ITK 与 Suexec

如何以用户而不是 root 用户身份运行 cron 作业 [关闭]

最常见 IP 地址 bash 脚本的 Apache 访问日志

如何在IPython控制台中默认运行文件而不是终端?

如何将 Node.js 设置为始终在服务器(如 Apache)上运行 [重复]

如何修改ESCrawlTopology以便它在本地而不是远程运行? 'NoNodeAvailableException'异常