Разрешение Perl-скриптов, запускаемых Apache, использовать system () - PullRequest
0 голосов
/ 12 мая 2011

У меня есть сервис мыла Perl, который я использую для объединения данных разных пользователей. Служба работает нормально, однако я хотел бы запустить «sort -u file1 file2> file1», чтобы объединить данные, собранные с данными, уже находящимися на сервере. Я хотел бы, чтобы скрипт perl вызывал системную функцию после завершения задачи

Это проблема установки правильных разрешений для Apache или чего-то еще?

список каталогов:

вар / WWW / script.pl
вар / WWW / file1
вар / WWW / file1
вар / WWW / index.php

Любая помощь будет великолепна. Спасибо

Ответы [ 2 ]

1 голос
/ 12 мая 2011
sort -u file1 file2 > file1

Не собирается делать то, что вы говорите, вы хотите это сделать Вы пробовали это из командной строки?

После того, как вы запустите эту команду, file1 не будет содержать ничего, что было в file1 для начала, потому что перенаправление закроет file1, прежде чем sort начнет действовать на него.

sort -u file1 file2 >file3; mv file3 file1

Кажется, вы хотите использовать system (), что случилось, когда вы попробовали это? Вы получили какие-либо сообщения об ошибках?

0 голосов
/ 12 мая 2011

Нет, это проблема установки правильных разрешений для каталога, содержащего файл, который вы хотите записать.

Узнайте, под каким идентификатором пользователя / идентификатором группы запущен процесс веб-сервера (например, просмотрев таблицу процессов с помощью /bin/ps -AH -o user,group,cmd), затем обратитесь к Управление доступом к файлам в разделе Поваренная книга Linux .

...