Как я могу вызвать Perl со своей страницы PHP на Apache?
Вопрос
мы с другом создаем парсер логов для серии игр.Мы написали интерфейс (веб) на PHP/MySQL и парсер на Perl (разумеется, также используя MySQL).Теперь у нас проблемы с общением этих двоих.
Единственное, чего мы не хотим делать, это:одна страница администрирования онлайн, где есть кнопка «разобрать».При нажатии на эту кнопку должен запуститься Perl-скрипт.Например, «exec(»perl /home/www/Init.pm -f games_mp.log»).
Это возможно?Помните, что настроить его должно быть легко.
Мы перепробовали все, от system/exec до .htaccess, но ничего из коробки не работает.Вообще не работает.
Предложения?
лака =)
Решение
К сожалению, нет простого способа настроить это.Разные серверы имеют разные конфигурации Apache по умолчанию.
Вероятно, вам нужно добавить следующую строку в конфигурацию сервера, конфигурацию виртуального хоста, конфигурацию каталога или, при правильной настройке, .htaccess.
AddHandler cgi-script .cgi .pl .pm
Вашим пользователям также необходимо будет соответствующим образом изменить и изменить файлы.
Дело в том, что это похоже на длительный процесс.Если это так, то запуск веб-браузера может занять очень много времени, прежде чем он завершится.В этом случае вам, скорее всего, захочется настроить какую-то очередь заданий и запускать скрипт cron на ее основе каждые 5 минут или около того.
Другие советы
Почему бы не запустить Perl-скрипт, как если бы он был веб-страницей из jQuery, используя mod_perl?
Я готов поспорить, что вы столкнулись с ошибками пути.Попробуйте указать полный путь к исполняемому файлу Perl.Например:
exec("/usr/bin/perl /home/www/Init.pm -f games_mp.log")
В PHP многое зависит от конфигурации.Попробуйте разобраться, так как многие операторы можно отключить.
Убедитесь, что программа Perl имеет правильные права.Попробуйте запустить программу Perl из командной строки.