2016-12-23 1 views
0

Si je cours lpr de la racine, ou même de courir apachePhp exec ne peut pas imprimer en utilisant des tasses

runuser -l apache -c 'lpr -P RICOH_Aficio_2032 -r /var/www/html/website/tmp/test.txt' 

fonctionne comme un charme.

Cependant, quand j'imprimer à l'aide php_exec

exec('lpr -P RICOH_Aficio_2032 -r /var/www/html/website/tmp/test.txt 2> /var/www/html/website/tmp/error.txt'); 

je reçois l'erreur suivante

lpr: Permission denied 

Je mets même apache en tant que propriétaire de test.txt

Php exec fonctionne quand je utiliser ls, chat ecc. Mais lpr et lpstat ne fonctionnent pas.

Qu'est-ce qui ne va pas?

Note: Je suis sur CentOS 6.8 avec php 5.6

+0

'lpr:' indique l'origine de l'erreur. Donc c'est lpr qui se plaint. Probablement votre apache a besoin d'y accéder ... – Werner

Répondre

0

Après quelques recherches, j'ai trouvé le problème.

Selinux n'a pas laissé le service httpd accéder à lpr/cups. La désactivation de Selinux a permis de résoudre le problème. Note: je n'ai pas besoin de Selinux dans ma situation, mais si vous faites face au même problème, notez que la désactivation de Selinux peut être un défaut de sécurité, surtout si le serveur est accessible en dehors de votre réseau. Ajoutez simplement les règles à Selinux pour que httpd/php le fasse.