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

Другие вопросы по тегам