2015-12-11 50 views
1

我有一个编写的shell脚本,它将使用LibreOffice将docx文件转换为pdf。这工作正常。我所要做的就是以某种方式从我的CodeIgniter控制器中调用这个shell脚本,以便每次调用控制器时都会运行它。是否可以从CodeIgniter控制器中调用shell脚本?

目前,我曾尝试:

我的shell脚本 “convert_to_pdf”:

cd /applications/libreoffice.app/contents/macos 
./soffice --headless --convert-to pdf --outdir /applications/mamp/htdocs/convert /applications/mamp/htdocs/convert/testDoc.docx 

我控制器包含这个,我试图用它来运行shell脚本:

shell_exec("/usr/local/bin/convert_to_pdf"); 

我对这一切都很陌生,所以我甚至不确定这是可能的。我知道shell脚本在从终端运行时工作,但我无法在控制器中使用它。有任何想法吗?

感谢您提前帮忙!

编辑

我没有用得到这个工作在我的控制器如下:

exec('cd /applications/libreoffice.app/contents/macos/ && ./soffice --headless --convert-to pdf --outdir /applications/mamp/htdocs/convert /applications/mamp/htdocs/convert/testDoc.docx', $output, $return); 

不过,我有点担心由此引发的安全问题。有什么我失踪了吗?

回答

1

也许您可以尝试检查该执行的输出以查看发生了什么,并检查是否有帮助。 shell_exec

<?php 
$output = shell_exec('/usr/local/bin/convert_to_pdf'); 
echo "<pre>$output</pre>"; 
+0

我刚刚尝试过,没有任何返回。只是标签。我还确保shell_exec已启用,所以不是这样。你知道我是否正确使用shell_exec? – jldavis76

+0

'convert_to_pdf'脚本是否拥有正确的权限?试试755 –

相关问题