Php exec可以';不要用杯子打印
如果我从root运行lpr,甚至从apache运行lprPhp exec可以';不要用杯子打印,php,exec,cups,lpr,Php,Exec,Cups,Lpr,如果我从root运行lpr,甚至从apache运行lpr 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
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上使用PHP5.6,经过一些研究,我发现了这个问题 Selinux不允许httpd服务访问lpr/cups 禁用Selinux解决了这个问题。
注意:在我的情况下,我不需要Selinux,但是如果您面临同样的问题,请注意禁用Selinux可能是一个安全缺陷,特别是当服务器可以在您的网络之外访问时。只需将规则添加到Selinux中,就可以让httpd/php执行此操作。
lpr:
指示错误的来源。所以,是lpr在抱怨。可能您的apache需要访问它。。。