Я пытаюсь создать php-файл, который позволяет пользователям запускать R-скрипт, чтобы им не нужно было открывать сеанс на сервере, а просто открывать браузер.
Обычный bash из скрипта работает нормально (скажем, эхо «что-то», копирует и перемещает файлы данных, …), но R-скрипт не работает. R вызывается с помощью Rscript
Rscript --no-save --no-restore --verbose ./RAMS-mapa-onades-zones-manual.R > outputFile.Rout 2>&1
R выход дает эту ошибку
running
'/usr/lib/R/bin/R --slave --no-restore --no-save --no-restore'
Error in library("rgdal") : there is no package called 'rgdal'
Execution halted
Ну, библиотека (rgdal) — это первая строка скрипта R. Rgdal присутствует в установке R, и скрипт работает нормально (Rscript myscript.R) из командной строки.
Начиная с php, пользователь, выполняющий R, является www-данными, в то время как на терминале пользователь — meteo. Мне кажется, что некоторая переменная окружения должна быть установлена в выполнении php Rscript, но я не могу найти способ сделать это.
Любая идея? заранее спасибо
Кажется, мы нашли причину в комментариях. Пути к библиотекам не совпадают, но вы можете сделать так, чтобы они соответствовали с помощью параметра lib.loc функции library (). Как это:
library(rgdal, lib.loc = c("/home/meteo/R/i686-pc-linux-gnu-library/3.1", "/usr/local/lib/R/site-library", "/usr/lib/R/library"))
Других решений пока нет …