Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Помогите новичку: Cgi-скрипты на Apache

Ответить
Настройки темы
Помогите новичку: Cgi-скрипты на Apache

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите, пожалуйста, что необходимо для работы Cgi скриптов на Localhost'е.
Уже имеется Apache 2.0; Active Perl 5.8.
Но при вызове любой cgi или pl страницы выдается следующее:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, localhost@127.0.0.1 and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Apache/2.0.43 Server at localhost Port 80

В "server log" написано что файл не найден, хотя все на месте и адреса прописаны правильно.
А после каких-то манипуляций с конфигурационным файлом Apache он выдал, что у меня нет прав на доступ к файлу.
Помогите пожалуйста разобраться.
С благодарностью.
DAG.
P.S. Конфигурационный файл брал из обучающей статьи, на всякий случай привожу его здесь:
Цитата:
# Устанавливаем SSI, для файлов с расширением shtm и shtml
AddType text/html .shtm .shtml
AddOutputFilter INCLUDES .shtm .shtml

# Даём знать веб серверу, что у нас есть PHP интерпретатор
ScriptAlias /php4/ "D:/server/php4/"
Action application/x-httpd-php4 "/php4/php.exe"

# Устанавливаем расширения для PHP скриптов
AddType application/x-httpd-php4 .htm .html .php .php3 .php4 .phtm .phtml
# Папка куда установлен наш веб сервер
ServerRoot "D:/server/Apache2"

PidFile logs/httpd.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
HostnameLookups Off

# Порт, который слушает наш веб сервер
Listen 80

# Модули
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule userdir_module modules/mod_userdir.so

# E-mail адрес админа веб сервера (поменяйте на свой)
ServerAdmin localhost@127.0.0.1

# Наш сервер:порт
ServerName localhost:80

UseCanonicalName Off

# Папка, где будут храниться наши html, php и другие файлы
DocumentRoot "D:/server/asesite/local publish"

# Индексные файлы, через пробел
DirectoryIndex index.htm index.html index.shtm index.shtml index.php index.php3 index.php4

# Имя встроенного конфигурационного файла
AccessFileName .htaccess

# Закрываем доступ к файлам конфигурации (.htaccess) и паролей (.htpasswd)
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

# База с типами файлов
TypesConfig conf/mime.types

# Тип всех документов - текстовый
DefaultType text/plain

<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>

# Файл отчёта с ошибками
ErrorLog logs/error.log

# Что записывать в файл отчёта, может принимать следующие значения:
# debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn

# Шаблон записи строки в файл отчёта
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# Файл отчёта со списком всех доступов к веб серверу
CustomLog logs/access.log common

ServerTokens Full

# Подпись веб сервера (On - включена, Off - отключена, EMail - показывать e-mail админа сервера)
ServerSignature On

# Виртуальные папки
# Например:
# Alias /icons/ "d:/server/Apache2/icons/"
# Зайдя на http://localhost/icons/ мы увидем содержимое папки d:/server/Apache2/icons/
Alias /icons/ "D:/server/Apache2/icons/"

# Папка длс CGI, для PERL скриптов
ScriptAlias /cgi-bin/ "D:/server/asesite/local publish/cgi-bin/"
<Directory "D:/server/asesite/local publish/cgi-bin/">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

# Выбираем иконки для различных форматов
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^

# Иконка для неизвестных форматов
DefaultIcon /icons/unknown.gif

# Если выводится содержимое какой-либо папки, cчитываются файлы описания:
ReadmeName README.html
HeaderName HEADER.html

# Файлы для игнорирования, при выводе листинга директории
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

AddEncoding x-compress Z
AddEncoding x-gzip gz tgz

# Наша кодировка
AddDefaultCharset WINDOWS-1251

# CGI, PERL скрипты
AddHandler cgi-script .cgi .pl

Отправлено: 05:21, 29-01-2006

 

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Вот посмотрите на этот кусок конфига
Цитата:
# Папка длс CGI, для PERL скриптов
ScriptAlias /cgi-bin/ "D:/server/asesite/local publish/cgi-bin/"
<Directory "D:/server/asesite/local publish/cgi-bin/">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Здесь указывается папка, в которой должны лежать все cgi скрипты
Вы кладёте именно в эту папку??

