[PERL]Проблема создания файла под Линуксом

BASYARU
Дата: 14.08.2006 12:35:22
Есть скрипт который прекрасно работает если запускать его из командной строки (perl zom.pl), но не хочет правильно работать при запуске через вэб-интерфейс: говорит не могу открыть файл. Вот сам скрипт:
#!/usr/bin/perl
my $file="2.txt";
open(RES,">$file") || die "Cannot open file $file\n";
for(my $i=0;$i<100;$i++){
print RES "$i\n";
}
close(RES);
умирает на строчке создания файла
Проверил права - стоят 0777 и на папку и на скрипт. Сам он лежит в /var/www/cgi-bin/
Запускается строчкой: <INPUT class="button" TYPE="submit" VALUE="2" onClick="GRrexp=window.open('zom.pl')">
С горя вышел в корень и вообще поставил chmod -R -c 0777 var но не помогло =(

Такое чуство что чтот неправильно в настройках апача, потому что из командной строки все работает прекрасно
^ozzy^
Дата: 15.08.2006 10:14:31
Проверь еще на всякий случай owner'а и group на папку в которой пытаешься создать файл.
И посмотри что возвращается в $!:
open(RES,">$file") || die "Cannot open file $file: $!\n";
BASYARU
Дата: 15.08.2006 17:48:12
Проверил - права на папку и все файлы в ней 0777 а владелец apach
В $! возвращается Permission denied =( Что вобщем и так было очевидно. Кстати проверил - он может открыть на чтение уже созданный файл если там права на чтения стоят конечно, но ни на записиь ни на дописывание файла открыть не может. Может сделать чтоб апач работал от имени другого пользователя какого-нить? Но боюсь это может затронуть другие проги да и где имено это изменять не искал...
Anjey aka PM
Дата: 15.08.2006 17:51:39
а cwd что говорит?
Шогал
Дата: 15.08.2006 19:32:54
А если создать вложенную папку, и в ней создавать файл?
^ozzy^
Дата: 16.08.2006 08:56:39
А сам Apache точно от пользователя Apache запущен ? Может какой-нить nobody стоит... хотя тогда и читать файл, по сути, нельзя было бы.
BASYARU
Дата: 16.08.2006 11:02:16
вставил строчки
use Cwd;
$dir = getcwd();
print $dir;
Под юзером выводит все нормально - говорит /var/www/cgi-bin а на страницу ничего не принтит вообще. Кстати если написать print system("ls"); то в браузер выводится просто число 256 :\ Интересно к чему бы это? Ис под юзера печатает собержимое директории нормально.
Еще попробовал заюзать CGI::WebOut но ниче не изменилось... 1) Fatal: Cannot open file 2.txt: Permission denied и все =(
Anjey aka PM
Дата: 16.08.2006 11:19:34
копать в настройках апачи
BASYARU
Дата: 16.08.2006 11:55:56
А идей где имено нету? А то настроек то много ;)
g613
Дата: 17.08.2006 16:57:46
BASYARU
вставил строчки
use Cwd;
$dir = getcwd();
print $dir;
Под юзером выводит все нормально - говорит /var/www/cgi-bin а на страницу ничего не принтит вообще. Кстати если написать print system("ls"); то в браузер выводится просто число 256 :\ Интересно к чему бы это?

ты сказал напечатать то что возвращает system, он и напечатал, а именно код возврата...