noff
Новичок
php exec - переменные окружения при вызове команд из exec
Здравствуйте.
Вот какая ситуация. Имеем linux с openoffice. Задача: из PHP выполнить exec("convert.sh").
convert.sh содержит команду запуска openoffice с целью сконвертировать файл документа в файл другого формата. PDF, к примеру. Т.е. там вызывается макрос openoffice'а.
Чтобы неголословно, то вот так:
convert.sh:
Как видим, convert.sh принимает 5 параметров и передает их в макрос. На самом деле это неважно.
Важно то, что, если вызвать convert.sh из терминала (из командной строки), то все замечательно работает. Но, если вызывать абсолютно то же самое из PHP, то openoffice говорит, что невозможно определить язык интерфейса, вследствие чего невозможно запустить программу. И все.
У меня такие мысли, что PHP запускает команды от неизвестно кого и у этого кого-то не инициализированы переменные окружения, и, следовательно, и язык.
Но, я в скрипт convert.sh добавил также установку переменных:
Разницы так и не заметил. Все то же самое.
Пользователь, под которым работаю я - noff.
Апач, для удобства, работает от этого же пользователя.
Кто-нибудь может сказать что-то умное по этому поводу?
-~{}~ 26.08.08 15:46:
PS:
php 5.2.6 safe mode off
apache 2.1.8
linux CentOS 5.1
-~{}~ 26.08.08 15:51:
При этом, если запустить тот же самый php-скрипт без апача, то все работает.
Здравствуйте.
Вот какая ситуация. Имеем linux с openoffice. Задача: из PHP выполнить exec("convert.sh").
convert.sh содержит команду запуска openoffice с целью сконвертировать файл документа в файл другого формата. PDF, к примеру. Т.е. там вызывается макрос openoffice'а.
Чтобы неголословно, то вот так:
convert.sh:
Код:
soffice -invisible -norestore -nodefault "macro:///mkechinov.ConvertToPDF.Convert($1,$2,$3,$4,$5)"
Важно то, что, если вызвать convert.sh из терминала (из командной строки), то все замечательно работает. Но, если вызывать абсолютно то же самое из PHP, то openoffice говорит, что невозможно определить язык интерфейса, вследствие чего невозможно запустить программу. И все.
У меня такие мысли, что PHP запускает команды от неизвестно кого и у этого кого-то не инициализированы переменные окружения, и, следовательно, и язык.
Но, я в скрипт convert.sh добавил также установку переменных:
Код:
export LANG="ru_RU.UTF-8"
export LC_ALL="ru_RU.UTF-8"
soffice -invisible -norestore -nodefault "macro:///mkechinov.ConvertToPDF.Convert($1,$2,$3,$4,$5)"
Пользователь, под которым работаю я - noff.
Апач, для удобства, работает от этого же пользователя.
Кто-нибудь может сказать что-то умное по этому поводу?
-~{}~ 26.08.08 15:46:
PS:
php 5.2.6 safe mode off
apache 2.1.8
linux CentOS 5.1
-~{}~ 26.08.08 15:51:
При этом, если запустить тот же самый php-скрипт без апача, то все работает.