【问题标题】:Running SVGO from PHP doens't work with MAMP从 PHP 运行 SVGO 不适用于 MAMP
【发布时间】:2018-05-13 00:23:19
【问题描述】:

我想从 PHP 运行 https://github.com/svg/svgo,但是权限有些问题。

我的示例应用程序:

root
 -- svgo.php
 -- svgfiles
  -- test.svg
 -- node_modules
    -- svgo
      -- bin
        --svgo

我的 PHP 脚本:

<?php
  exec("node_modules/svgo/bin/svgo svgfiles/test.svg -o svgfiles/test.min.svg");
?>

当我在 CLI 上运行“php svgo.php”时会创建 test.min.svg 文件,但是当我使用 MAMP 安装访问“localhost/svgo.php”时它什么也不做。我还给了路径“svgfiles”权限777。

【问题讨论】:

  • 如果将echo 放在exec 之前会发生什么?也许它会告诉你为什么它失败了
  • 将输出回显。如果我在命令行上回显 exec 的返回,它将在 localhost 上打印类似“test.svg:在 42 毫秒内完成!8.104 KiB - 40.5% = 4.824 KiB”的结果,来自 exec 的回显是空的......没有错误否则...
  • 尝试运行echo exec("ls"); 以确保您实际上位于正确的目录中

标签: php unix permissions file-permissions


【解决方案1】:

您必须明确告诉node 运行svgo 库。并使用二进制文件的完整路径。

例子:

exec("/absolute/path/to/node /absolute/path/to/svgo [options] [args]");

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多