根据MathLatex批量的生成数学公式流程很简单:根据latex
和dvipng
和mathtex.c
生成一个mathtex.cgi文件,放在服务器上。然后访问服务器的mathtex.cgi生成公式图片。其中latex
程序用来识别公式,dvipng
用来将公式转换为图片,mathtex.cgi就是调用这两个工具。下面是在Nginx安装服务器生成MathLatex生成工具记录。
下载mathtex.zip
wget http://www.forkosh.com/mathtex.zip
然后unzip mathtex.zip解压
安装Latex和dvipng
mathtex在线帮助文档:http://www.forkosh.com/mathtex.html,开头处提供了提供了快速的安装步骤,但是过程却并不是像描述的那样顺利。
根据描述需要在http://www.latex-project.org/get/
安装LaTeX
,通过上面的图片包含的说明: TeX distribution with dvipng
,推测latex和png很可能是在一起的。但是通过看帮助文档发现有的时候不是在一起的。latex
提供了很多种安装方式,推荐是两种通过网络在线安装和下载一个镜像文件。
- 网络在线
地址:http://www.tug.org/texlive/acquire-netinstall.html。�下载install-tl-unx.tar.gz
:
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz。然后解压根据快速安装地址http://www.tug.org/texlive/quickinstall.html。(如果安装之前有过安装需要删除旧的安装)
rm -rf /usr/local/texlive/2016
rm -rf ~/.texlive2016
然后
./install-tl
然后选择的i安装 (linux系统上安装需要完整的perl环境,没有的运行命令yum install perl*
安装);大约需要两个小时左右,安装完成后添加环境变量。
vim /etc/profile
最后加入export PATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATH
;保存后source /etc/profile
刷新一下生效。因为mathtex.cgi 生成命令是
cc mathtex.c \
–DLATEX=\"$(which latex)\" \
–DDVIPNG=\"$(which dvipng)\" \
–o mathtex.cgi
所以可以查看下latex和dvipng的路径
find / -name 'latex'
find / -name '�dvipng'
一般latex会在/usr/bin/latex
,但是dvipng可能没有。本次通过网络在线安装latex
的时候就是没有包含dvipng
,这个时候可以自己独立安装dvipng
,divpng
下载地址http://download.savannah.gnu.org/releases/dvipng/,帮助地址http://www.nongnu.org/dvipng/dvipng_2.html#Installation,安装也同样很简单。
./configure, make, and make install.
可能遇到的问题,在某些系统上configure无法自己找到某些所需要的库,帮助文档里面也提到了,最可能找不到
libkpathsea
,这时可以自己去系统找这个类库的路径,还可以按照作者说的在 http://www.ctan.org搜索自己编译(这个放弃了,因为libkpathsea是在latex安装时候已经安装了,并没有独立的发布过,但是最新版本的latex并没有包含这个库)。实验了很多次都没有成功,包括使用yum install
。万般无奈之下想下载latex以前的版本,但是以前的版本没有找到在线下载的链接。所以直接通过网络安装的方式就放弃了。
- 镜像文件。
参考这个链接:http://www.linuxidc.com/Linux/2016-08/133913.htm。所有的安装步骤和上面一样,唯一不同就是这个需要挂载后安装,然后取消挂载。通过这个安装完成的镜像文件。发现这里安装latex的时候已经把dvipng一起安装了。直接按照上面的步骤生成mathtex.cgi完成。安装实际命令。如果最后发现不能生成图片,提示错误http://www.forkosh.com/mathtex.html
可以根据这个网站查找,很有可能就是下面的dvipng的路径不对,因为用whereis命令查找dvipng可能出现多个,出现多个可能是自己之前通过其他方式安装过但是并不全。可以尝试的更改DDVIPNG后面的路径重新生成mathtex.cgi。
cc -DLATEX=\"/usr/bin/latex\" -DDVIPNG=\"/usr/local/texlive/2016/bin/x86_64-linux/dvipng\" mathtex.c -o mathtex.cgi
服务器配置
Nginx服务器不能直接运行cgi程序。所以要安装一些工具实现。参考
http://www.cnblogs.com/studyskill/p/6524220.html
http://blog.csdn.net/allenlinrui/article/details/19419721。
安装的工具是fastcgi,fastcgi-wapper.
实际的步骤是建立这个目录/usr/local/nginx/cgi-bin/,并将mathtex.cgi移动到这里面。在/usr/local/nginx/conf/vhost/目录下建立一个主机配置文件,内容如下
server {
listen 80;
server_name latex.example.com;
access_log /data/wwwlogs/www.hskaoyan.com_nginx.log combined;
index mathtex.cgi;
include /usr/local/nginx/conf/rewrite/none.conf;
root /usr/local/nginx/cgi-bin/ ;
location ~ .*\.cgi$ {
fastcgi_pass 127.0.0.1:8081;
fastcgi_index mathtexi.cgi;
include fastcgi.conf;
}
}
其中server_name latex.example.com;是自己添加的域名解析记录。fastcgi_pass 127.0.0.1:8081;表示由服务器自己调用当前服务器上的cgi端口号8081.如果cgi不在本台服务器可以填写其他地址。
配置完成后更新配置,启动fastcgi-wapper
nginx -s reload
/usr/local/bin/spawn-fcgi -f /usr/local/sbin/fcgiwrap -p 8081
最后查看是否成功启动
到此全部安装完成.
http://latex. example.com/mathtex.cgi?\png\dpi{300}abc 浏览器敲上面地址产生abc图片。