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