📅  最后修改于: 2023-12-03 15:13:03.872000             🧑  作者: Mango
当您想在 CGI 脚本与网络服务器 Apache 相结合时,通常需要将脚本放在cgi-bin
目录下,并将目录中的.htaccess
文件配置为启用 CGI。
但是,如果您希望在cgi-bin
目录之外启用 CGI,则需要进行一些额外的配置。
以下是如何在外部启用 CGI 的步骤:
首先,您需要创建一个专门用于存放 CGI 脚本的目录。您可以在 Web 服务器的任何位置创建此目录。
例如,您可以在/usr/local/apache/htdocs/cgi-bin
目录之外创建一个名为/usr/local/apache/cgi-scripts
的目录。
其次,您需要配置 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/
。
然后,您需要在新的 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>")
现在,您可以通过 URL 运行您的 CGI 脚本。例如,如果您在/usr/local/apache/cgi-scripts
目录中创建了hello.cgi
脚本,则可以在浏览器中输入以下 URL:
http://example.com/cgi-scripts/hello.cgi
您应该能够看到一个简单的“Hello,World!”网页。
通过按照上述步骤,您可以在外部启用 CGI,对于CGI编程是有好处的,他让您的代码更加方便快捷地开启运行。