Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用system()在PHP中运行命令时未获取LD_LIBRARY_路径_Php_C++_Amazon Ec2_Environment Variables_System - Fatal编程技术网

使用system()在PHP中运行命令时未获取LD_LIBRARY_路径

使用system()在PHP中运行命令时未获取LD_LIBRARY_路径,php,c++,amazon-ec2,environment-variables,system,Php,C++,Amazon Ec2,Environment Variables,System,我正在使用PHP的代码>系统())< /COD>命令运行一个内置C++编译文件 <pre> #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { char szBuffer[128]; char * psz = getenv("LD_LIBRARY_PATH"); printf("Initial LD_LIBRARY_PATH=%s\n",psz

我正在使用PHP的代码>系统())< /COD>命令运行一个内置C++编译文件
<pre>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
    char szBuffer[128];
    char * psz = getenv("LD_LIBRARY_PATH");
    printf("Initial LD_LIBRARY_PATH=%s\n",psz);
    putenv("LD_LIBRARY_PATH=/tmp/somedir1");
    psz = getenv("LD_LIBRARY_PATH");
    sprintf(szBuffer, "%s:tmp/somedir2",psz);
    printf("LD_LIBRARY_PATH=%s\n",psz);
    setenv("LD_LIBRARY_PATH", szBuffer,1);
    psz = getenv("LD_LIBRARY_PATH");
    sprintf(szBuffer, "%s:tmp/somedir3",psz);
    printf("LD_LIBRARY_PATH=%s\n",psz);
    setenv("LD_LIBRARY_PATH", szBuffer,1);
    psz = getenv("LD_LIBRARY_PATH");
    printf("LD_LIBRARY_PATH=%s\n",psz);
    return 0;
}
</pre>

output:
<pre>
Initial LD_LIBRARY_PATH=/tmp/dir1
LD_LIBRARY_PATH=/tmp/somedir1
LD_LIBRARY_PATH=/tmp/somedir1:tmp/somedir2
LD_LIBRARY_PATH=/tmp/somedir1:tmp/somedir2:tmp/somedir3
</pre>
但是当我运行这个PHP代码时,我得到了一个错误,
LD\u LIBRARY\u PATH
值没有设置

但是当我直接在命令提示符下运行命令时,我得到了结果


请帮助我解决此问题。

在PHP脚本中配置PHP或在运行时设置LD_LIBRARY_路径。c++中的类似示例:


#包括
#包括
int main(int argc,字符**argv){
char-szBuffer[128];
char*psz=getenv(“LD_LIBRARY_PATH”);
printf(“初始LD_库路径=%s\n”,psz);
putenv(“LD_LIBRARY_PATH=/tmp/somedir1”);
psz=getenv(“LD_LIBRARY_PATH”);
sprintf(szBuffer,“%s:tmp/somedir2”,psz);
printf(“LD_库路径=%s\n”,psz);
setenv(“LD_LIBRARY_PATH”,szBuffer,1);
psz=getenv(“LD_LIBRARY_PATH”);
sprintf(szBuffer,“%s:tmp/somedir3”,psz);
printf(“LD_库路径=%s\n”,psz);
setenv(“LD_LIBRARY_PATH”,szBuffer,1);
psz=getenv(“LD_LIBRARY_PATH”);
printf(“LD_库路径=%s\n”,psz);
返回0;
}
输出:
初始LD_库_路径=/tmp/dir1
LD_LIBRARY_PATH=/tmp/somedir1
LD_LIBRARY_PATH=/tmp/somedir1:tmp/somedir2
LD_LIBRARY_PATH=/tmp/somedir1:tmp/somedir2:tmp/somedir3