С PHP-скрипта я хочу запустить скрипт Perl. Я могу сделать это отлично с терминала (как пользователь root), но при запуске из моего приложения (пользователь www-data) я не могу.Не удается найти скрипт Perl из PHP/Apache
При разработке приложения на локальном хосте я тоже смог это сделать, но проблема возникла при переключении на другой сервер.
На моей веб-странице вызывается PHP-скрипт с запросом AJAX POST, который отлично подходит для других PHP-скриптов, которые не вызывают вызовы на Perl.
Я попытался следующие команды в моем PHP скрипт без успеха:
system("/filepath/file.pl");
exec("/filepath/file.pl");
passthru("/filepath/file.pl");
Журналы Apache на сервере хостинг мое приложение показывает следующее сообщение об ошибке:
sh: /file.pl: not found
С запуском следующей код на моем сервере. Я вижу, что пользователь сети рассматривается как www-данные:
ps aux | grep apache
Чтобы проверить, я также установил разрешения для всех файлов и каталогов, использующих мое приложение, чтобы разрешить любой тип доступа любым пользователем с помощью chmod 777.
Обратите внимание: моя заявка доступна только некоторым пользователям (I используйте файл .htaccess, чтобы установить эти разрешения и потребовать от пользователя входа в систему), поэтому, если есть способ изменить способ, которым сервер видит этого пользователя (из www-данных, учетных данных пользователя, зарегистрированного в системе), возможно, это help - как бы я это сделал?
'/ filepath' запускает ROOT файловой системы вашего диска, например '' C: \ ''. если '/ filepath' является корнем вашего сайта, это не сработает. вам нужно включить весь путь: '/home/user/sites/example.com/public_html/filepath/file.pl'- type вещь –
« 'not found» действительно указывает на проблему с разрешениями? –