The test with getenv(“PATH”) only returns an empty response报错解决办法

Posted by 橙叶 on Thu, Jul 13, 2017

因为我并没有遇见过这个错误,所以我只能结合官方文档和一些资料摸黑写(几乎相当于翻译一遍),希望有人能提供一下报错的样本。如果有什么问题,在下面提即可(这两天很闲)。

报错分析

按照Nextcloud的文档的说法,使用php-fpm时,系统环境变量(如PATH,TMP或其他)不会以与使用php-cli相同的方式自动填充。类似getenv(‘PATH’)这样的PHP调用可能会返回一个空的结果。

原文:When you are using
php-fpm
 , system environment variables like PATH, TMP or others are not automatically populated in the same way as when using php-cli. A PHP call like
getenv('PATH');
  can therefore return an empty result. So you may need to manually configure environment variables in the appropropriate 
php-fpm
  ini/config file.

动手解决

所以,我们需要手动配置以下环境变量。配置文件一般位于以下目录:

Ubuntu/Mint CentOS/Red Hat/Fedora
/etc/php5/fpm/
/etc/php-fpm.d/

配置文件一般名为www.conf。当然,因为实际环境的不同,文件名和文件所在的位置可能有所不同。

配置文件中一搬含有以下内容(如果没有可以自行添加):

;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp

删掉每一行前面的

;

 ,将注释取消掉。

执行

printenv PATH

 命令,确认变量生效:

$ printenv PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
/sbin:/bin:/

搜了一下,这的确是个有效的解决办法。不过因为没遇见过这个问题,实际效果未知。

GitHub issue:https://github.com/owncloud/core/issues/17504



comments powered by Disqus