如果我从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
答案 0 :(得分:0)
Selinux没有让httpd服务访问lpr / cups。
禁用Selinux解决了这个问题。 注意:在我的情况下我不需要Selinux,但如果您遇到同样的问题,请注意禁用Selinux可能是一个安全漏洞,特别是如果服务器可以在您的网络外访问。只需将规则添加到Selinux中即可让httpd / php执行此操作。