PHP脚本中的PHP环境变量
环境变量用于设置PHP应用程序,应用程序运行平稳。 我面临的问题是,当我试图引用应用程序的数据库连接文件并从CLI运行它时 Apache设置:PHP脚本中的PHP环境变量,php,apache,command-line,scripting,Php,Apache,Command Line,Scripting,环境变量用于设置PHP应用程序,应用程序运行平稳。 我面临的问题是,当我试图引用应用程序的数据库连接文件并从CLI运行它时 Apache设置: <VirtualHost *:80> DocumentRoot /var/www/html ServerName server.hostname.com SetEnv HOSTNAME 'hostname' SetEnv USERNAME 'username' SetEnv DB_PASSWORD 'password' SetEn
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName server.hostname.com
SetEnv HOSTNAME 'hostname'
SetEnv USERNAME 'username'
SetEnv DB_PASSWORD 'password'
SetEnv DB_NAME 'databaseName'
</VirtualHost>
DocumentRoot/var/www/html
ServerName server.hostname.com
SetEnv主机名“HOSTNAME”
SetEnv用户名“USERNAME”
SetEnv DB_密码“PASSWORD”
SetEnv DB_名称“databaseName”
环境变量存储所有与连接相关的数据,并且连接正在引用这些数据
连接:
<?php
$username = $_SERVER['USERNAME'];
$password = $_SERVER['DB_PASSWORD'];
$hostname = $_SERVER['HOSTNAME'];
$database = $_SERVER['DB_NAME'];
error_reporting(0);
$mysqli = new mysqli($hostname, $username, $password, $database);
当您通过CLI
运行PHP
脚本时,它与apache
无关,因此您将无法访问变量
还有其他选择:
在PHP
脚本中设置它们,并使用include('/path/to/variables.PHP')代码>在脚本中
在系统上全局设置它们(可能很危险)
将它们作为命令行选项传递:php myscript.php var1 var2
,然后使用$argv[1]、$argv[2]
在调用脚本之前在命令行上设置变量:APPLICATION\u ENV=staging php myscript.php
该变量将在$\u服务器数组中可用:$\u服务器['APPLICATION\u ENV']
。这将在脚本完成执行后保留在环境中,您可能不希望这样做
这取决于你的需要。我个人认为第一种选择是最简单的
请在此处阅读更多信息: