从PHP中看,我需要PATH环境variables来包含/ usr / local / bin,这样我就可以在PHP代码中使用exec()执行/ usr / local / bin中的二进制文件,而不用写完整的path,例如exec “FFMPEG”);
如果从PHP我运行echo getenv(“PATH”)输出:/ sbin:/ usr / sbin:/ bin:/ usr / bin
但是,如果我login到服务器作为根通过SSH,我写在terminal回声$ PATH我得到:/ / sbin:/ bin:/ usr / local / sbin:/ usr / local / bin:/ sbin:/ bin :/ usr / sbin目录:在/ usr / bin中:/根/ bin中
所以当我login到命令行时,/ usr / local / bin就已经包含了,但是PHP运行的时候没有。
那么如何将这些目录添加到path环境variables中,这样PHP也能识别它们呢?
我尝试添加SetEnv PATH $ PATH:/ usr / local / bin到/var/www/vhosts/mydomain.net/conf/vhost.conf(其中包含其他有效的指令),但是并没有改变事情。 我也试过把它添加到一个.htaccess文件(如果它是有道理的话),但它也不起作用。
我已经search了论坛,发现了很多相似或相同的问题,但没有答案,或至less没有任何作品。
在您的apache启动脚本中,尝试导出您的自定义path。
IIRC,Apache启动时默认为通用环境。 所以,即使改变它在用户的env中的价值也不会有诀窍。
编辑php.ini的子句include_path指示在哪个path下php取脚本。
那么,根据您的需要,您可以将其设置在脚本中( Documenation Link )
<?php // Works as of PHP 4.3.0 set_include_path('/inc'); // Works in all PHP versions ini_set('include_path', '/inc'); ?>
或者你可以在php.ini文件中设置它( 文档链接 )
include_path=".:/php/includes