我刚刚注册了 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
),那么就会发生一些更奇怪的事情。