ter*_*don 2 environment-variables apache-httpd
我在 dba.se 上问了一个问题,关于如何为我的 Perl CGI 脚本提供访问它需要查询的 MySQL 数据库所需的密码。我只收到了一个答案,但那个答案建议我将密码保存为环境变量。
好的,按照apache2
运行,用户是:www-data
/etc/passwd
$HOME
/var/www
$ grep www /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh
Run Code Online (Sandbox Code Playgroud)
我尝试/var/www/.profile
用这条线创建
export db_pass="password"
Run Code Online (Sandbox Code Playgroud)
然后让我的 Perl 脚本打印$ENV{"db_pass"}
但失败了,变量是空的。我检查了一下,$ENV{PATH}
并按预期打印。
那么,如何为该用户设置任意环境变量?
该服务器是在 VM 上运行的 Ubuntu 服务器(在 Windows 上运行,不是我的选择,不要问)。
$ apache2 -version
Server version: Apache/2.2.14 (Ubuntu)
Server built: Feb 14 2012 16:42:25
Run Code Online (Sandbox Code Playgroud)
您使用 Apache环境变量操作。
例如:
SetEnv db_pass swordfish
Run Code Online (Sandbox Code Playgroud)
这可以在 httpd.conf 或 .htaccess 中完成。您还可以在重写规则中设置环境变量,如下所示:
RewriteRule someurl - [E=dbpass:swordfish]
Run Code Online (Sandbox Code Playgroud)