PHP shell_exec, разрешение отклонено для выполнения скрипта оболочки -rwxrwxrwx

В настоящее время я нахожусь поверх ssh на удаленной системе CentOS 5.6, которая запускает веб-сервер Apache. Мне нужно использовать двоичный pdftohtml poppler pdftohtml который, к сожалению, в настоящее время не установлен на этой машине. Поэтому я загрузил пакет poppler и построил его под своей пользовательской папкой. Поскольку я не системный администратор, я этого не делал

 make install 

и у меня есть все мои скомпилированные файлы в

 /users/myfolder/poppler-0.18.2/ 

Файл, который мне нужно выполнить через php shell_exec() ,

 /users/myfolder/poppler-0.18.2/utils/pdftohtml 

Если я выполню его через мой ssh ​​bash, я получаю правильный вывод. Если я, вместо этого, поставлю эту строку на php-скрипт:

 echo shell_exec("/users/myfolder/poppler-0.18.2/utils/pdftohtml"); 

Я получаю следующий вывод:

 sh: /users/myfolder/poppler-0.18.2/utils/pdftohtml: Permission denied 

Я попытался установить для 777 права доступа к файлам, которые в настоящее время являются -rwxrwxrwx. Я также заметил, что использование shell_exec("whoami"); приводит к «apache». Не следует ли apache выполнить сценарий, если права доступа к файлу – rwxrwxrwx?

Я также знаю, что установка poppler через make install решит проблему, но поскольку это предназначено для тестирования, я бы хотел избежать «заражения» системы вне моей личной папки до завершения тестирования.

Спасибо всем, кто поможет!

Просто потому, что файл является исполняемым для пользователя, не означает, что пользователь действительно может выполнить файл. Пользователь должен также иметь возможность «добраться до» файла: пользователю требуется разрешение на выполнение для всех «родительских каталогов», в вашем случае для / users, myfolder, poppler-0.18.2 и utils.

Предполагая / пользователи – это то же самое, что и / home, каждый должен иметь + x. Оттуда вы можете установить его: просто сделайте chmod o+x /users/myfolder /users/myfolder/poppler-0.18.2 /users/myfolder/poppler-0.18.2/utils

(Примечание. Это позволит каждому выполнить этот двоичный код, а не только Apache.)

Если пользователь apache и вы делитесь группой, было бы лучше использовать chown каталог poppler и все, что принадлежит этой группе, и установить g + x вместо o + x.