Я относительно новичок в R и очень новичок в командной строке Linux (Ubuntu). Я пытаюсь написать страницу на PHP, которая содержит команду, которую я хотел бы выполнить в R, а затем передать результаты, чтобы иметь возможность работать с ними. Я пробовал варианты кода ниже, но я получаю только приветственное сообщение R в качестве моего вывода:
<?php $rQuery = "\"echo 3 + 1;\" | /usr/bin/R --no-save"; exec($rQuery, $output); print_r($output); ?>
Когда я вручную набираю $ rQuery в командной строке, результат будет тем, что я ожидал бы: [1] 4.
Я знаю, что мне, должно быть, чего-то не хватает, но я не смог разобраться в своих поисках.
Пара пунктов:
Вы хотите --slave
в качестве опции, это означает --no-save
и отключает приветствие; см. руководство для большего.
То, что вы действительно хотите, – отличный R-inside-Apache Джефф Хорнер, см. Здесь больше . Он может использовать шаблоны для шаблонов, например, для варки . Лучше всего, Jeff теперь предоставляет пакет .deb для вас: используйте deb http://ppa.launchpad.net/jeffreyhorner/rapache/ubuntu lucid main
в /etc/apt/sources.list
.
Если вы настаиваете на подключении к php, подумайте, что Littler скриптовый интерфейс Jeff и я написал. Он начнется быстрее, чем R.
Для чего-то такого простого, вы не должны даже использовать PHP, потому что вы можете делать это исключительно с помощью RApache, пакета для brew
и простого HTML (CSS / JS являются необязательными). Просто прочитайте руководство по RApache и посмотрите видеоурок Jeroen Ooms . Вы также должны прочитать руководство по brew
. Джефф действительно отлично поработал!
В двух словах вам просто нужно настроить файл apache2.conf или .htaccess . Вместо использования директив <Directory>
или <Location>
вы можете использовать директиву <FilesMatch>
чтобы вы могли сопоставлять файлы с помощью regexpr. Вот пример .htaccess :
<FilesMatch "^.+\.rhtml$"> SetHandler r-script RHandler brew::brew </FilesMatch>
Я использую специальное расширение файла .rhtml
где я смешиваю HTML с синтаксисом R в тегах <%
и %>
(см. Документацию на основе brew
). Я не использовал brew
с PHP, потому что brew
с HTML сделал трюк.
В любом случае, вы сказали, что хотите:
написать страницу на PHP, которая содержит команду, которую я хотел бы выполнить в R, а затем передать результаты, чтобы иметь возможность работать с ними
system
или file.*
Команды и беспорядок в вашей системе! Вы можете использовать AppArmor, но это еще далеко … XML
R, либо rjson
(мой любимый, и я рекомендую его). Затем вы можете передать объект toJSON
функции toJSON
и неэриализовать его с помощью JavaScript. Конечно, это верно, только если ваши клиенты являются веб-браузерами, иначе, если вы, скажем, хотите передать некоторую информацию во встроенную систему, вы должны использовать стандартный XML
путь Для получения дополнительных вопросов используйте список рассылки RApache .
… и привет Р-webdev мир! знак равно
Независимо от того, какой пользователь apache запущен, поскольку не может иметь одинаковые переменные среды или разрешения, как при его запуске из командной оболочки вручную. Узнайте, какой пользователь apache работает как, и убедитесь, что он имеет права и переменные среды.