我在MediaWiki 1.19中安装了Math扩展。在我将Ubuntu Server从12.04更新到14.04之后,似乎有些混乱了,并且它停止了工作。基本上,当我尝试显示<math>
和</math>
标签之间的任何内容时,都会出现以下错误:
Failed to parse (PNG conversion failed; check for correct installation
of latex and dvipng (or dvips + gs + convert))
我已经尝试过可以在网上找到有关此问题的常见故障排除方法,并重新编译了
texvc
来检查是否可以解决该问题。从命令行调用texvc
目录中的extensions/Math/math
可执行文件似乎可以完成其工作。我显然已经检查了所有其他可执行文件(latex
,dvipng
等)是否可以正常工作。当我尝试从Wiki渲染数学时,会在
*.tex
中创建相应的images/tmp
文件,并在其中包含正确的乳胶代码,但没有其他反应。该问题似乎与
texvc
调用latex
和dvipng
时遇到问题有关。是什么导致此问题,如何解决?
最佳答案
好吧,我知道了。基本上,任何shell命令都是由安全过滤器传递的。因此在实践中,texvc
由Mediawiki通过bin/ulimit4.sh
执行:
#!/bin/bash
ulimit -t $1 -v $2 -f $3
eval "$4"
其中
$4
是正在运行的实际texvc
命令,而$2
是此进程允许的内存量。默认情况下,内存为102400 KB(恰好为100MB),似乎不足以运行此过程。可以使用LocalSettings.php
和$wgMaxShellMemory
变量来设置内存量。在我的情况下,我将其设置为300MB $wgMaxShellMemory = 307200;
,这似乎足够了。我不知道为什么这么小的生成png的过程需要这么多的内存。
在更新到Ubuntu 14.04后停止工作的原因可能与
latex
,dvipng
,convert
等新发行版本相比,需要的内存比Ubuntu 12.04随附的版本更多。