2009-01-05 92 views
2

我写了一个脚本,通过pdftex编译LaTeX代码。麻烦的是pdftex只能在linux上运行。php shell_exec()通过cygwin

我正在使用shell_exec()完成此任务。

我真的没有能力设置一个Linux机器作为Web服务器。我有我的客户端计算机,但它位于我无法控制的防火墙后面。我确实拥有运行SBS 2003的工作服务器的控制权,该服务器使用运行apache和php的Windows 2000虚拟机。据我所知,您不能在Windows中安装pdftex,如果可以的话,它将不适用于shell_exec()

有没有办法用cygwin解决这个问题?我可以在cygwin中安装pdftex,然后配置php在cygwin中运行shell_exec()命令。如果这是可能的,有人可以指出我正确的方向吗?

此外,我想知道是否有另一种行动。我不介意购买托管服务,但任何共享托管计划都不会支持该应用。它必须是一个虚拟或专用主机计划;我买不起的东西。

回答

2

pdfTeX在Windows上运行得很好,不需要Cygwin。尝试MiKTeX

+0

谢谢!我不得不稍微更改代码,但这是我需要的信息。 – objectivesea 2009-01-05 21:53:54

3

对于任何人谁想知道通过Cygwin的运行shell_exec(),看看这个链接注释PHP手册:

http://us.php.net/manual/en/function.shell-exec.php#68647

$result = shell_exec("C:\cygwin\bin\bash.exe --login -c '/cygdrive/c/cygwin/bin/convert.exe --version'"); 

的关键是“ - 登录“选项,它将所有必需的常见 cygwin二进制和库路径附加到$ PATH。如果没有这个选项,一些 链接到其他库的cygwin二进制文件(如ImageMagick 链接到X11的二进制文件)将不起作用,您可能会看到类似“找不到cygX11-6.dll,无法启动convert.exe”的错误 。