Я использую WAMP Server 2.5 (32-разрядный) с PHP 5.5.12 на 64-разрядном компьютере с Windows 7 с пакетом обновления 1 (SP1). Я бегу Matlab R2014b.
Я пытаюсь выполнить Matlab через PHP.
Функция 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:\wamp\www\testMatlab" -logfile logfile.txt -r "phptest;"
код выполняется без проблем, и создается файл «sucess.txt».
Тем не менее, если я пытаюсь выполнить через php-файл:
<?php
$testStr = 'matlab -wait -nosplash -sd "C:\wamp\www\testMatlab" -logfile logfile.txt -r "phptest;"';
exec($testStr);
echo("Done!");
?>
Файл журнала показывает следующую ошибку:
Серьезный:
Ошибка проверки лицензии
Любая помощь будет оценена.
Вы можете заставить MATLAB использовать определенный файл лицензии, запустив его с -c
флаг:
'matlab -c "path/to/license" -wait -nosplash -sd "C:\wamp\www\testMatlab" -logfile logfile.txt -r "phptest;"';
matlab -c файл лицензии запускает MATLAB, используя указанный файл лицензии.
Аргумент licensefile может иметь форму port @ host или может быть
Разделенный двоеточиями список имен файлов лицензий. Эта опция вызывает
Переменные среды LM_LICENSE_FILE и MLM_LICENSE_FILE должны быть
игнорируются.
Увидеть: http://www.mathworks.nl/help/matlab/ref/matlabwindows.html
Других решений пока нет …