Erro: Impossível definir a variável de ambiente SCIHOME

1

Estou tentando usar o Scilab por meio do PHP em meu servidor, como descrito em este documento .

Estou executando o Ubuntu 16.04. Eu tenho um servidor Apache em execução. Eu instalei o Scilab com apt-get install scilab . Eu posso escrever com sucesso o código do Scilab como:

scilab -nwni -nb -e "m=[1 2 3; 3 4 5];disp(m);exit"

Então agora estou tentando executá-lo a partir do PHP. Eu tentei os exemplos no documento. Por exemplo:

<?php
    exec('scilab -nwni -nb -e "m=[1 2 3; 3 4 5];disp(m);exit;"', $output);
    print_r($output);
?>

Mas eu sempre entendo:

Error: Impossible to define SCIHOME environment variable.
SCIHOME not defined.

Eu não sei o que estou fazendo de errado e como corrigi-lo ...

Qualquer ajuda seria muito apreciada!

    
por Sharcoux 23.12.2016 / 16:52

3 respostas

0

Ok, finalmente resolvi o problema. Eu sou apenas idiota Você só precisa definir a variável manualmente. Eu já tentei dessa forma, mas cometi um erro no nome da variável ...

exec('SCIHOME=/var/www/ scilab -nwni -nb -e "m=[1 2 3; 3 4 5];disp(m);exit;" 2>&1', $output);
    
por 29.03.2017 / 21:39
1

Eu tive o mesmo problema. Experimente:

exec('sudo scilab -nwni -nb -e "m=[1 2 3; 3 4 5];disp(m);exit;" 2>&1', $output);
print_r($output); 

Executar o sudo via www-data user é possível, se você adicionar permissão, tente:

sudo visudo -f /etc/sudoers

e adicione ao final do arquivo

 www-data  ALL=(ALL)  NOPASSWD:  /usr/bin/scilab, /usr/bin/scilab-cli, /usr/bin/scilab-adv-cli

Não tenho certeza, se você tiver que adicionar todos esses arquivos scilab .. talvez apenas o scilab.

    
por 25.03.2017 / 13:19
0

Eu me lembro de algo sobre a possibilidade de múltiplos arquivos .ini para php, o que significa que a execução de cli e a execução de gateway podem funcionar de forma diferente ou inesperada porque eles usam diferentes arquivos ini e / ou adquirem permissões diferentes devido ao usuário: group executá-los. O usuário: o grupo que está tentando executar na segunda instância tem permissão para gravar no ambiente, e você está obtendo um comportamento governado pelo arquivo .ini que você acha que está conseguindo.

Apenas um pensamento.

    
por 09.01.2017 / 16:58