Триста раз проверил по апачевскому мануалу httpd.conf, permissions - ну всё правильно.
Но Firefox выдаёт только текст сgi-файла.На всякий случай, содержание httpd.conf:
AddHandler cgi-script .cgi .pl
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride All
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>first.cgi:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";
>[оверквотинг удален]
> <Directory "/usr/local/apache2/cgi-bin">
> AllowOverride All
> Options +ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
> first.cgi:
> #!/usr/bin/perl
> print "Content-type: text/html\n\n";
> print "Hello, World.";chmod +x first.cgi и будет работать
>[оверквотинг удален]
>> AllowOverride All
>> Options +ExecCGI
>> Order allow,deny
>> Allow from all
>> </Directory>
>> first.cgi:
>> #!/usr/bin/perl
>> print "Content-type: text/html\n\n";
>> print "Hello, World.";
> chmod +x first.cgi и будет работатьК сожалению, нет.
модуль?
>[оверквотинг удален]
>>> Options +ExecCGI
>>> Order allow,deny
>>> Allow from all
>>> </Directory>
>>> first.cgi:
>>> #!/usr/bin/perl
>>> print "Content-type: text/html\n\n";
>>> print "Hello, World.";
>> chmod +x first.cgi и будет работать
> К сожалению, нет.если модуль подгружен то должно работать. если FF дает закачать, значит cgi файл не обрабатывается обработчиком, т.е. perl'ом.
вообще в системе есть perl? он точно по пути /usr/bin/perl? (а может быть /usr/local/bin/perl если учитывать что это FreeBSD)
which perl в студию
> Options +ExecCGIХмм, какбэ плюсик в этой строке ненужен, лишний он там.
>> Options +ExecCGI
> Хмм, какбэ плюсик в этой строке ненужен, лишний он там.Без плюсика тоже не работает :(
>>> Options +ExecCGI
>> Хмм, какбэ плюсик в этой строке ненужен, лишний он там.
> Без плюсика тоже не работает :(Поставлю вопрос шире:
может ли CGI скрипт не работать, если httpd.conf, first.cgi и его permissions абсолютно правильные?
Если да, то как это диагностировать?
>>>> Options +ExecCGI
>>> Хмм, какбэ плюсик в этой строке ненужен, лишний он там.
>> Без плюсика тоже не работает :(
> Поставлю вопрос шире:
> может ли CGI скрипт не работать, если httpd.conf, first.cgi и его permissions
> абсолютно правильные?
> Если да, то как это диагностировать?А что-либо типо этого в httpd.conf присутствует?
LoadModule perl_module libexec/apache22/mod_perl.so
>>>>> Options +ExecCGI
>>>> Хмм, какбэ плюсик в этой строке ненужен, лишний он там.
>>> Без плюсика тоже не работает :(
>> Поставлю вопрос шире:
>> может ли CGI скрипт не работать, если httpd.conf, first.cgi и его permissions
>> абсолютно правильные?
>> Если да, то как это диагностировать?
> А что-либо типо этого в httpd.conf присутствует?
> LoadModule perl_module libexec/apache22/mod_perl.so[root@localhost conf]# /usr/local/apache2/bin/apachectl -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.cДобавка LoadModule perl_module libexec/apache22/mod_perl.so ведет к ошибке
[root@localhost conf]# /usr/local/apache2/bin/apachectl -k restart
httpd: Syntax error on line 56 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/libexec/apache22/mod_perl.so into server: /usr/local/apache2/libexec/apache22/mod_perl.so: cannot open shared object file: No such file or directory
>[оверквотинг удален]
> mod_dir.c
> mod_actions.c
> mod_userdir.c
> mod_alias.c
> mod_so.c
> Добавка LoadModule perl_module libexec/apache22/mod_perl.so ведет к ошибке
> [root@localhost conf]# /usr/local/apache2/bin/apachectl -k restart
> httpd: Syntax error on line 56 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/libexec/apache22/mod_perl.so
> into server: /usr/local/apache2/libexec/apache22/mod_perl.so: cannot open shared object
> file: No such file or directoryTo install the port: cd /usr/ports/www/mod_perl2/ && make install clean
To add the package: pkg install www/mod_perl2
>[оверквотинг удален]
>> mod_userdir.c
>> mod_alias.c
>> mod_so.c
>> Добавка LoadModule perl_module libexec/apache22/mod_perl.so ведет к ошибке
>> [root@localhost conf]# /usr/local/apache2/bin/apachectl -k restart
>> httpd: Syntax error on line 56 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/libexec/apache22/mod_perl.so
>> into server: /usr/local/apache2/libexec/apache22/mod_perl.so: cannot open shared object
>> file: No such file or directory
> To install the port: cd /usr/ports/www/mod_perl2/ && make install clean
> To add the package: pkg install www/mod_perl2у меня в /usr/ нет папки ports ...
что за групповой психоз?
cgi настраиваем, причем тут mod_perl?
> что за групповой психоз?
> cgi настраиваем, причем тут mod_perl?Ну может трояна ему хотят повесить, или ноду ботовую :)
>>> Поставлю вопрос шире:
>>> может ли CGI скрипт не работать, если httpd.conf, first.cgi и его permissions
>>> абсолютно правильные?
>>> Если да, то как это диагностировать?У вас апач 2.0? Да ещё и не из портов ставленный?
М-да, однако..
Без модперл перл скрипты не заработают, (сам перл, надеюсь, установлен?)
ну давайте, хоть, цги скрипты проверимсоздайте для проверки date.cgi
touch /usr/local/apache2/cgi-bin/date.cgi
chmod 555 /usr/local/apache2/cgi-bin/date.cgiв нём пишем следующее
#!/bin/sh
echo "Content-type: text/html"
echo
echo "Today is "
dateпроверяем, набиваем в браузере http:// чего-то.там/cgi-bin/date.cgi
>[оверквотинг удален]
> создайте для проверки date.cgi
> touch /usr/local/apache2/cgi-bin/date.cgi
> chmod 555 /usr/local/apache2/cgi-bin/date.cgi
> в нём пишем следующее
> #!/bin/sh
> echo "Content-type: text/html"
> echo
> echo "Today is "
> date
> проверяем, набиваем в браузере http:// чего-то.там/cgi-bin/date.cgiВсё сделал.
В браузере вижу текст date.cgi
Я открываю локально.
> Без модперл перл скрипты не заработают, (сам перл, надеюсь, установлен?)эт чейта вдрух?
>> Без модперл перл скрипты не заработают, (сам перл, надеюсь, установлен?)
> эт чейта вдрух?Патамучта они профисиоАНАЛы? :)
> Если да, то как это диагностировать?Стесняюсь спросить, но...
А у вас mod_cgi.so загружен?
Расшифрую сообщение выше:
>Сообщение от Pahanivo (ok) on 01-Июн-15, 16:59
>модуль?
> Триста раз проверил по апачевскому мануалу httpd.conf, permissions - ну всё правильно.
> Но Firefox выдаёт только текст сgi-файла.Кеш ff почистить или перечитать страницу "с шифтом"?
> На всякий случай, содержание httpd.conf:
> AddHandler cgi-script .cgi .pl
> <Directory "/usr/local/apache2/cgi-bin">
> AllowOverride All
> Options +ExecCGIКакая версия апача? Может, "мануал" не от той верисии?
> first.cgi:
Ну, и коронное: FreeBSD??
> Ну, и коронное: FreeBSD??ну всё, началось )), сейчас гнобить будет
>> Ну, и коронное: FreeBSD??
> ну всё, началось )), сейчас гнобить будетЗачем, оно само справляется. Ну, можно язефира с клоуном позвать - пусть помогают.
Ща все трололо испортите!! А ну тссссс!
ServerRoot "/usr/local/apache2"
Listen 80
AddHandler cgi-script .cgi .pl
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon
Group daemon
</IfModule>
</IfModule>
ServerAdmin you@example.com
DocumentRoot "/usr/local/apache2/htdocs"
AddHandler cgi-script .cgi
<Directory />
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" common
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
AddHandler cgi-script .cgi .pl
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
DefaultType text/plain
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddHandler cgi-script .cgi
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
мои 5 копеек/usr/local/bin/perl
перл переехал в локал
в каталог со скриптом положить для тестов
.htaccess со строчкой Options +ExecCGI
ещё логи можно посмотреть, хотя это уже, конечно, слишком
> ещё логи можно посмотреть, хотя это уже, конечно, слишком[root@localhost apache2]# tail logs/access_log
127.0.0.1 - - [31/May/2015:13:13:53 +0300] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [31/May/2015:13:13:53 +0300] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [31/May/2015:13:14:13 +0300] "GET / HTTP/1.1" 200 44
127.0.0.1 - - [31/May/2015:16:20:41 +0300] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [31/May/2015:16:20:41 +0300] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [31/May/2015:16:20:51 +0300] "GET / HTTP/1.1" 304 -
127.0.0.1 - - [31/May/2015:22:11:37 +0300] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [31/May/2015:22:11:37 +0300] "GET /favicon.ico HTTP/1.1" 404 209
127.0.0.1 - - [01/Jun/2015:15:06:38 +0300] "GET /favicon.ico HTTP/1.1" 404 209[root@localhost apache2]# tail logs/error_log
[Mon Jun 01 17:42:17 2015] [notice] caught SIGTERM, shutting down
[Mon Jun 01 21:38:05 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal operations
[Mon Jun 01 21:38:08 2015] [notice] SIGHUP received. Attempting to restart
[Mon Jun 01 21:38:08 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal operations
[Mon Jun 01 20:58:30 2015] [notice] caught SIGTERM, shutting down
[Mon Jun 01 20:58:33 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal operations
[Mon Jun 01 20:59:04 2015] [notice] caught SIGTERM, shutting down
[Mon Jun 01 20:59:05 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal operations
[Mon Jun 01 21:25:14 2015] [notice] caught SIGTERM, shutting down
[Mon Jun 01 21:25:16 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal operationsПопытка просмотреть cgi файл в браузере никаких следов не оставляет.
>[оверквотинг удален]
> [Mon Jun 01 20:58:30 2015] [notice] caught SIGTERM, shutting down
> [Mon Jun 01 20:58:33 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal
> operations
> [Mon Jun 01 20:59:04 2015] [notice] caught SIGTERM, shutting down
> [Mon Jun 01 20:59:05 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal
> operations
> [Mon Jun 01 21:25:14 2015] [notice] caught SIGTERM, shutting down
> [Mon Jun 01 21:25:16 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal
> operations
> Попытка просмотреть cgi файл в браузере никаких следов не оставляет.я конечно понимаю что тут некоторым нравится театр абсурда, но лично вас не смущает что еррор и ацес лог толичаются по времени НА СУТКИ? вас не смущает что скрипты вы настраиваете сегодня а логи смотрите за вчера?
>[оверквотинг удален]
>> [Mon Jun 01 20:59:05 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal
>> operations
>> [Mon Jun 01 21:25:14 2015] [notice] caught SIGTERM, shutting down
>> [Mon Jun 01 21:25:16 2015] [notice] Apache/2.2.29 (Unix) configured -- resuming normal
>> operations
>> Попытка просмотреть cgi файл в браузере никаких следов не оставляет.
> я конечно понимаю что тут некоторым нравится театр абсурда, но лично вас
> не смущает что еррор и ацес лог толичаются по времени НА
> СУТКИ? вас не смущает что скрипты вы настраиваете сегодня а логи
> смотрите за вчера?смущает. и я не знаю, в чём проблема.
я переустановил
yum install httpdhttpd.conf и permissions все по апаче-мануалу проверил тристопервый раз.
со всеми этими
1) Options ExecCGI,
2) ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
3) AddHandler cgi-script .cgiПопытка посмотреть cgi файл в firefox не оставляет никаких следов в логах:
[root@localhost cgi-bin]# tail /var/log/httpd/error_log
[Mon Jun 01 22:31:50.116878 2015] [so:warn] [pid 6162] AH01574: module cgi_module is already loaded, skipping
[Mon Jun 01 22:31:50.117846 2015] [auth_digest:notice] [pid 6162] AH01757: generating secret for digest authentication ...
[Mon Jun 01 22:31:50.118488 2015] [lbmethod_heartbeat:notice] [pid 6162] AH02282: No slotmem from mod_heartmonitor
[Mon Jun 01 22:31:50.119939 2015] [mpm_prefork:notice] [pid 6162] AH00163: Apache/2.4.10 (Fedora) configured -- resuming normal operations
[Mon Jun 01 22:31:50.119964 2015] [core:notice] [pid 6162] AH00094: Command line: 'httpd'
[Mon Jun 01 22:37:12.113411 2015] [mpm_prefork:notice] [pid 6162] AH00173: SIGHUP received. Attempting to restart
[Mon Jun 01 22:37:12.120174 2015] [auth_digest:notice] [pid 6162] AH01757: generating secret for digest authentication ...
[Mon Jun 01 22:37:12.120903 2015] [lbmethod_heartbeat:notice] [pid 6162] AH02282: No slotmem from mod_heartmonitor
[Mon Jun 01 22:37:12.122209 2015] [mpm_prefork:notice] [pid 6162] AH00163: Apache/2.4.10 (Fedora) configured -- resuming normal operations
[Mon Jun 01 22:37:12.122240 2015] [core:notice] [pid 6162] AH00094: Command line: 'httpd'
[root@localhost cgi-bin]# tail /var/log/httpd/access_log
127.0.0.1 - - [01/Jun/2015:22:25:12 +0300] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (X11; Linux i686; rv:32.0) Gecko/20100101 Firefox/32.0"
[root@localhost cgi-bin]#
клево, а где хоть кокой-то намек в логе на обращение к скрипту?
> клево, а где хоть кокой-то намек в логе на обращение к скрипту?подозрительно это все...
> 2) ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"Вы на этот алиас прописали в конфиге разрешение выполнения скриптов?
Раньше он у вас был другой:
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
</Directory>В конфиге присутствует строка
LoadModule cgi_module modules/mod_cgi.so
?
Если ее там нет- то механизм cgi просто не задействован. Механизм modperl как выше выяснилось - не был задействован.
попробуйте запустить свой скрипт в консоли.. он вообще работает?
посмотрите логи system и messagesдаже если ваш скрипт показывается текстом а не выполняется- в логах апача обязан появиться сигнал об обращении к нему- с ошибкой или нет - но обязан.
вы уверены что ваш апачь- действительно ЭТОТ апач? он точно воспринял ЭТОТ конфиг?
Может вы правите не тот конфиг?
Может у вас уже чтото висит на 80 порту?
Может ваш сервер кладет логи в другое место вообще а те что вы смотрите - от чегото иного?убейте все процессы слушающие 80 порт.
запустите апач в консоли а не демоном, указав ему конкретный конфигурационный файлвоткните SetHandler cgi-script прямо в директорию, вот так:
<Directory "/usr/local/apache2/cgi-bin">
SetHandler cgi-script
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Еще раз прочтите http://httpd.apache.org/docs/2.4/howto/cgi.html
> вы уверены что ваш апачь- действительно ЭТОТ апач? он точно воспринял ЭТОТ
> конфиг?
> Может вы правите не тот конфиг?
> Может у вас уже чтото висит на 80 порту?
> Может ваш сервер кладет логи в другое место вообще а те что
> вы смотрите - от чегото иного?я давно намекаю автору что тут что-то не так ...
>[оверквотинг удален]
> запустите апач в консоли а не демоном, указав ему конкретный конфигурационный файл
> воткните SetHandler cgi-script прямо в директорию, вот так:
> <Directory "/usr/local/apache2/cgi-bin">
> SetHandler cgi-script
> AllowOverride All
> Options ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
> Еще раз прочтите http://httpd.apache.org/docs/2.4/howto/cgi.htmlпопытался добавить mod_perl:
[root@localhost cgi-bin]# httpd -k restart
httpd: Syntax error on line 59 of /etc/httpd/conf/httpd.conf: Cannot load modules/mod_perl.so into server: /etc/httpd/modules/mod_perl.so: cannot open shared object file: No such file or directory
>[оверквотинг удален]
>> Options ExecCGI
>> Order allow,deny
>> Allow from all
>> </Directory>
>> Еще раз прочтите http://httpd.apache.org/docs/2.4/howto/cgi.html
> попытался добавить mod_perl:
> [root@localhost cgi-bin]# httpd -k restart
> httpd: Syntax error on line 59 of /etc/httpd/conf/httpd.conf: Cannot load modules/mod_perl.so
> into server: /etc/httpd/modules/mod_perl.so: cannot open shared object file: No such file
> or directoryА зачем вы стали добавлять модперл? Я вас про него спрашивал?
Я вас спросил подключен ли модуль модЦГИ. Вы проверили?
Вы проверили остальные пункты о которых я вас спросил?
>[оверквотинг удален]
>>> </Directory>
>>> Еще раз прочтите http://httpd.apache.org/docs/2.4/howto/cgi.html
>> попытался добавить mod_perl:
>> [root@localhost cgi-bin]# httpd -k restart
>> httpd: Syntax error on line 59 of /etc/httpd/conf/httpd.conf: Cannot load modules/mod_perl.so
>> into server: /etc/httpd/modules/mod_perl.so: cannot open shared object file: No such file
>> or directory
> А зачем вы стали добавлять модперл? Я вас про него спрашивал?
> Я вас спросил подключен ли модуль модЦГИ. Вы проверили?
> Вы проверили остальные пункты о которых я вас спросил?Потому что у него
first.cgi:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";Он видимо даже не удосужился проверить простой cgi скрипт:
#!/bin/sh
echo "Content-type: text/html"
echo
echo "Today is "
date
>[оверквотинг удален]
> first.cgi:
> #!/usr/bin/perl
> print "Content-type: text/html\n\n";
> print "Hello, World.";
> Он видимо даже не удосужился проверить простой cgi скрипт:
> #!/bin/sh
> echo "Content-type: text/html"
> echo
> echo "Today is "
> date#!/bin/sh
echo "Content-type: text/html"
echo
echo "Today is "
dateсделано.
Выдаёт исходный текст, как и с предыдущей версией.
>> 2) ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
> Вы на этот алиас прописали в конфиге разрешение выполнения скриптов?
> Раньше он у вас был другой:
> <Directory "/usr/local/apache2/cgi-bin">
> AllowOverride All
> Options ExecCGI
> Order allow,deny
> Allow from all
> </Directory>Я поставил апач 2.4
Соответсвтенно, /usr/local/apache2/cgi-bin поменялся на /var/www/cgi-bin/.> В конфиге присутствует строка
> LoadModule cgi_module modules/mod_cgi.so
> ?
> Если ее там нет- то механизм cgi просто не задействован. Механизм modperl
> как выше выяснилось - не был задействован.Если добавляю эту строку, то
[Tue Jun 02 11:19:15.923296 2015] [so:warn] [pid 4642] AH01574: module cgi_module is already loaded, skipping> попробуйте запустить свой скрипт в консоли.. он вообще работает?
> посмотрите логи system и messagesСкрипт работает с консоли.
> даже если ваш скрипт показывается текстом а не выполняется- в логах апача
> обязан появиться сигнал об обращении к нему- с ошибкой или нет
> - но обязан.Ну нет его там, хот расшибись. И я подозреваю, что именно тут где то собака и порылась.
Но в чём проблема пока не понимаю.> вы уверены что ваш апачь- действительно ЭТОТ апач? он точно воспринял ЭТОТ
> конфиг?
> Может вы правите не тот конфиг?Он ест этот конфиг при перезапуске, т.к. выдаёт предупреждения при откомменчивании - закомменчивании типа
[Tue Jun 02 11:19:15.923296 2015] [so:warn] [pid 4642] AH01574: module cgi_module is already loaded, skipping
[Tue Jun 02 11:19:15.923384 2015] [so:warn] [pid 4642] AH01574: module perl_module is already loaded, skipping
> Может у вас уже чтото висит на 80 порту?
> Может ваш сервер кладет логи в другое место вообще а те что
> вы смотрите - от чегото иного?опять же, в error_log он фиксирует все перезапуски httpd.
> убейте все процессы слушающие 80 порт.
Как это можно сделать?
> запустите апач в консоли а не демоном, указав ему конкретный конфигурационный файл
Судя по реакции на закомменчивания - откомменчивания, он этот конфиг воспринимает.
> воткните SetHandler cgi-script прямо в директорию, вот так:
> <Directory "/usr/local/apache2/cgi-bin">
> SetHandler cgi-script
> AllowOverride All
> Options ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
> Еще раз прочтите http://httpd.apache.org/docs/2.4/howto/cgi.html
> Ну нет его там, хот расшибись. И я подозреваю, что именно тут
> где то собака и порылась.
> Но в чём проблема пока не понимаю.в конфиге апача есть строки
Include блаблабла
IncludeOptional блаблабла
вот эти вот блаблабла - это тоже конфиги апача.
Возможно ваша конечная конфигурация не совсем такая как вы ее себе представляете.>> убейте все процессы слушающие 80 порт.
> Как это можно сделать?netstat -tlnp|grep 80
покажет какой процесс висит на порту. запускать под рутом
>[оверквотинг удален]
> <Directory "/usr/local/apache2/cgi-bin">
> AllowOverride All
> Options +ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
> first.cgi:
> #!/usr/bin/perl
> print "Content-type: text/html\n\n";
> print "Hello, World.";<Directory "/usr/local/apache2/cgi-bin">
AddHandler cgi-script .cgi .pl
AllowOverride All
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>пробуйте
>[оверквотинг удален]
>> print "Content-type: text/html\n\n";
>> print "Hello, World.";
> <Directory "/usr/local/apache2/cgi-bin">
> AddHandler cgi-script .cgi .pl
> AllowOverride All
> Options +ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
> пробуйтеНе работает.
Мне кажется корень проблемы в том, что в логах он не показывает даже попытку открыть файл в браузере.
В чём здесь может быть дело?
И это при том, что он открывает в браузере localhost радостным криком "It works!".
>[оверквотинг удален]
>> Order allow,deny
>> Allow from all
>> </Directory>
>> пробуйте
> Не работает.
> Мне кажется корень проблемы в том, что в логах он не показывает
> даже попытку открыть файл в браузере.
> В чём здесь может быть дело?
> И это при том, что он открывает в браузере localhost радостным криком
> "It works!".в access логое есть записи что подключались с localhost?
тут у вас каша небольшая получилась. сперва у вас апач 2.2 был, теперь у вас апач 2.4. если все верно настроено то все должно работать.
в /usr/local/apache2/htdocs/ index.htm файл отредактируйте и потом посмотрите еще раз в браузере изменения отображаются или нет
>[оверквотинг удален]
>> даже попытку открыть файл в браузере.
>> В чём здесь может быть дело?
>> И это при том, что он открывает в браузере localhost радостным криком
>> "It works!".
> в access логое есть записи что подключались с localhost?
> тут у вас каша небольшая получилась. сперва у вас апач 2.2 был,
> теперь у вас апач 2.4. если все верно настроено то все
> должно работать.
> в /usr/local/apache2/htdocs/ index.htm файл отредактируйте и потом посмотрите еще раз
> в браузере изменения отображаются или нетда, я переставил апач с 2.2 на 2.4.
Слелал новый
/var/www/html/index.html
Страница открывается в браузере нормально.Но никаких следов ни в access_log, ни в error_logs нет:
[root@localhost html]# tail /var/log/httpd/access_log
127.0.0.1 - - [01/Jun/2015:22:25:12 +0300] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (X11; Linux i686; rv:32.0) Gecko/20100101 Firefox/32.0"[root@localhost html]# tail /var/log/httpd/error_log
[Tue Jun 02 11:19:11.374988 2015] [lbmethod_heartbeat:notice] [pid 4633] AH02282: No slotmem from mod_heartmonitor
[Tue Jun 02 11:19:11.376494 2015] [mpm_prefork:notice] [pid 4633] AH00163: Apache/2.4.10 (Fedora) mod_perl/2.0.9-dev Perl/v5.18.4 configured -- resuming normal operations
[Tue Jun 02 11:19:11.376517 2015] [core:notice] [pid 4633] AH00094: Command line: 'httpd'
[Tue Jun 02 11:19:15.941830 2015] [mpm_prefork:notice] [pid 4633] AH00173: SIGHUP received. Attempting to restart
[Tue Jun 02 11:19:15.958260 2015] [so:warn] [pid 4633] AH01574: module cgi_module is already loaded, skipping
[Tue Jun 02 11:19:15.958293 2015] [so:warn] [pid 4633] AH01574: module perl_module is already loaded, skipping
[Tue Jun 02 11:19:15.965505 2015] [auth_digest:notice] [pid 4633] AH01757: generating secret for digest authentication ...
[Tue Jun 02 11:19:15.966394 2015] [lbmethod_heartbeat:notice] [pid 4633] AH02282: No slotmem from mod_heartmonitor
[Tue Jun 02 11:19:15.967649 2015] [mpm_prefork:notice] [pid 4633] AH00163: Apache/2.4.10 (Fedora) mod_perl/2.0.9-dev Perl/v5.18.4 configured -- resuming normal operations
[Tue Jun 02 11:19:15.967667 2015] [core:notice] [pid 4633] AH00094: Command line: 'httpd'
> Но никаких следов ни в access_log, ни в error_logs нет:
> [root@localhost html]# tail /var/log/httpd/access_log
> [root@localhost html]# tail /var/log/httpd/error_logВ приведенном вами выше конфиге - логи находятся совсем в другом месте
ErrorLog "logs/error_log"
CustomLog "logs/access_log" common
>> Но никаких следов ни в access_log, ни в error_logs нет:
>> [root@localhost html]# tail /var/log/httpd/access_log
>> [root@localhost html]# tail /var/log/httpd/error_log
> В приведенном вами выше конфиге - логи находятся совсем в другом месте
> ErrorLog "logs/error_log"
> CustomLog "logs/access_log" commonПосле установки апача 2.4 httpd.conf такой:
ServerRoot "/etc/httpd"
Listen 80
LoadModule cgi_module modules/mod_cgi.so
LoadModule perl_module modules/mod_perl.so
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
<Directory />
AllowOverride All
Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride All
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
AddHandler cgi-script .cgi
<Directory "/var/www/cgi-bin">
AddHandler cgi-script .cgi .pl
SetHandler cgi-script
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddHandler cgi-script .cgi
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conferror_log фиксирует все перезапуски httpd.
> После установки апача 2.4 httpd.conf такой:Конфиг который вы показываете- не родной конфиг от 2.4
сохраните где нибудь свои конфиги апача.
сотрите все конфиги апача вместе с подкаталогами.
удалите апачь полностью.
поставьте апач заново.
убедитесь что новый, дефолтный конфиг апача встал на свое место.
настройте cgi по мануалу http://httpd.apache.org/docs/2.4/howto/cgi.html
перезапустите апачь.
запросите главную страничку своего сайта
проверьте что в логах есть записи об обращении к файламальтернативный вариант:
укажите путь к логам полным путем:ErrorLog "/var/log/my_apache_error_log"
CustomLog "/var/log/my_apache_access_log" commonобязательно чтобы файлы назывались иначе чем дефолтные.
Теперь все сообщения должны попадать в эти логи.
Если это будет не так- вернуться к исходному варианту с переустановкой и полным удалением старого конфига.
>[оверквотинг удален]
>> Order allow,deny
>> Allow from all
>> </Directory>
>> пробуйте
> Не работает.
> Мне кажется корень проблемы в том, что в логах он не показывает
> даже попытку открыть файл в браузере.
> В чём здесь может быть дело?
> И это при том, что он открывает в браузере localhost радостным криком
> "It works!".Берем в руки strace , запускаем apache и медленно медленно читаем выхлоп.
>[оверквотинг удален]
>>> Allow from all
>>> </Directory>
>>> пробуйте
>> Не работает.
>> Мне кажется корень проблемы в том, что в логах он не показывает
>> даже попытку открыть файл в браузере.
>> В чём здесь может быть дело?
>> И это при том, что он открывает в браузере localhost радостным криком
>> "It works!".
> Берем в руки strace , запускаем apache и медленно медленно читаем выхлоп.Выхлоп немеренных размеров.
А на что там нужно обратить внимание?
>[оверквотинг удален]
>>>> пробуйте
>>> Не работает.
>>> Мне кажется корень проблемы в том, что в логах он не показывает
>>> даже попытку открыть файл в браузере.
>>> В чём здесь может быть дело?
>>> И это при том, что он открывает в браузере localhost радостным криком
>>> "It works!".
>> Берем в руки strace , запускаем apache и медленно медленно читаем выхлоп.
> Выхлоп немеренных размеров.
> А на что там нужно обратить внимание?вызов open(...) и коды возврата
внимательно смотрим пути - все шо каacецца *.conf & *logделаем орг.выводы ...
P.S.:
из хoмяка рута
strace -ff -F -o .test.log { тут скрипт запуска apache или и бинарника }
>[оверквотинг удален]
> <Directory "/usr/local/apache2/cgi-bin">
> AllowOverride All
> Options +ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
> first.cgi:
> #!/usr/bin/perl
> print "Content-type: text/html\n\n";
> print "Hello, World.";А теперь, внимание, правильный ответ.
Если сослаться на cgi-файл из index.html, и через него, соответственно, открыть, то он работает корректно.
А если открывать cgi-файл прямо из браузера, то нет.
Здесь есть волшебники, у которых cgi файл исполняется, будучи открытым в браузере напрямую?
> Здесь есть волшебники, у которых cgi файл исполняется, будучи открытым в браузере
> напрямую?да. так и должно работать.
> Если сослаться на cgi-файл из index.html, и через него, соответственно, открыть, то
> он работает корректно.А как вы это сделали?
Браузер запрашивает файл
браузер парсит файл
браузер запрашивает все найденные ссылки НАПРЯМУЮ, в том числе и cgi.исключение из этого алгоритма составляет включение cgi скрипта как ssi
в этом случае сам сервер парсит html файл, и делает вызов cgi> Здесь есть волшебники, у которых cgi файл исполняется, будучи открытым в браузере
> напрямую?так и должно работать.
> так и должно работать.Не совсем понял, Вы решили эту сложнейшую проблему века или нет ?
>> так и должно работать.
> Не совсем понял, Вы решили эту сложнейшую проблему века или нет ?Думаю что ситуация только усугубилась.
> Здесь есть волшебники, у которых cgi файл исполняется, будучи открытым в браузере
> напрямую?бля, есть (да прости меня модератор!), можете считать меня таковым :)
пруф http://opennettest.inets.ru/fuckenmagic.plсам скрипт
#! /usr/local/bin/perl -w
print "Content-type:text/html\n\n";
print "<html><head><title>HELLO</title></head><body>";
print "Do u want some street magic?
";
print "Current unix time" . time;
print "</body></html>\n";полный конфиг (за искл. виртуальных хостов).
Listen 80
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule log_forensic_module modules/mod_log_forensic.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule ident_module modules/mod_ident.so
LoadModule mime_module modules/mod_mime.so
LoadModule status_module modules/mod_status.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module modules/libphp5.so
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User www
Group www
</IfModule>
</IfModule>
ServerAdmin you@example.com
DocumentRoot "/usr/local/apache2/htdocs"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" common
</IfModule>
<IfModule alias_module>
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
DefaultType text/plain
<IfModule mime_module>
AddType application/x-httpd-php .php
TypesConfig /usr/local/etc/apache2/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule !mpm_netware_module>
PidFile "logs/httpd.pid"
</IfModule>
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
LockFile "logs/accept.lock"
</IfModule>
</IfModule>
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 2
MaxSpareServers 3
MaxClients 100
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_beos_module>
StartThreads 10
MaxClients 50
MaxRequestsPerThread 10000
</IfModule>
<IfModule mpm_netware_module>
ThreadStackSize 65536
StartThreads 250
MinSpareThreads 25
MaxSpareThreads 250
MaxThreads 1000
MaxRequestsPerChild 0
MaxMemFree 100
</IfModule>
<IfModule mpm_mpmt_os2_module>
StartServers 2
MinSpareThreads 5
MaxSpareThreads 10
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxRequestsPerChild 0
</IfModule>
NameVirtualHost *:80
<VirtualHost *:80>
ServerName opennettest.inets.ru
ServerAdmin nobody@inets.ru
DocumentRoot /path/www/opennet/htdocs
ErrorLog /path/www/opennet/logs/error.log
CustomLog /path/www/opennet/logs/access.log combinedio
ScriptLog /path/www/opennet/logs/script.log
<Directory "/path/www/opennet">
<Files *.pl>
SetHandler cgi-script
</Files>
AllowOverride AuthConfig FileInfo Indexes Limit
Options +ExecCGI -FollowSymLinks -Includes -IncludesNOEXEC -Indexes -MultiViews -SymLinksIfOwnerMatch
Order Allow,Deny
Allow from All
</Directory>
</VirtualHost>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>FreeBSD
./httpd -v
Server version: Apache/2.2.14 (Unix)ну и логи
185.42.145.200 - - [02/Jun/2015:23:06:24 +0500] "GET /fuckenmagic.pl HTTP/1.1" 200 203 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36" 375 502
>> Здесь есть волшебники, у которых cgi файл исполняется, будучи открытым в браузере
>> напрямую?
> бля, есть (да прости меня модератор!), можете считать меня таковым :)
> пруф http://opennettest.inets.ru/fuckenmagic.pl"
- Знатоки современной науки, приблизились ли вы к разгадке тайны как робот ходит и говорит?
- Да, идиот! Коммутационная схема на обратной стороне твоей крышки!!!
" (с)Футурама
ну и где наш ТС?
> ну и где наш ТС?А был ли мальчик?
>> ну и где наш ТС?
> А был ли мальчик?Я 20 минут убил хост настроить )) А сучонок растворился в сети ))
> Я 20 минут убил хост настроить )) А сучонок растворился в сети > ))Голосом Шапокляк: "Хорошими дела-а-а-ами прославиться нельзя!" :)
>[оверквотинг удален]
>> first.cgi:
>> #!/usr/bin/perl
>> print "Content-type: text/html\n\n";
>> print "Hello, World.";
> А теперь, внимание, правильный ответ.
> Если сослаться на cgi-файл из index.html, и через него, соответственно, открыть, то
> он работает корректно.
> А если открывать cgi-файл прямо из браузера, то нет.
> Здесь есть волшебники, у которых cgi файл исполняется, будучи открытым в браузере
> напрямую?Все кончено? У нас тут целая интрига в ожидании...