Вне этой папки cgi скрипты не будут обрабатываться

Можно сделать также, чтобы cgi скрипты в любой папке обрабатывались

-------
Fortes fortuna adiuvat


Отправлено: 12:07, 29-01-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Скрипт выдает заголовки?

print "Content-type: text/html\n\n";

Отправлено: 12:29, 30-01-2006 | #3


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


vadimiron
Разумеется в cgi-bin кладу (точнее в одну из ее подпапок, так ведь можно?).
Цитата:
Можно сделать также, чтобы cgi скрипты в любой папке обрабатывались
Любопытно. И как?

benya
Если я правильно понял вопрос, то нет. Он вообще не видит ничего из папки cgi-bin.
Пробовал задать ее как виртуальную папку (ч\з Alias /cgi-bin/ "D:/server/asesite/local publish/cgi-bin/") - тогда говорит, что нет прав.

Отправлено: 00:54, 31-01-2006 | #4


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


ASE DAG
добавьте в нужную папку файл .htaccess со строчкой Options +ExecCGI

-------
Fortes fortuna adiuvat


Отправлено: 01:44, 31-01-2006 | #5


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Вобщем так - тема уже избитая на всех форумах.
Если это windows:
Устанавливаем Apache
Устанавливаем Active Perl
Закидываем скрипт в папку, вернее лучше что-то типа:
Код: Выделить весь код
#!/usr/bin/perl #подставить свой путь если другой
print "Content-type: text/html\n\n";
print "Hello World!";
Запускаем в браузере - радуемся. Сохраняем на всяк случай резервный конфиг и только потом лазим и создаем виртуальные хосты или разрешаем .htaccess (по умолчанию на сколько помню запрещена).
Если UNIX:
Выбираем нужные пакеты и копируем скрипт - запускаем, радуемся Ничего сложного.

Отправлено: 11:13, 31-01-2006 | #6


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


vadimiron
Извиняюсь, нужная папка это cgi-bin?, если да, то не помогло.
benya
Цитата:
#!/usr/bin/perl #подставить свой путь если другой
Спасибо! Подставил - стало работать (вроде-бы).
Но без этого никак нельзя? Иначе надо менять адрес в нес-ких десятках файлах, потом переносить их на другой компьютер, снова менять...

Отправлено: 16:17, 02-02-2006 | #7


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Если Вы работаете на Windows ставьте сразу Perl в папку близкую по путям Unix тоесть как правило (стандартно) c:\usr\
Тогда и переставлять ничего не придется. Все будет соответствовать #!/usr/bin/perl
А если много переставлять - загоняем все скрипты в текстовый редактор -> Поиск/Замена -> заменить во всех документах. И не мучаться.

Отправлено: 18:01, 02-02-2006 | #8


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Если в конфиге апача прописать
PHP код: Выделить весь код

ScriptInterpreterSource registry 


то не надо точный адрес указывать
Просто достаточно #!/usr/bin/perl, и если там не нашёлся перл, то апач будет искать в регистре правильный путь

-------
Fortes fortuna adiuvat


Отправлено: 20:02, 02-02-2006 | #9


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


benya
Не переставлять же их вручную. Я так и делаю, но это все-равно менять надо.

vadimiron
Большое спасибо!

Отправлено: 13:29, 04-02-2006 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Помогите новичку: Cgi-скрипты на Apache

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Помогите новичку Тата Лечение систем от вредоносных программ 1 04-11-2009 14:25
FreeBSD - Помогите новичку настроить Apache+PHP4 IMAXI Общий по FreeBSD 6 09-11-2007 17:41
помогите новичку с Apache`м! jussepe Вебмастеру 32 20-09-2007 22:19
Помогите новичку:) kop4enyi Вебмастеру 6 26-10-2006 22:52
PHP как CGI под Apache на Windows Mr666 Вебмастеру 1 01-02-2005 06:30




 
Переход