我正在做一个关于并行处理的项目,在这里我试图通过php执行一个CUDA二进制文件。我已将最终二进制文件上传到/ var / www / cuda / uploads /文件夹,(uploads文件夹有777 Permission& mandelbrot.out是通过终端在同一服务器上创建的)。
现在我试图通过POST请求传递命令行参数,一切正常,但我收到错误说,
./ mandelbrot.out:加载共享库时出错:libcudart.so.5.0:无法打开共享对象文件:没有这样的文件或目录
但是我可以在终端和终端中运行相同的命令。我得到了正确的输出。我在那里看了一篇帖子,我被要求提供文件的完整路径,我也试过了,还是没有运气。
我尝试在网上搜索,我没有找到太多资源,有人可以帮助我吗?
答案 0 :(得分:1)
PHP运行的环境未经修改地传递给它的子进程(在你的情况下,./mandelbrot.out
,除非你专门修改它.PHP再次从你的HTTP服务器继承它,例如Apache。也许你的HTTP服务器没有在其共享库搜索路径中有libcudart.so
的路径。对于Apache,请尝试在httpd.conf
中添加:
SetEnv LD_LIBRARY_PATH <absolute path to folder that contains libcudart.so>