Я установил Apache 2.2.22 в Ubuntu 12.04. Но в браузере, когда я набираю localhost, он дает файл index.pl для загрузки вместо его выполнения. Что я пробовал:
1. chmod 755 index.pl
2. Добавление строки DirectoryIndex index.pl index.html в etc / apache2 / site-available / example.com, которая в итоге выглядит как показано ниже.
Я делал это раньше на Windows-машине. Но структура каталогов отличается в Windows и Ubuntu. Файл Httpd.conf пустой в Ubuntu. И при поиске по каталогам я не нашел. файлов, похожих на файл конфигурации. Поэтому я не совсем понимаю, где именно я должен вносить изменения в конфигурацию.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/example.com/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/example.com/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
# This line was added by me
DirectoryIndex index.html index.pl
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Вы не объяснили, где находится ваш файл index.pl в иерархии файлов, но я предполагаю, что он есть в вашем DocumentRoot.
Проблема в том, что ваш каталог DocumentRoot традиционно используется для обслуживания статических документов. По соображениям безопасности файлы в иерархии DocumentRoot никогда не обрабатываются (т.е. выполняются), а файлы в каталоге ScriptAlias никогда не обрабатываются статически.
Вам необходимо отделить исполняемый контент (perl, php, sh) от статически обслуживаемого контента (html-файлы, изображения, css, js) - чтобы веб-сервер знал, что файлы находятся в «this» каталоге и ниже don ». не нужно обрабатывать (например, изображения), а файлы в этом каталоге делают.
Для этого:
Вывод html вашего index.pl по-прежнему может ссылаться на изображения и т. Д. Из корня (например, помещать папку изображений в корневую папку вашего документа и ссылаться на изображения из html как /images/logo.png), и сценарии могут быть связаны с (через отправку формы или href) из вашего HTML-содержимого из папки сценария (например, как /cgi-bin/processform.pl)