В общем у меня такя проблема. На станичке сайта есть окошко в которой при загрузке должна появлятся одна из шести таблиц в разном порядке. Так вот она не отображается, а вместо нее вот это
[an error occurred while processing this directive].
А в логах пишет вот это
[Thu Jan 13 16:46:44 2005] [error] [client 212.5.4.100] invalid CGI ref "srv/www/cgi-bin/messager.cgi" in /srv/www/htdocs/ru/main/index.shtml
Невозможно создать файл блокировки: Permission denied at /srv/www/cgi-bin/stat/stat.pl line 24.[Thu Jan 13 16:46:44 2005] [error] [client 212.5.4.100] Premature end of script headers: /srv/www/cgi-bin/stat/stat.pl
Невозможно создать файл блокировки: Permission denied at /srv/www/cgi-bin/messager.cgi line 51.Страница указывает на вот этот файл messager.cgi
<!--col_start-->
<!--#exec cgi="srv/www/cgi-bin/messager.cgi"-->
<!--col_end-->
<!--main_end-->вот часть этого файла.
#!/usr/bin/perl -wuse Fcntl qw(:flock);
#Config Section
my $stat_file = '/srv/www/cgi-bin/logs/messager.txt';my $lockfile = "block.txt";
my $files_path = '/srv/www/htdocs/ru/includes/';
my @files = ('col1.inc',
'col2.inc',
'col3.inc',
'col4.inc',
'col5.inc',
'col6.inc');
#End of Config SectionПроблема возникла после переустановки линукса, до этого всё работало.
Возможно, неправильно выставлены permissions в той директории, где создаётся block.txt. В логах, кажется, так и сказано.
Так там вроде все нормально. Вот строки 24
sub get_lock
{
open (LOCK, ">$lockfile") || die "Невозможно создать файл блокировки: $!";
flock (LOCK, LOCK_EX) || die "Невозможно заблокировать файл: $!";
}line 51
sub get_lock
{
open (LOCK, ">$lockfile") || die "Невозможно создать файл блокировки: $!";
flock (LOCK, LOCK_EX) || die "Невозможно заблокировать файл: $!";
}Подскажите хоть где ичего смотреть и как оно должно выглядеть. Если надо то могу выложить конфиги файлов.
Help!!
Да ещё права на файлы стоят 755. Как вроде и должно быть.
> Да ещё права на файлы стоят 755. Как вроде и должно
>быть.Ну да, на файлы... А права на каталог проверяли?
Да... и ещё... Кто владелец каталога? Вобщем надо изменить владельца того каталога на apache и выставить права 755.
>Так там вроде все нормально. Вот строки 24Нормально, это как?
>sub get_lock
> {
> open (LOCK, ">$lockfile") || die "Невозможно создать файл блокировки: $!";
> flock (LOCK, LOCK_EX) || die "Невозможно заблокировать файл:
>$!";И этих строк видно, что файл создаётся в том же каталоге, где лежит скрипт. Разрешите апачу писать в этот каталог и всё будет.
>Подскажите хоть где ичего смотреть и как оно должно выглядеть. Если надо
>то могу выложить конфиги файлов.
>Help!!Конфиги каких файлов Вы собрались вылаживать? :)
>>Так там вроде все нормально. Вот строки 24
>
>Нормально, это как?
>
>>sub get_lock
>> {
>> open (LOCK, ">$lockfile") || die "Невозможно создать файл блокировки: $!";
>> flock (LOCK, LOCK_EX) || die "Невозможно заблокировать файл:
>>$!";
>
>И этих строк видно, что файл создаётся в том же каталоге, где
>лежит скрипт. Разрешите апачу писать в этот каталог и всё будет.
>Как это сделать объясни плиз. И права на все каталоги 755 так что тут все нормально.
>Как это сделать объясни плиз. И права на все каталоги 755 так
>что тут все нормально.
su
chown apache:apache /your/path/name
>>Как это сделать объясни плиз. И права на все каталоги 755 так
>>что тут все нормально.
>
>
>su
>chown apache:apache /your/path/name
Чего то я не понял это где посать то надо???
Если в командной строке то выдает такое сообщение invalid user
>Если в командной строке то выдает такое сообщение invalid userтогда узнайте uid и gid апача и подставьте <uid>:<gid> вместо apache
может он у Вас по другому называется просто...
ну, или поставьте на каталог разрешения 777 %))uid и gid можно добыть в файле /etc/passwd
выдержка из файла:
root:x:<uid>:<gid>:root:/root:/bin/bash
...
и т.д.
...
bin:x:1:1:bin:/bin:/bin/sh
daemon:x:2:2:daemon:/sbin:/bin/sh
adm:x:3:4:adm:/var/adm:/bin/sh
...
apache:x:72:72:system user for apache-conf:/var/www:/bin/sh
...
Kak это узнать. )) Если pidof httpd тол он выдает к примеру 11111 11111 1111 три вида.
Млин ничего не получается (((((
/your/path/name
это так и должно быть или мне нужно вписать свои имена?
Народ так чего больше нет никаких предложений!!!!1
>Народ так чего больше нет никаких предложений!!!!pidof Вам не надо, залезьте в /etc/passwd и найдите там httpd, если он у
Вас так называется. Где находится User id и Group id, я Вам показывал.
Если вы найдёте httpd в этом файле, то сделатйте так:chown httpd:httpd /Естественно/Ваш/путь/до/каталога/надо/сюда/писать
или
chown <uid>:<gid> /ваш_путь/до/каталога
например у меня это выглядит так:
chown apache:apache /var/www/cgi-bin/forum
или
chown 72:72 /var/www/cgi-bin/forumгде 72:72 это uid и gid соответственно.
uid может отличаться от gid если apache находится в группе с другим пользователем!синтаксис команды chown таков:
chown [ключ] владелец[:[группа]] /файл/или/каталог
Вы и сами можете это узнать набрав в консоли "chown --h" (без кавычек!)
Если у Вас ничего не получается, временно
поставьте разрешения на нужный Вам каталог - 777
сделать это можно такchmod 777 /ваш/путь/до/каталога
И стучитесь ко мне в аську 99899260
Если я буду на рабочем месте, то постараюсь помочь Вам.
К сожалению, я нахожусь в далёком Иркутске (разница с Москвой 5 часов) и рабочее время у нас заканчивается раньше (в 15:00 по Москве), так что я не могу отвечать на сообщения позже этого времени.С уважением,
Invisib1e M@n ©
>>chown apache:apache /your/path/name
>Чего то я не понял это где посать то надо???
>Если в командной строке то выдает такое сообщение invalid userВ скрипте напиши полный путь в $lockfile, например
my $lockfile = "/your/path/name/block.txt";
Потом загляни в httpd.conf, ищи параметры User и Group. У меня это www-data, поэтому я напишу:su
chown -R www-data.www-data /your/path/name