我无法将/usr/local/bin添加到apache用户的PATH变量中。用户没有.profile,我无法将su添加到用户,我无法使用exec并添加从php导出到PATHSetEnv PATH /usr/local/binhttp.conf或.htaccess文件没有区别。我找不到envvars文件来改变它,但我怀疑还有其他问题。我已经重新启动了apache,实际上也重新启动了我的服务器。
/usr/local/bin
PATH
.profile
su
exec
SetEnv PATH /usr/local/bin
http.conf
.htaccess
envvars
mqxuamgl1#
最后按照Alfe在他的回答中建议的那样结束了,除了我添加到/etc/sysconfig/httpd中的不是/etc/init.d/httpd文件(更新时很容易被覆盖):export PATH=${PATH:+$PATH:}/usr/local/bin
/etc/sysconfig/httpd
/etc/init.d/httpd
export PATH=${PATH:+$PATH:}/usr/local/bin
hzbexzde2#
查看/etc/passwd,了解Apache用户使用的登录shell(在EC2 Ubuntu示例上,它应该是/bin/sh,这是到/bin/dash的链接)然后查看该shell的手册页,并找出登录时读取的配置文件。(对于/bin/dash,它将是用户主目录中的.login。)在这些文件中,您应该能够根据需要扩展您的$PATH。编辑:由于您似乎没有该用户的登录shell:看一下/etc/init.d/*启动系统服务的脚本。Apache将是其中之一。它们是以root启动的,并且可能会更改当前用户(例如,更改为apache用户)。在那里,您可以根据需要调整PATH。然而,修补这些脚本并不被认为是典型的配置。更新可能会覆盖你曾经在那里修补过的东西。
/etc/passwd
/bin/sh
/bin/dash
.login
$PATH
/etc/init.d/*
root
2条答案
按热度按时间mqxuamgl1#
最后按照Alfe在他的回答中建议的那样结束了,除了我添加到
/etc/sysconfig/httpd
中的不是/etc/init.d/httpd
文件(更新时很容易被覆盖):export PATH=${PATH:+$PATH:}/usr/local/bin
hzbexzde2#
查看
/etc/passwd
,了解Apache用户使用的登录shell(在EC2 Ubuntu示例上,它应该是/bin/sh
,这是到/bin/dash
的链接)然后查看该shell的手册页,并找出登录时读取的配置文件。(对于/bin/dash
,它将是用户主目录中的.login
。)在这些文件中,您应该能够根据需要扩展您的$PATH
。编辑:
由于您似乎没有该用户的登录shell:看一下
/etc/init.d/*
启动系统服务的脚本。Apache将是其中之一。它们是以root
启动的,并且可能会更改当前用户(例如,更改为apache用户)。在那里,您可以根据需要调整PATH。然而,修补这些脚本并不被认为是典型的配置。更新可能会覆盖你曾经在那里修补过的东西。