cgi脚本的“#!/ usr /”指向哪里?

时间:2014-05-04 11:52:02

标签: python apache cgi cgi-bin

首先我知道路径指向可执行文件。我要问的是它指向哪个目录?

我在python上很新。我从事PHP工作,现在我试试Python。 我用python配置我的apache-2.2。我已经配置了我的cgi-bin目录。我的问题是我在一个非常不同的位置安装了Python2.7,并且不知道如何指出"#!usr /"到python.exe的确切位置的路径。

谢谢,

卡米尔

2 个答案:

答案 0 :(得分:0)

如果运行pythonpython2做了正确的事情(最好以cgi脚本运行的方式测试它,就像你可以的那样),惯例是使用程序env - 可以搜索$PATH可执行文件而不是硬编码路径。 env是任何类Unix系统上的标准程序,除非你的基本系统很奇怪,否则总是在/ usr / bin中,所以你可以这样做:

#!/usr/bin/env python

根据this previous answer,这会导致Windows机器上的忽略行,这可能是您想要的 - 它将导致Apache恢复到其他方式来查找适当的解释器,它似乎包含注册表项的值(在HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command处为cgi文件,并根据需要更改扩展名),并且如果未设置该键,则可能包括Windows的标准查找规则。

答案 1 :(得分:0)

它指向的目录是...... /usr/?你定义路径,然后定义可执行文件,如下所示:#!/usr/bin/python3其中python3是可执行文件,路径是/usr/bin/,标准python目录,如果你考虑它...大多数二进制文件存储在/bin/usr/bin

自从你提到.exe后,我假设你正在摇动Windows机器 所以:#!E:/python-installed/python.exe -u

一些文档: