Какие шаги нужно выполнить, чтобы запустить стандартный CGI-скрипт Hello World?

Предположим, что я закончил установку современной версии Ubuntu со стандартной версией и имею следующий скрипт.

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

Как установить и настроить Apache для обслуживания веб-страницы "Hello world" с http://localhost/ с помощью этого скрипта?

1 ответ

Решение

Быстрый Путь

Установите веб-сервер Apache

В командной строке (Терминал) приложения:

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сгенерированный HTML на http://localhost/cgi-bin/test.sh. Если Apache находится где-то помимо вашей собственной машины, замените localhost на URL-адрес или IP-адрес сервера.

Хранение CGI-скриптов в / var / www / test-cgi, а не в / usr / lib / cgi-bin /

Вам нужно изменить конфигурацию Apache vanilla, чтобы хранить сценарии 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

Как и в случае с Quick Way, выходные данные CGI должны обслуживаться по адресу http://localhost/test-cgi/test.sh (замените "localhost" доменом сервера, если вы разрабатываете удаленно).

Поиск проблемы

Если у вас есть проблемы, обратитесь к официальной документации Apache.

Другие вопросы по тегам