Php exec не может печатать используя чашки

Если я запускаю 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

Php exec работает, когда я использую ls, cat ecc.
Но lpr и lpstat не работают.

В чем дело?

Примечание: я нахожусь на Centos 6.8 с php 5.6

0

Решение

После некоторых исследований я нашел проблему.

Селинукс не позволил службе httpd получить доступ к lpr / cups.

Отключение Selinux решило проблему.
Примечание: мне не нужен Selinux в моей ситуации, но если вы столкнулись с той же проблемой, обратите внимание, что отключение Selinux может быть недостатком безопасности, особенно если сервер доступен за пределами вашей сети. Просто добавьте правила в Selinux, чтобы httpd / php сделал это.

0

Другие решения

Других решений пока нет …