我已经设置了运行Nginx和php-fpm容器的Laradock环境.从PHP我想调用一个可执行文件:
print exec('whoami'); // www-data
echo "
";
exec('/usr/local/bin/assimp version', $output, $returnValue);
print $returnValue; // 127
echo "
";
print_r($output); // Array ( )
?>
对于我来说,返回值127听起来好像没有找到文件…
但是,当我使用用户“ www-data”进入容器时,一切正常:
docker-compose exec --user www-data php-fpm bash
assimp version // -> valid info response
由于我不确定是否必须将可执行文件放置在“工作区”或php-fpm容器中,因此我尝试了两种方法,结果相同.另外,将可执行文件放在/ var / www目录中也无济于事.
该可执行文件是由Dockerfile添加的:
USER www-data
COPY ./assimp /usr/local/bin/assimp
COPY ./libassimp.so.4.1.0 /usr/local/lib/libassimp.so.4.1.0
RUN ln -s /usr/local/lib/libassimp.so.4.1.0 /usr/local/lib/libassimp.so
RUN chmod 777 /usr/local/bin/assimp
RUN echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc
RUN echo 'export LD_LIBRARY_PATH=/usr/local/lib' >> ~/.bashrc
有什么想法可以解决此问题或如何继续进行调试吗?提前致谢!