Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php exec可以';不要用杯子打印_Php_Exec_Cups_Lpr - Fatal编程技术网

Php exec可以';不要用杯子打印

Php 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

如果我从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.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需要访问它。。。