標籤:
環境: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 375
2015/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了。
centos下安裝禪道7.2.4版本遇到的問題