我有这个ini文件:/etc/php5/apache2/conf.d/appconfig.ini
以下是文件的内容:
serverhost = localhost
我重置了apache2服务器。如何在不指定ini文件路径的情况下从PHP脚本获取此值?我假设当PHP解析这个文件时,它会将serverhost的值存储在某个可访问的地方。我知道这个文件已被解析,因为我运行了php --ini
。
我试过这个剧本:
<?php
echo ini_get("serverhost");
?>
但没有回复。我可以这样说:
<?php
$file = parse_ini_file("/etc/php5/apache2/conf.d/appconfig.ini");
echo $file["serverhost"];
?>
但我想知道如何将它作为排序的环境变量。 PHP确实解析了文件吗?
毕竟,我将在appconfig.ini
中存储密码。我想知道存储密码的最佳做法是什么。
答案 0 :(得分:0)
要保护邮件服务器或SQL Server的连接设置,可以将它们存储在wwwroot文件夹之外的文件中。例如,如果您的站点位于/var/sites/mysite/www
的服务器上,则会将该文件放在/var/sites/mysite/_conf
之类的目录中。例如,在/var/sites/mysite/_conf/appconfig.inc.php
创建一个文件:
<?php
$smtpServerHost = 'localhost';
$smtpServerUser = 'user@example.com';
$smtpServerPass = 'Password1';
?>
然后,当您在应用程序中包含该文件时,您只需调用这些变量即可。例如,如果您有formhandler.php
:
<?php
include_once '../_conf/appconfig.inc.php';
include_ once 'Mail.php';
$smtp = Mail::factory('smtp', array (
'host' => $smtpServerHost,
'auth' => true,
'username' => $smtpServerUser,
'password' => $smtpServerPassword)
);
$headers['From'] = 'richard@example.com';
$headers['To'] = 'joe@example.com';
$headers['Subject'] = 'Test message';
$mail = $smtp->send($to, $headers, print_r($_POST));
?>