I am running an in build C++ compiled file using PHP's system()
command But when I run this PHP code I am getting error that LD_LIBRARY_PATH
value not set.
我正在使用PHP的system()命令运行一个构建C ++编译的文件但是当我运行这个PHP代码时,我收到LD_LIBRARY_PATH值未设置的错误。
But when I run the command in command prompt directly I am getting the result.
但是当我直接在命令提示符下运行命令时,我得到了结果。
Please help me to fix this issue.
请帮我解决这个问题。
1 个解决方案
#1
0
Configure PHP or set LD_LIBRARY_PATH in run time in PHP script. Similar example in c++:
在PHP脚本中配置PHP或在运行时设置LD_LIBRARY_PATH。 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>
#1
0
Configure PHP or set LD_LIBRARY_PATH in run time in PHP script. Similar example in c++:
在PHP脚本中配置PHP或在运行时设置LD_LIBRARY_PATH。 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>