CLI 中的 PHP 环境变量

CLI 中的 PHP 环境变量

环境变量用于设置 PHP 应用程序,应用程序运行顺利。我遇到的问题是当我尝试引用应用程序的数据库连接文件并从 CLI 运行它时。

Apache 设置:

<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>

环境变量存储所有与连接相关的数据,并且连接引用这些数据。

联系:

<?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 运行它时,它不会获取环境变量,并且由于同样的原因,它也不会让我运行在服务器上设置的 cronjobs。

答案1

如果你是不是在共享托管环境中,您可以放置​​您的变量,并且从 CLI 运行时/etc/environment可以通过它们访问。$_SERVER

格式为:

HOSTNAME="hostname"
USERNAME="username"
DB_PASSWORD="password"
DB_NAME="databaseName"

不是SetEnv,每行一个。

这将允许将这些潜在敏感的配置值保留在代码之外(因此也保留在版本控制之外),以增加安全性。

相关内容