Предположим, что я закончил установку современной версии Ubuntu со стандартной версией и имею следующий скрипт.
#!/bin/sh
echo "Content-type: text/html\n"
echo "<html><body>Hello world</body></html>"
Как мне установить и настроить Apache для обслуживания веб-страницы «Hello world» с http: // localhost , используя этот скрипт?
В командной строке (Терминал) приложение:
sudo apt-get install apache2
Для этого примера мы предположим, что сценарий 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-адресом сервера.
Необходимо изменить ванильную конфигурацию 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.