greengeeks drupal install imagemagik ‘path /usr/bin/convert’ 不存在错误

greengeeks drupal install imagemagik ‘path /usr/bin/convert’ 不存在错误

我刚刚注册了 greengeeks。

我在 public_html 目录中安装了 drupal (6.19)。ImageMagic Toolkit 找不到二进制文件 - 我收到的错误是“路径 /usr/bin/convert”不存在。当我使用终端并执行“which convert”时,它显示 /usr/bin/convert

另外,我在附加域中安装了第二个 drupal - 它的主目录位于 public_html 目录上方(在名为 '/home/myusername/addons/seconddomain' 的目录中)

插件域中的 drupal 安装程序可以正常找到 imagemagick 二进制文件。

我完全不明白为什么原始安装无法找到二进制文件。

greengeeks 的技术支持人员也不知道这一点。

有什么想法可以尝试吗?

答案1

我知道这是一个非常古老的帖子,但这就是我设法解决这个问题的方法,把它写在这里,因为它是 Google 上出现的最相关的帖子,我可能会再次遇到这个问题。这适用于 VPS 解决方案,因为您需要 ssh 和 root 访问权限才能访问您的服务器。

Greengeeks 没有安装 ImageMagick,一旦您以 root 身份登录,您可以通过检查 /usr/bin/convert 是否存在来验证它。

首先,您需要使用 Yum 安装 ImageMagick 及其所有依赖项,从 ImageMagick 网站下载二进制文件或 RPM 包根本不起作用。

sudo yum install ImageMagick

使用 Y 完成 Yum 要求您进行的所有确认。

安装后,您需要将 ImageMagick 二进制文件移动到您的托管目录中,因为 Greengeeks 域看起来已启用 open_basedir 限制(无法从网站访问系统目录)

在服务器控制台上:

cd /home/accountusername/www/ 
mkdir bin
cd bin
for i in animate compare composite conjure convert display identify import mogrify montage; do cp /usr/bin/$i ./; done

这会将 ImageMagick 二进制文件复制到网站根目录下的本地 bin 目录中。

将 accountusername 替换为您通过 WHM 创建的域的实际帐户用户名,通常是缩短为 8 个字符的域名(www.mysitedomain.com => mysitedo)

然后进入 Drupal 的设置并将 /www/bin/convert 作为 ImageMagick 路径。

答案2

暗中猜测:您的主站点可能被 chroot 到 public_html(或其他地方),无法访问其外部的任何内容。test.php在其中放入一个包含

<? system("/bin/ls /"); ?>

哪个应该打印出 / 的内容(与您ls /从 shell 中输入时看到的内容相匹配)。如果有效,则尝试system("/usr/bin/convert");如果它不起作用,那么它应该有一个我们可以查看的真正的错误消息。

编辑
由于system()如果可执行文件不存在,则返回空字符串且不会抛出任何错误,因此我们必须编写自己的 ls。首先

<? $dir=opendir("/bin");
   while (($file=readdir($dir))!==false) {
     echo $file."<br>";
   }
   closedir($dir);
?>

如果 /bin 不存在或者与 shell 中的 bin 内容不匹配,那么您似乎被 chroot 到某个目录。再次运行它并opendir("/");查看那里有什么,然后尝试从 shell 在文件系统中找到匹配的目录。

如果 /bin 确实存在(并且文件列表包含ls),那么就会发生一些更奇怪的事情。

相关内容