【发布时间】:2023-03-31 12:58:01
【问题描述】:
我正在尝试从 shell 中的 PHP 脚本打印在 .htaccess 中定义的环境变量。
我的树是:
/.htaccess(在根文件夹中)
/test/index.php(在“test”文件夹中)
我使用 SetEnv 在 .htaccess 中设置我的变量:
SetEnv HTTP_TEST "testing"
我的 PHP 脚本“/test/index.php”是:
#!/usr/bin/php
<?php
echo $_ENV['HTTP_TEST']; // print empty
echo $_SERVER['HTTP_TEST']; // print empty
echo getenv('HTTP_TEST'); // print empty
但是,如果我从浏览器访问我的 PHP 脚本,则没有问题(当然没有 #!/usr/bin/php...)
感谢您的帮助。
【问题讨论】:
-
您是从命令行还是从 http 请求运行 index.php 脚本?
-
无法通过命令行。由于那里根本不涉及 apache,因此您在 .conf/.htaccess 中所做的任何事情都不会产生任何影响。这就像想知道为什么你站在外面时会被雨淋,因为当你在屋里时不会被雨淋。
-
你在运行 mod_env 吗? stackoverflow.com/a/2008355/773522
-
@MarcB,这正是我问的原因......
-
您可以运行 cron 脚本并模拟“从浏览器运行”。基本上你可以使用
wget命令来调用一个http 请求。这将解决您的问题。
标签: php .htaccess shell setenv