R, PHP и Apache
Я разработал веб-страницу, которая позволяет пользователю определять некоторые критерии, используя выпадающие списки и т. Д., И php собирает соответствующие данные из базы данных в соответствии с этими критериями.
Я собираюсь моделировать линию тренда наименьших квадратов по этим данным, используя R, отображать коэффициенты, график и т. Д.
Но я не могу запустить R, хотя он установлен на сервере и работает как положено, когда вызывается на сервере. Я предполагаю, что есть некоторые проблемы с безопасностью.
Может ли кто-нибудь привести меня к решению. Моя хостинговая компания говорит, что невозможно выполнить команду exec() для вызова R в PHP из-за соображений безопасности.
Большое спасибо, Ян
4 ответа
Прямо здесь, на SO, есть пост о настройке R. Не все ответы используют exec().
Вы можете проверить этот сайт: http://cran.r-project.org/doc/FAQ/R-FAQ.html
С другой стороны, некоторое время назад я делал нечто подобное и использовал именованный канал, по которому PHP отправлял команды постоянно работающему экземпляру R, который затем выводил свои данные прямо в базу данных. В этом решении канал служил очередью, поэтому он мог одновременно работать с несколькими клиентами.
Я также искал ответ на ваш вопрос, и теперь все, что я прочитал, говорит о том, что вам понадобятся дополнительные привилегии на вашем сервере (которых вы не получите на виртуальном хостинге).
Потенциально собирается сделать виртуальный выделенный сервер для вас, но я пока не знаю, кто-то говорил, что он это сделал и что он работает.
Я писал о проектах для получения R онлайн в моем блоге здесь (например, веб-интерфейс ggplot2 и R-узел). Если вы найдете хорошие решения, пожалуйста, дайте мне (нам) знать.
Лучший,
Tal
Я написал класс трендов на чистом PHP как часть PHPExcel, чтобы обеспечить функции для вычисления коэффициентов и построения графика. Он должен предоставлять все, что может обеспечить R. В качестве альтернативы самому запуску R вы можете найти его на сайте PHPExcel в codeplex. Если вы не можете найти решение exec(), вы можете разграбить этот код, чтобы обеспечить чистое решение PHP, хотя я был бы признателен за любые отзывы / исправления /etc