8

我需要在 PHP 中运行 inkscape,以便将 svg 图像转换为 PDF。但是每次我尝试:

//一些PHP代码系统("inkscape -z --file=svg.svg --export-pdf=pdf.pdf"); //更多代码

我没有得到新文件,我在 apache 错误日志中得到了这个。

(inkscape:28607):libgnomevfs-警告**:无法创建〜/ .gnome2目录:权限>拒绝

紧急保存激活!紧急保存完成。Inkscape 现在将关闭。如果您可以重现此崩溃,请在 www.inkscape.org 提交错误,并详细说明导致崩溃的步骤,以便我们修复它。** 消息:错误:Inkscape 遇到内部错误,现在将关闭。

分段故障

我正在使用 apache 服务器在 ubuntu 上运行。我能做些什么来纠正这个问题?

4

2 回答 2

7

这与系统权限有关,更简单的修复方法是在运行该代码的用户的根主文件夹中创建一个.gnome2文件夹并授予其写入权限(666 应该没问题)。

请注意,如果您通过以 . (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
于 2010-07-10T14:21:44.667 回答
1

Inkscape 由 webserver-user 通常由 www-data 执行。Ubuntu 为 www-data 提供的默认设置将 www-data 的主目录定位在 /var/www 中。

有两种可能:

a) 将 www-data 的主目录更改为 /home/www-data

b) 在 /var/www 中禁用 VirtualHost

在这两种情况下,您都必须更改 ~www-data 的权限。首先将目录“chown”到 www-data:www-data 并赋予他们写入权限。

下次如果您通过 PHP(作为 www-data 用户)执行 inkscape,将创建缺少的目录。

于 2010-07-16T06:55:55.927 回答