最近接一个项目,是php的,我以前一直用php4+IIs5+mysql4.0配置很容易搞定,
因为要做成三层架构的,需要面向对象编程,所以现在这个项目用php5写,问题是服务器环境一直搞不定!我的情况是:
1.已经安装IIs5.1和mysql4.0(因为有很多其他项目一直用的4.0数据库,所以没有更新成5.0及以上的),而且用php4跑以前的程序正常,所以大家不要怀疑我iis或mysql有问题;“
2.将php-5.2.9-2-Win32.zip(官方下载)解压到c:/php5下,复制php.ini-recommended为php.ini,修改doc_root = "c:\inetpub\wwwroot”
extension_dir = "c:\php5\ext",去掉相关dll前面的“;”(哪些dll我就不说了,跟mysql有关的都试了,甚至把所有的都去掉了也试过了,根本没有用的);
3.c:\php5下的php5ts.dll文件复制到c:\winnt\system32目录下,将c:\php5下的libmysql.dll复制到c:\php5\ext目录下(有的说要把mysql/bin/里的libmysql.dll复制到上面的文件夹覆盖也试过了,没有任何作用);     4.问题是跑php5的一般程序可以用,就是遇到连接数据库不行,phpinfo()里看不到mysql信息,而且图片验证码也显示不了我知道肯定是extension=php_gd2.dll
没有开,但是我php.ini里已经开了,;
有人说把php.ini复制到windows/里,可是我一复制进去重启iis就连一般的php程序都跑不了了,显示错误(No input file specified. ),把windows里的php.ini删除,一般的程序又快要跑了,而且在phpinfo()里看到extension_dir = "c:\php5"而不是我设置的extension_dir = "c:\php\ext",感觉这是系统默认的设置;那么我自己的设置为什么不起作用,为什么一把php.ini放到windows下就不能运行php程序了?急啊,搜遍了互联网,什么都试过了,不行!望高人救救我!跪谢了!

解决方案 »

  1.   

    试试把php目录下的.dll全考到c:\winnt下,ext目录下的.dll全考到c:\winnt\system32下
    php.ini是要考到c:\winnt下的,看看你的配置文件有没有改错.. 这样改 extension_dir = "c:\php\ext" 是对的,重启服务器看一下
      

  2.   

    http://hi.baidu.com/psart/blog/item/b320d5c482c4d7a88226acd8.html
      

  3.   

    早试过了,都全部拷贝过去试了,在网上找答案好几天了,没有任何作用!重启再怎么重启也无济于事!
    继续测试phpinfo()里显示还是Configuration File (php.ini) Path 为:c:\windwos 而extension_dir = "c:\php5",
    我再测试php4里的phpinfo()是Configuration File (php.ini) Path 为:C:\php4.0\php.ini 而extension_dir = "C:\php4.0\extensions",我想这就是为什么我php5不能运行数据库的原因所在了吧,它所指向的extension_dir永远是c:\php5,配置文件也是c:\windows,不管我php.ini里怎么改
    tmd就是这样,怒!奇怪的问题是:把php.ini复制到windows/里,一复制进去重启iis就连一般的php程序都跑不了了,显示错误(No input file specified. ),把windows里的php.ini删除,一般的程序又能跑!这是为什么?
      

  4.   

    这样子说的话,你把php.ini放在WINDOWS目录下应该没有影响才对,怎么会放进去就不能动行?
    因为这个 Loaded Configuration File  = c:\windwos 而非指向 c:\windwos\php.ini ....
      

  5.   

    貌似想走来一点,你的register_globals是否设置为 on ?
      

  6.   

    对于mysql而言,不只是php_mysql.dll,还有lib_mysql.dll.
    复制到system32目录!
    或者你直接将php安装目录和ext目录都加到系统环境变量里去