Nextcloud

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

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

报错分析

按照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/MintCentOS/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

(1)

本文由 橙叶博客 作者:FrankGreg 发表,转载请注明来源!

关键词:,

热评文章

评论:

3 条评论,访客:3 条,博主:0 条
  1. 和合
    和合发布于: 

    您好,我就是这个错误,而且按照教程更改了,提示照样出现。

    PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(\”PATH\”) 测试时仅返回空结果.
    Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm.

    printenv PATH返回值是
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    如果您知道解决方法请联系我,谢谢。

    • 无望
      无望发布于: 

      在php-fpm.conf里也加这一行试试看
      env[PATH] = /usr/local/bin:/usr/bin:/bin
      不要问我为什么,我也是小白,瞎JB捣鼓解决。

  2. 楠枫守雨
    楠枫守雨发布于: 

    大神 几乎openmediavault这个nas下安装得nexl/own都会提示这个..

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据