当从Wamp服务器执行时,Matlab返回许可证检查错误,但不返回命令提示符



我在Windows 7 SP1 64位计算机上运行带有PHP 5.5.12的WAMP Server 2.5(32位)。我正在运行Matlab R2014b。

我正在尝试通过PHP执行Matlab。

Matlab函数phptest.m如下:

function phptest
% Open file
fid = fopen('success.txt', 'wt');
%Print a test string
fprintf(fid, 'Test matlab function');
% Close file
fclose(fid);
% Quit MATLAB
quit force

当我从命令提示符执行时:

matlab -wait -nosplash -sd "C:wampwwwtestMatlab" -logfile logfile.txt -r "phptest;"

代码运行时没有问题,并且创建了文件sucess.txt。

但是,如果我尝试通过php文件执行:

<?php
$testStr = 'matlab -wait -nosplash -sd "C:wampwwwtestMatlab" -logfile logfile.txt -r "phptest;"';
exec($testStr);
echo("Done!");
?>

日志文件显示以下错误:

严重:签出许可证时出错

如有任何帮助,我们将不胜感激。

您可以通过使用-c标志运行MATLAB来强制使用特定的许可证文件:

'matlab -c "path/to/license" -wait -nosplash -sd "C:wampwwwtestMatlab" -logfile logfile.txt -r "phptest;"';

matlab-c licensefile使用指定的许可文件启动matlab。licensefile参数可以具有以下形式port@host或者可以是以冒号分隔的许可证文件名列表。此选项会导致LM_LICENSE_FILE和MLM_LICENSE_FILE环境变量已忽略。

请参阅:http://www.mathworks.nl/help/matlab/ref/matlabwindows.html

最新更新