Я написал страницу на PHP, которая принимает пользовательский ввод, а затем я передаю shell_exec в файл Perl после передачи этих параметров.
Мой Perl-файл в основном генерирует GD :: Graph. Когда я запускаю скрипт в первый раз, кажется, что нет проблем, и я получаю действительный файл image.gif. Тем не менее, запуск его во второй раз не меняет никаких данных в файле image.gif. Это остается тем же самым, как будто это не может быть переписано.
Затем я выполнил сценарий Perl через оболочку и передал параметры вручную. Вот сообщение об ошибке, которое я получаю:
Failed to save graph to file: uploads/image.gif. Permission denied at image.pl line 178.
Соответствующий код на Perl:
my $bar_file = $filepath . '/image.gif';
if (-e $bar_file) {
#If file exists, delete
unlink($bar_file);
}
else {
print "File does not exist.";
}
open(IMG, ">$bar_file")
|| die ("\nFailed to save graph to file: $bar_file. $!");
binmode IMG;
print IMG $plot->gif();
close IMG;
И проблемная строка 178:
open(IMG, ">$bar_file")
Я попытался изменить файл на CHMOD 777, но поскольку он был сгенерирован Apache , у меня нет достаточных разрешений для CHMOD.