BugFree 0.2 安装 - 问题与解决 系统环境: 中文Windows 2000 Professional Service Pack 4 Apache 2.0.52 MySQL 4.1.8-nt (mysql-4.1.8-win-noinstall.zip, Without installer) 默认字符集latin1 PHP Version 4.3.10 (php-4.3.10-Win32.zip, PHP 4.3.10 zip package, 下载自http://www.php.net/downloads.php) MysqlCC 0.9.4beta 1.软件安装 Apache, MySQL和PHP的安装不用多说, 我的Apache是安装到C:\www\Apache2, MySQL解压到C:\mysql, PHP解压到C:\php BugFree解压到Apache的文档主目录下(即c:\www\Apache2\htdocs) 2.配置Apache和PHP 先修改php.ini文件: allow_call_time_pass_reference = On error_reporting = E_ALL & ~E_NOTICE ;设置为E_ALL,所有的信息都会显示 register_globals = On 在Apache的配置文件httpd.conf中添加PHP支持(我一开始用CGI方式, 会碰到问题, 待会儿再说明): # Installing as a CGI binary ScriptAlias /php/ "c:/php/" Action application/x-httpd-php "/php/php.exe" AddType application/x-httpd-php .php 改好后,重启Apache服务 在Apache的文档主目录下(我的是c:\www\Apache2\htdocs)建一个文件phpinfo.php,内容为 用浏览器访问http://localhost/phpinfo.php, 可以查看说明PHP配置成功. 3.建立BugFree数据库 用MysqlCC连接MySQL, 建立BugFree数据库. 然后, 选中BugFree数据库, 打开SQL Query窗口, 直接打开BugFree.sql(在BugFree的Document目录下)文件会出现中文乱码, 把BugFree.sql的内容复制粘贴过来就可以了, 运行添加表和数据. 4.配置BugFree 按照BugFree的安装文档(Document\install.txt), 修改Include\ConfigBug.inc.php 中数据库访问的用户名和密码 设置系统管理员的帐号 Include\ConfigBug.inc.php 中$BugConfig["AdminUser"] 5.访问http://localhost/BugFree 发现错误信息 Warning: main(ADO/adodb.inc.php): failed to open stream: No such file or directory in C:\www\Apache2\htdocs\BugFree\Include\SetupBug.inc.php on line 73 Fatal error: main(): Failed opening required 'ADO/adodb.inc.php' (include_path='C:/www/Apache2/htdocs/php/Include/;C:/www/Apache2/htdocs/php/Include/Class/') in C:\www\Apache2\htdocs\BugFree\Include\SetupBug.inc.php on line 73 ( 有时只能看到一空白页面,可以修改php.ini,让它把错误信息记到win2000的事件查看器里 log_errors = On error_log = syslog 重启Apache, 再访问BugFree, 在事件查看器里看到了错误信息php[3612], PHP Fatal error: main(): Failed opening required 'ADO/adodb.inc.php' (include_path='C:/www/Apache2/htdocs/php/Include/;C:/www/Apache2/htdocs/php/Include/Class/') in C:\www\Apache2\htdocs\bugfree\Include\SetupBug.inc.php on line 69. ) 原因是找不到要Include的文件ADO/adodb.inc.php, 观察到错误信息中include_path是'C:/www/Apache2/htdocs/php/Include/;C:/www/Apache2/htdocs/php/Include/Class/',很明显不对. 查看Include\SetupBug.inc.php,发现SetupBug.inc.php用$_SERVER["SCRIPT_NAME"]取BugFree所在的实际路径 在第30行$BugConfig["ScriptDir"] = dirname($_SERVER["SCRIPT_NAME"]); 那为什么不对呢?通过看phpinfo的输出,发现_SERVER["SCRIPT_NAME"]的值是/php/php.exe,原来是由于按照CGI的方式运行PHP 修改httpd.conf,按照Apache Module的方式配置PHP # Installing as an Apache module LoadModule php4_module c:/php/sapi/php4apache2.dll SetOutputFilter PHP AddType application/x-httpd-php .php PHPIniDir "C:/php" 注意要将c:\php下的php4ts.dll复制到c:\wondows\system32下(即PATH环境变量的第一个路径名),不然Apache无法加载php4apache2.dll 重启Apache, 再访问BugFree,这回登录表单出来了, 但还有Warning信息: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in ... 在MySQL的论坛里(http://forums.mysql.com/read.php?11,6400,6701)找到了解决办法, 修改一下用来连接BugFree数据库用户的密码 SET PASSWORD FOR username@localhost = OLD_PASSWORD('something'); 再重新访问BugFree,问题解决了.