Запустите inkscape в PHP - PullRequest
       28

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

7 голосов
/ 10 июля 2010

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

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

Я не получаю новый файл и получаю его в журнале ошибок apache.

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

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

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

Я работаю в Ubuntu с сервером Apache.Что я могу сделать, чтобы исправить эту проблему?

Ответы [ 2 ]

7 голосов
/ 10 июля 2010

Это связано с системными разрешениями, проще всего исправить это создать папку .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
1 голос
/ 16 июля 2010

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

Существует две возможности:

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

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

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

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

...