我是Ubuntu的新手,正在尝试使用exec在PHP中执行Rscript。但是它没有运行。当我从终端运行它时,它执行得很好。
这是我从命令行运行的代码:
/usr/lib/R/bin/Rscript /home/xin/Documents/ClassificationApp/ClassificationAllInOne.R "http://localhost/categorisation/public/classification/data/1423242832.json"
它完美地工作。
通过搜索,我可以推断出这是一个权限问题,因为PHP / apache以www-data的身份运行,而Rscript是root。
我已经尝试了对该Sudoers
文件的一些修正,但均无效果:-
User_Alias WWW_USER = www-data
Cmnd_Alias WWW_COMMANDS = /usr/lib/R/bin/Rscript, /home/xin/Documents/Classifi$
WWW_USER ALL = (ALL) NOPASSWD: WWW_COMMANDS
这没有用。我花了整整一天的时间搞各种组合。这让我发疯了。
任何灵感都将受到欢迎
中号
当调试执行外部脚本的PHP代码(R
,bash
,...),以最简单的办法就是安装php-cli
sudo apt-get install php-google-api-php-client
php-cli
表示“ PHP命令行界面”。顾名思义,这是从终端使用PHP的一种方式。
然后使用执行脚本 /usr/bin/php -q <?php YourPHPCodeHere; ?>
或者,创建一个包含PHP代码的文件:
#!/usr/bin/php -q
<?php
echo "Hello world...";
?>
然后 chmod +x szNameOfFile
然后输入 ./szNameOfFile
如果您不想键入PHP脚本的完整路径,只需bin
在主目录中创建一个目录,然后将所有脚本文件复制到该目录中(退出并重新打开终端后,该目录会自动添加到该路径中)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句