📜  .htaccess 在 cgi-bin 之外启用 CGI (1)

📅  最后修改于: 2023-12-03 15:13:03.872000             🧑  作者: Mango

在外部启用CGI

当您想在 CGI 脚本与网络服务器 Apache 相结合时,通常需要将脚本放在cgi-bin目录下,并将目录中的.htaccess文件配置为启用 CGI。

但是,如果您希望在cgi-bin目录之外启用 CGI,则需要进行一些额外的配置。

以下是如何在外部启用 CGI 的步骤:

步骤1:创建 CGI 目录

首先,您需要创建一个专门用于存放 CGI 脚本的目录。您可以在 Web 服务器的任何位置创建此目录。

例如,您可以在/usr/local/apache/htdocs/cgi-bin目录之外创建一个名为/usr/local/apache/cgi-scripts的目录。

步骤2:在 Apache 配置文件中配置 CGI 目录

其次,您需要配置 Apache Web 服务器,以便能够识别新的 CGI 目录。

请按以下方式编辑 Apache 配置文件:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /usr/local/apache/htdocs

    # 定义额外的 CGI 文件夹
    ScriptAlias /cgi-scripts/ /usr/local/apache/cgi-scripts/

    # 允许使用 CGI 文件夹中所有的 CGI 脚本
    <Directory "/usr/local/apache/cgi-scripts">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Require all granted
    </Directory>
</VirtualHost>

请注意,我们使用ScriptAlias指令为新的 CGI 目录创建了一个别名。此别名与/cgi-bin/别名类似,但我们将其指向新的 CGI 目录/usr/local/apache/cgi-scripts/

步骤3:在新的 CGI 目录中创建脚本

然后,您需要在新的 CGI 目录中创建您的脚本。请注意,无需将任何内容放入.htaccess文件中。

例如,您可以创建一个名为hello.cgi的 Python 脚本:

#!/usr/bin/env python3

print("Content-Type: text/html")
print()
print("<html><body>")
print("<h1>Hello, World!</h1>")
print("</body></html>")
步骤4:运行您的 CGI 脚本

现在,您可以通过 URL 运行您的 CGI 脚本。例如,如果您在/usr/local/apache/cgi-scripts目录中创建了hello.cgi脚本,则可以在浏览器中输入以下 URL:

http://example.com/cgi-scripts/hello.cgi

您应该能够看到一个简单的“Hello,World!”网页。

结论

通过按照上述步骤,您可以在外部启用 CGI,对于CGI编程是有好处的,他让您的代码更加方便快捷地开启运行。