Wykonany program nie zapisuje wyników do pliku

0

Witam.

Tworzę właśnie skrypt w Perlu z CGI, który uruchamia program z danymi parametrami. Program ten, otwiera plik(1. parametr), analizuje go i zapisuje wynik w pliku(2. parametr).

 #!/usr/bin/perl

print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head></head>";
print "<body>";

print "start... ";

exec("tesseract /var/www/in/m5.png /var/www/out/m5.png -l pol");

print "done!";

print "</body>";
print "</html>"; 

Proszę się nie martwić, taką samą nazwą pliku wyjściowego, program dodaje sobie do niej ".txt"

Jeżeli uruchomię swój skrypt z terminala
perl ocr.pl
To wszytko ładnie się policzy i zapisze.
Natomiast jeżeli wywołam skrypt z poziomu przeglądarki ([adres]/cgi-bin/ocr.pl) to program będzie obliczać(jestem pewny, bo sprawdzałem działające procesy), natomiast nie zapisze mi wyników do pliku wyjściowego.

Program ten jest napisany w C++ i normalnie zapisuje do pliku, nie przesyła nic istotnego na standardowe wyjście.

Może mi ktoś wytłumaczyć dlaczego tak się dzieje? Co musiałbym zrobić żeby działało tak jak chcę?

1

Udało mi się problem rozwiązać.

Warto zaznaczyć że działo się tak z dowolnym programem który miał coś zapisywać do pliku.

Problem leżał w uprawnieniach dostępu. Skrypty były wykonywane przez użytkownika www-data. Nie miał on między innymi prawa do zapisywania pliku w podanym folderze. Same skrypty miały odpowiednie uprawnienia. Na szybkiego chmod 777 i nazwa folderu rozwiązała problem, ale warto by się pobawić żeby to lepiej zabezpieczyć i pozwolić www-dacie tam zapisywać do danego folderu a nie od razu wszystkim.

1 użytkowników online, w tym zalogowanych: 0, gości: 1