2016-12-23 2 views
0

Если я бегу LPR от корня, или даже бежать от апачаPhp Exec не может печатать с помощью чашки

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 

Я даже установить апача как владелец test.txt

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

Что случилось?

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

+0

'lpr:' указывает, откуда исходит ошибка. Так что жалко жалуется lpr. Вероятно, ваш apache нуждается в доступе к нему ... – Werner

ответ

0

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

Selinux не разрешал службе httpd получать доступ к lpr/cups.

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