我应该遵循哪些步骤来运行库存的 Hello World CGI 脚本?

我应该遵循哪些步骤来运行库存的 Hello World CGI 脚本?

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

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

如何安装和配置 Apache 以提供“Hello world”网页http://本地主机使用这个脚本?

答案1

快速方法

安装 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 将test.sh在以下位置提供生成的 HTMLhttp://localhost/cgi-bin/test.sh。如果 Apache 位于您自己的机器之外的某个地方,请将“localhost”替换为服务器的 URL 或 IP 地址。

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

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

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

在指令内添加以下内容<VirtualHost>

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

然后,在命令行中:

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 官方文档

相关内容