Какие шаги нужно выполнить, чтобы запустить стандартный 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.