Практически полный новичок в Linux / Apache, я нахожусь в процессе перемещения сайта с общего хоста на Linode VPS.Все шло гладко, пока я не начал пытаться переместить свой блог Moveable Type, который работает с использованием серии CGI-скриптов.Я использую Ubuntu 10.04 и Apache2.После нескольких часов возни я получил скрипт hello world на PERL (hello.cgi) для выполнения из веб-браузера в корневом каталоге HTML.Вот сценарий:
#!/usr/bin/perl -w
use strict;
print "Content-Type: text/html\n\nHello world!";
Я получил это, добавив следующее в файл /etc/apache2/sites-available/mysitename.com.
<Directory /srv/www/mysitename.com/public_html/>
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
Но я хочувыполнить сценарии CGI в каталоге /srv/www/mysitename.com/public_html/mt/, поэтому я изменил каталог в приведенной выше записи на этот путь, и при просмотре сценария hello world в этой папке через браузер я вижу источникдля сценария hello.cgi, а не для вывода.Очевидно, что-то не так.Я потратил более чем достаточно времени, пытаясь решить это сам, и пришло время обратиться за помощью.Итак, у кого-нибудь есть предложения?Пожалуйста, оставьте ответы простыми. Я действительно только учусь ориентироваться в Linux / Apache2 здесь!
Найденное решение:
<VirtualHost *:80>
ServerName www.sitename.com
ServerAdmin general@sitename.com
ServerAlias sitename.com
DocumentRoot /srv/www/mysitename.com/public_html/
ErrorLog /srv/www/mysitename.com/logs/error.log
CustomLog /srv/www/mysitename.com/logs/access.log combined
AddHandler cgi-script .cgi .pl
</VirtualHost>
<Directory /srv/www/mysitename.com/public_html/>
AllowOverride All
Order allow,deny
Allow from all
Options All +SymLinksIfOwnerMatch +FollowSymLinks +ExecCGI -Indexes -MultiViews
</Directory>
<Directory /srv/www/mysitename.com/public_html/mt/>
AllowOverride All
Order allow,deny
Allow from all
Options All +SymLinksIfOwnerMatch +FollowSymLinks +ExecCGI -Indexes -MultiViews
</Directory>