我们服务器上有好多网站,都是用同一个数据库服务器,连接数据库服务器的ip,账号,密码都使用同一个,目前的问题是,我如果搬服务器了,也就是修改服务器ip,或者修改了连接数据库服务器的账号密码,我就得挨个网站的数据库连接地方都改一遍,超麻烦,我想定义个超级全局变量来存储连接数据库服务器的ip,账号,密码,这样不管在那个网站的php代码读取一下就可以了,以后修改了数据库服务器ip,或者账号密码,只要修改一下就可以,开始我试验在php.ini设置了一个值,但读不出来,不知道咋回事,我又不想用php.ini中默认的mysql.default_user =
mysql.default_password =
,不知道怎么定义这个超级全局变量,或者有其他更好的办法,

解决方案 »

  1.   

    linux下 
    在你喜欢的位置建立一个sql.php 
    在各个虚拟目录下 用文件硬链接 
    命令是‘#ln -s 原文件 要指定的目标’如 #ln -s sql.php /aa/bb/abcsql.php 
    执行命令时必需要有root权限 
    更多的ln命令功能,你自己man ln 
    以后每个网站编程时require每个目录的文件,如abcsql.php,要修改时,只要该一个文件就行了。 win下 
    用文件快捷方式
      

  2.   

    这是你的策略问题.你应该为每个网站都配置不同的用户名密码,这样修改起来有针对性.
    就算你更换了mysql服务器,将mysql表重新恢复一下就可以了,程序完全可以不动.
    当然如果你要修改单个用户的密码,还是要重新配置对应的网站的.
      

  3.   

    可以让每个网站引用你定义的同一个外部文件。
    比如说:web.config.php
    $ip = xxx;
    $username = root;
    $password = xxx;
    $db1 = xxx;
    $db2 = xxx2;
    $db...
    .....
    可以在php.ini 里定义这个web.config.php的路径include_path='xxx',然后在每个网站连接的页面include('web.config.php');
      

  4.   

    php已经提供了解决你问题的方案
    在 php.ini 中,设置 auto_prepend_file 指向配置文件即可
      

  5.   

    楼主的情况应该改php.ini更实际一点儿
      

  6.   

    正如楼上所说可以建立一个公用的文件,然后调用,也可以修改php.ini建议不同的网站使用不同的用户,有针对的更改