Php exec无法使用杯子打印

时间:2016-12-23 11:22:53

标签: php exec cups lpr

如果我从root运行lpr,或者甚至从apache运行

runuser -l apache -c 'lpr -P RICOH_Aficio_2032 -r /var/www/html/website/tmp/test.txt'

就像一个魅力。

然而,当我使用php_exec打印

exec('lpr -P RICOH_Aficio_2032 -r /var/www/html/website/tmp/test.txt 2> /var/www/html/website/tmp/error.txt');

我收到以下错误

lpr: Permission denied

我甚至将apache设置为test.txt的所有者

当我使用ls,cat ecc时,Php exec工作。 但是lpr和lpstat不起作用。

怎么了?

注意:我在Centos 6.8上使用php 5.6

1 个答案:

答案 0 :(得分:0)

经过一番研究,我发现了问题。

Selinux没有让httpd服务访问lpr / cups。

禁用Selinux解决了这个问题。 注意:在我的情况下我不需要Selinux,但如果您遇到同样的问题,请注意禁用Selinux可能是一个安全漏洞,特别是如果服务器可以在您的网络外访问。只需将规则添加到Selinux中即可让httpd / php执行此操作。