环境:centos6.6 Apache2.6 MariaDB5 PHP5.4
Apache是编译安装在/usr/local/apache2下
MariaDB是RPM包安装
PHP是编译安装
因为要在此环境上安装禅道bug管理系统,所以直接把zentao解压后的包放在/usr/local/apache2/htdocs/下就行了。然后再访问ip:port/zentaopms/www/install.php这个路径,按照提示进行安装。下面是整个安装过程遇到的问题:
1.首先是没有加载到pdo_mysql.so模块。然后下面是解决方法:
tar xzvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
执行命令:/usr/local/php/bin/phpize //这个路径文件根据实际环境而定
然后执行: ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/bin/mysql_config(标记1)
make && make install
make install完后会有提示说明在哪个路径下已经产生了一个pdo_mysql.so文件。可以到此路径验证存在此文件。
2.将文件/usr/share/doc/php-common-5.3.3/php.ini-production拷贝到/usr/local/php/lib/(php的编译安装目录)下并改名为php.ini。
然后修改此php.ini文件,如下所示:
加在它的下面:
extension_dir = "/"
extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/pdo_mysql.so"
保存,退出,然后重启Apache。再刷新zentao安装界面会发现已经加载了pdo_mysql.so模块。
3.接着安装zentao,这一步到了输入数据库信息,输入完数据库信息后点击下一步,直接出现空白页,找了很久的原因也找不到。最后在my.php里将debug值改为true。再次尝试输入数据库信息然后提交。直接在web页面看到报错信息了。
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2030 This command is not supported in the prepared statement protocol yet' in /usr/local/apache2/docs/zentaopms/module/install/model.php:375 Stack trace: #0 /usr/local/apache2/docs/zentaopms/module/install/model.php(375): PDO->query('-- DROP TABLE I...') #1 /usr/local/apache2/docs/zentaopms/module/install/model.php(247): installModel->createTable('5.5') #2 /usr/local/apache2/docs/zentaopms/module/install/control.php(92): installModel->checkConfig() #3 [internal function]: install->step3() #4 /usr/local/apache2/docs/zentaopms/framework/router.class.php(1140): call_user_func_array(Array, Array) #5 /usr/local/apache2/docs/zentaopms/www/install.php(38): router->loadModule() #6 {main} thrown in /usr/local/apache2/docs/zentaopms/module/install/model.php on line 3752015/7/28 14:54:46
这个错误找了很久都不知道怎么解决,可能是不支持pdo模块造成的。最后在一篇帖子里看到这样改就OK了。
解决办法是修改module/install/model.php,找到 public function connectDB() 函数,在
$dbh = new PDO($dsn, $this->config->db->user, $this->config->db->password);
$dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
后加入
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
保存后,安装成功。
然后继续往下安装,终于出现了登陆界面。但是新的问题又来了,输入账号密码后点击登录有报错,
Warning: Unknown: open(/tmp/sess_udcl4ph6t3kc0dic8b3sct7uj1, O_RDWR) failed: Permission denied (13) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0
这个问题在咨询了禅道的技术后得以解决。在这里赞他们一个,很有耐心。到php.ini文件里修改
为这个就把问题解决了。这个目录自己创建,并给予足够的权限,我这里为了方便就直接777了。
最后再登陆就OK了。