我要遵循哪些步骤来运行股票Hello World CGI脚本?

假设我已经完成了现有版本的Ubuntu的安装,并拥有以下脚本。

#!/bin/sh echo "Content-type: text/html\n" echo "Hello world" 

如何使用此脚本安装和配置Apache以从http:// localhost提供“Hello world”网页?

快速方式

安装Apache Web服务器

在命令行(终端)应用程序中:

 sudo apt-get install apache2 

使您的脚本可由Apache执行

对于此示例,我们假设CGI脚本名为test.sh并保存在您的个人主文件夹中。 要让Apache使用test.sh ,脚本首先需要具有可执行权限:

 chmod 755 $HOME/test.sh 

它还需要移动到Apache指定的CGI文件夹。 对于Ubuntu(和其他基于Debian的操作系统),这是 /usr/lib/cgi-bin/ ,而HTML和其他内容存储在/var/www

 sudo mv $HOME/test.sh /usr/lib/cgi-bin/ 

访问本地服务器的输出

Apache将在http://localhost/cgi-bin/test.sh上提供test.sh生成的HTML。 如果Apache位于您自己的计算机之外的某个位置,请将“localhost”替换为服务器的URL或IP地址。

将CGI脚本存储在/ var / www / test-cgi而不是/ usr / lib / cgi-bin /中

您需要修改vanilla Apache配置以将CGI脚本存储在另一个文件夹中。

 sudoedit /etc/apache2/sites-enabled/000-default 

指令中添加以下内容:

 ScriptAlias /test-cgi/ /var/www/test-cgi/  AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all  

然后,在命令行中:

 sudo mkdir /var/www/test-cgi sudoedit /var/www/test-cgi/test.sh 

然后,在命令行中,重新启动Apache:

 sudo apachectl restart 

快速方式一样 ,CGI输出应该在http://localhost/test-cgi/test.sh中提供 (如果您正在远程开发,则将“localhost”替换为服务器域)。

故障排除

如果您遇到问题,请查阅官方Apache文档 。