为了满足PubSubHubbub 0.4规范的要求,我必须为每个文件发送rel=self标题。 我现在试图用Apache的mod_headers和环境variables来做到这一点: Header append Link '<http://example.org%{REQUEST_URI}e>; rel="self"' 这个工作只要文件是由PHP处理,但不适用于没有被mod_php或任何CGI进程处理的静态文件(如*.htm )。 似乎没有办法获得所有当前Apache环境variables的列表,所以我不能检查哪些实际可用。 所以我的问题是:我怎样才能访问Header append指令中当前请求的URL的相对path? 在Apache 2.2.22-13+deb7u4上发生在Debian 7上。
我用鱼壳 。 我试图运行与solarized主题 tmux内的vim ,但颜色被破坏,除非我运行: set -lx TERM screen-256color-bce; 在运行tmux attach之前。 这是每天运行这个烦人的,所以我想永久设置TERMvariables。 然而,当我用set -U设置这个特定的variables时,鱼似乎忽略了: $ set -U foo bar; echo $foo foo bar $ set -U TERM screen-256color-bce; echo $TERM TERM xterm $ set -lx TERM screen-256color-bce; echo $TERM TERM screen-256color-bce 我甚至尝试在~/.config/fish/config.fish放置set -lx TERM screen-256color-bce ~/.config/fish/config.fish ,但是新的鱼(在tmux之外启动)总是将TERM设置为xterm 。
如果我在nginxconfiguration中使用了一个环境variables,并且nginx被configuration为仅提供静态文件(html,js,css – 例如AngularJs应用程序),那么我有什么办法可以在nginx提供的JS文件中使用环境variables? 或者是执行此操作来运行非静态服务器的唯一方法,例如io.js,php等 顺便说一句,你不能在nginx的configuration中使用环境variables。 当我在nginxconfiguration中讨论环境variables时,我的意思就像在这篇文章中: 我如何在Nginx.conf中使用env APP_WEB_1_PORT_5000_TCP_ADDR; 环境variables env APP_WEB_1_PORT_5000_TCP_ADDR; 和$ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"}; 解释你的用例 我的具体用例是在Docker容器中有一个由nginx驱动的AngularJS应用程序。 该应用程序是一个“单页应用程序”,它使用完全在另一个系统上运行的API。 目前我在生产和分期之间运行不同的docker容器,因为应用程序有一些不同的configuration,例如Google-Analtyics代码。 这个特定于环境的数据保存在一个config.js文件中,并且这些值当前是硬编码的,git中的master分支的一个值,以及staging分支的值不同。 我想改变devise,所以我可以使用相同的容器来生产和舞台。 我想运行一个ENV var到容器中( docker run -e GACODE=UA-12345-6 … )并让nginx使用ENV var(通过env GACODE;和$ENV{"GACODE"}所以config.js文件可以使用传入的GoogleAnaltyics代码,而不是对它们进行硬编码)。 我不知道这是否可能(因此这个问题;))。 只使用nginx使我的容器是一个单一的进程,而如果我必须使用io.js,那么我将需要多个链接的容器和更多的移动部分是更复杂的)。
我试图运行一个使用$ HOME和$ USER环境variables的服务。 我可以把它们设置成服务本身,但这只是一个临时的解决办法。 比方说,我有一个脚本test.sh与以下内容: echo $USER 我用start-stop-daemon运行它来查看我的结果: $ start-stop-daemon –start –exec `pwd`/test.sh –user guest –group guest –chuid -guest root 似乎不更新环境,也许应该被报告为一个错误? 我发现了一个令人讨厌的hacky解决scheme,它只对我的这个简单的用例起作用(原因不明): $ start-stop-daemon –exec /usr/bin/sudo –start — -u guest -i 'echo $USER' guest 我确定有人偶然发现了这一点,我对清洁解决scheme感兴趣。 $ start-stop-daemon –version start-stop-daemon 1.13.11+gentoo
我试图用包括web服务器用户(即www-data)在内的所有用户为编辑/etc/profile , /etc/environment等不同的方法添加$PATH 。在任何情况下,它都可以在terminal中运行, PHP中的命令。 例如terminal中的echo $PATH显示可用的path,包括我添加的; 但是,PHP中的shell_exec('echo $PATH')显示了没有添加path的原始path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 我怎样才能设置全球$ PATH可以由networking服务器用户使用? 我在Ubuntu / Debian上使用nginx。 我试图编辑/etc/init.d/nginx ,我认为这是nginx的起点,但是没有效果。
我的haproxy.cfg文件有一个使用主机名的后端服务器: backend servers server myapp ${PORTAL_PORT_3000_TCP_ADDR}:${PORTAL_PORT_3000_TCP_PORT} maxconn 32 myapp正在运行在链接到haproxy docker容器的其他docker容器中。 提到的环境variables在haproxy容器中有值,但是当容器开始引发这个错误 [ALERT] 244/134924 (8) : parsing [/etc/haproxy.cfg:16] : Unknown host in '${PORTAL_PORT_3000_TCP_ADDR}:${PORTAL_PORT_3000_TCP_PORT}' [ALERT] 244/134924 (8) : Error(s) found in configuration file : /etc/haproxy.cfg [ALERT] 244/134934 (8) : Fatal errors found in configuration.
在我的Apacheconfiguration中,如果我看到访问者来自特定的IP范围,我想设置一个环境variables。 目前我这样做: SetEnvIfNoCase Remote_Addr "^194\.8\.7[45]\." banned=spammer-ip SetEnvIfNoCase Remote_Addr "^212\.156\.170\." banned=spammer-ip 我更喜欢的是这样的: SetEnvIfIpRange 194.8.74.0/23 banned=spammer-ip SetEnvIfIpRange 212.156.170.0/24 banned=spammer-ip …因为我认为把一个IP地址转换成一个string,然后做一个正则expression式是完全浪费资源。 我可以做一个 Deny From 194.8.74.0/23 …但后来我没有得到一个variables,我可以检查我的403错误页面 – find访问被拒绝的原因。 任何build议,我可能会错过? 有没有可以根据“IP地址范围”设置环境variables的Apache2 MOD?
从命令提示符下,我得到以下内容: >echo %ProgramFiles% C:\Program Files 然而,一些应用程序(在这个例子中是PHP,尽pipe我在Apache的httpd.conf中看到了相同的行为),它是: >php -r "echo $_ENV['ProgramFiles'];" C:\Program Files (x86) 为什么是这样? 背景:我正在开发的主机操作系统是32位或64位的configuration文件,这是非常好的脚本。 在32位系统上, %ProgramFiles%是“C:\ Program Files”,而在一个64位系统上, %ProgramFiles%看起来像是返回C:\Program Files (x86) 。 我只是好奇,为什么当我从Windows命令提示符(或在浏览器栏等)尝试它时,不一样。 有没有一个64位的命令提示符或什么的?
我有一个Korn shell脚本 #!/bin/ksh # set the right ENV case $INPUT in abc) export BIN=${ABC_BIN} ;; def) export BIN=${DEF_BIN} ;; *) export BIN=${BASE_BIN} ;; esac # exit 0 <- bad idea for sourcing the file 现在这些VAR仅在一个子shell中导出,但是我希望它们也可以设置在我的父shell中,所以当我在提示符时,这些variables仍然可以正确设置。 我知道 . .myscript.sh 但有没有办法做到这一点,而不是'采购'? 因为我的用户经常忘记“来源”。 编辑1:删除“退出0”的一部分 – 这只是我打字没有先考虑 编辑2:添加更多的细节为什么我需要这个:我的开发人员编写代码(为了简单起见)2应用程序:ABC和DEF。 每个应用程序都由单独的用户usrabc和usrdef在生产环境中运行,因此已经为其应用程序设置了$ BIN,$ CFG,$ ORA_HOME等等。 所以 ABC的$ BIN = / opt / […]
我正在寻找永久性的添加一个目录到大量的Windows机器上可用的%PATH%环境。 有没有办法从命令行( cmd )做到这一点,所以我可以编写一个解决scheme,而不是在几十个服务器上使用GUI。 我怎样才能做到这一点?