Goo*_*bot 6 linux ubuntu nginx environment-variables php-fpm
我试图添加$PATH为所有用户,包括网络服务器的用户(即,WWW的数据)用不同的方法,例如编辑/etc/profile,/etc/environment等。在所有的情况下,它工作在终端,但不与内壳PHP命令。
例如echo $PATH在终端中显示可用路径,包括我添加的路径;但是,shell_exec('echo $PATH')在 PHP 中显示了没有我添加的路径的原始路径:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
如何全局设置 $PATH 以供网络服务器用户使用?我在 Ubuntu/Debian 上使用 nginx。
我尝试编辑/etc/init.d/nginx,我认为这是nginx的起点,但没有效果。
你没有说哪个发行版,但我猜是 Ubuntu 或类似的。
中定义的默认 PATH/etc/init.d/apache2是/usr/local/bin:/usr/bin:/bin
在我的 Ubuntu 系统上有一个文件/etc/apache2/envvars. 您可以PATH在此文件中定义 ,并在重新启动 Apache 时定义将使用的路径。
PATH=$PATH:/your/addtional/path
Run Code Online (Sandbox Code Playgroud)
对于 nginx,您可以通过您想要的路径作为 fastcgi_param
location ~ \.php$ {
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/tmp/php.socket;
fastcgi_param PATH /usr/local/bin:/usr/bin:/bin:/your/path;
}
Run Code Online (Sandbox Code Playgroud)
您需要指定所需的整个 PATH
进一步更新。
我已将 php 设置为 fcgi(感谢@MichaelHampton 进行了一些聊天讨论),我发现看到的路径system(...);是您的 php init 脚本中设置的路径(在我的情况下为 /etc/init.d/php-fcgi) .
经过大量挖掘后,我发现了这导致了解决方案
env[PATH]=/your/custom/path
Run Code Online (Sandbox Code Playgroud)
在php5-fpm.conf或正如@Ali 在php5-fpm启动脚本中指出的那样。
| 归档时间: |
|
| 查看次数: |
6512 次 |
| 最近记录: |