J'ai créé un serveur nginx dans un chroot à/srv/http avec php-fpm. Les deux services utilisent l'utilisateur http et cela fonctionne très bien. Le problème vient quand je tente d'exécuter une commande exec tels queExec avec PHP-FPM sur nginx (sous chroot) ne renvoie rien
echo shell_exec('/usr/bin/ls');
Il n'y a pas de sortie du tout sur la page Web ou dans les erreurs. J'ai également essayé
error_log(shell_exec('/usr/bin/ls');
et toujours rien.
choses que j'ai essayé ou de savoir:
- safe mode off
- exec activé
- utilisateur est http (en utilisant la fonction phpinfo())
- display_errors = sur
- error_reporting = E_ALL
- sudo/usr/bin/chroot --userspec = http: http/srv/http ls fonctionne bien
- peut créer un fichier et lire à l'aide file_puts_content et fopen/fread
- essayé shell_exec, exec, système et passthrough - rien travaillé
- essayé annexant 2> & 1 à la fin de la commande et rien
- I avez copié tous les fichiers exécutables et les bibliothèques nécessaires sur
- toutes les bibliothèques, les binaires, et tout sous/srv/http/www (où les pages Web sont) ont exécutable et lire les autorisations
- doc_root est www
Pour autant que je sache, tout fonctionne dans le chroot, sauf les commandes shell via php-fpm. Quelqu'un at-il une idée de l'endroit où j'ai mal tourné et comment y remédier?
Je l'ai déjà fait. J'ai copié/usr/bin/ls à/srv/http/usr/bin/ls (et après avoir vu les bibliothèques nécessaires avec ldd/srv/http/usr/bin/ls), j'ai copié les fichiers .so dans/srv/http/usr/lib. Et ça n'a toujours pas marché. Et voir # 6 où je peux l'exécuter dans le chroot, donc j'ai les fichiers nécessaires. – projectdelphai