Проблема с выполнением CGI-скриптов на Apache - PullRequest
3 голосов
/ 24 декабря 2010

Практически полный новичок в 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>

1 Ответ

3 голосов
/ 24 декабря 2010

Вы добавили mod-perl?

Добавьте эти строки

AddType perl-script .pl
AddHandler perl-script .htm

укажите DirectoryIndex

(вне блока Directory)

Areвы тоже используете vhosts?Я бы не стал поступать так, как ты, если честно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...