Проблема в том, что внешняя программа, вызываемая из php работает не так, как если ее вызывать из консоли по ssh. Из консоли по ssh захожу из-под myusername и выполняю: Код (Text): #cd /var/www/myusername/data/www/mysitename/tmp /var/www/myusername/data/www/mysitename/tmp# /usr/bin/pdflatex myfile.tex И все отлично работает, в папке tmp образуется pdf файл. Но когда вызываю эту же команду из PHP скрипта, который расположен по адресу /var/www/myusername/data/www/mysitename/myscript.php Вызываю так Код (Text): $pipes = array(); $options = array(); $cmd = '/usr/bin/pdflatex myfile.tex'; $cwd = /var/www/myusername/data/www/mysitename/tmp; proc_open( $cmd, $options, $pipes, $cwd ) То в папке tmp программа latex создет лог-файл с описанием ошибок. Ошибки связаны с недоступностью файлов шрифтов. Причем создаваемые файлы имеют в атрибутах владельца myusername. Значит PHP и вызываемая им pdflatex выполняется из-под myusername. Причем, если в файле myfile.tex кириллица не используется, то все нормально работает и из PHP. Значит проблема в том, что программа pdflatex не может сгенерировать шрифты. Из-за чего может быть разница? Почему из консоли нет ошибки, а из php, который работает как модуль Apache, получаются ошибки. Какие ограничения в правах дает выполнение внешней программы через Apache+PHP? И главное, как это исправить.
Но ведь файлы создаются с владельцем myusername. Разве это не значит, что и выполнение происходит от имени myusername? Ну а если все-таки www-data, то как можно это исправить? Как выполнить внешнюю программу с правами myusername, который прописан в VirtualHost?
Править конфиги апача. Проще всего дать учётке www-data права как у myusername. Но, делать так не рекомендуют.
Ты не путаешь php-cli с mod_php? Проверь реально с каким владельцем создаются файлы "через веб". У тебя какой Apache и что именно прописано в VirtualHost про пользователя?