Запустить inkscape в PHP

Мне нужно запустить inkscape в PHP, чтобы преобразовать SVG-образ в PDF. Однако каждый раз, когда я пытаюсь:

// некоторая система кода PHP («inkscape -z -file = svg.svg –export-pdf = pdf.pdf»); // больше кода

У меня нет нового файла, и я получаю его в журнале apache erro.

(inkscape: 28607): libgnomevfs-WARNING **: невозможно создать каталог ~ / .gnome2: Permission> denied

Аварийное спасение активировано! Экстренное сохранение завершено. Inkscape закроется. Если вы можете воспроизвести этот сбой, напишите ошибку на www.inkscape.org с подробным описанием шагов, ведущих к сбою, поэтому мы можем исправить это. ** Сообщение: Ошибка: Inkscape обнаружил внутреннюю ошибку и закроется.

Ошибка сегментации

Я запущен на ubuntu с сервером apache. Что я могу сделать, чтобы исправить эту проблему?

Это связано с системными правами, более простой способ исправить – создать папку .gnome2 в корневой домашней папке пользователя, который запускает этот код и дает ему права писать (666 должно быть хорошо).

Обратите внимание, что если вы делаете это по FTP-папкам / файлам, начиная с. (скрытые файлы в Linux), может не отображаться в списках в зависимости от конфигурации вашего клиента.

Например:

mkdir -p /var/www/.gnome2 /var/www/.config /var/www/.config/inkscape chmod 755 /var/www/.gnome2 /var/www/.config /var/www/.config/inkscape chown -R www-data /var/www/.gnome2 /var/www/.config /var/www/.config/inkscape 

Inkscape выполняется обычным веб-сервером-пользователем. Настройка по умолчанию, которую Ubuntu предоставляет для www-данных, находит домашний каталог www-данных в / var / www.

Это две возможности:

a) Изменение домашнего каталога www-data на / home / www-data

b) Отключите VirtualHost в / var / www

В обоих случаях вам необходимо изменить права ~ www-data. Сначала «chown» каталог на www-data: www-data и дайте им права на запись.

В следующий раз, если вы выполните inkscape через PHP (как пользователь www-data), будут созданы отсутствующие каталоги.