bugfree安裝及配置

1.下載Apache、Php、Mysql等的運行環境——XAMPP
2.解壓縮到XAMPP目錄下,D:\Program Files\XAMPP
3.運行D:\Program Files\XAMPP\setup_xampp.bat
4.運行xampp-control.exe,提示bugfile文件夾沒有讀寫權限,查看XAMPP目錄,發現該目錄下並無該文件夾,於是手動建立此文件夾,然後再次檢查,發現成功通過檢查,可以進行下一步驟的配置操作。
5.啓動Apache服務器和Mysql服務器
6.在瀏覽器中輸入http:\\localhost,出現XAMPP首頁,選擇左側目錄樹中的項,瞭解一下XAMPP,同時,配置下【安全】下的相關密碼、用戶名等安全信息。
7.下載bugfree
解壓縮後放到D:\Program Files\xampp\htdocs目錄下。【注意,此處不是把bugfree目錄放在這個目錄下,而是要把bugfree目錄下的文件複製到這個目錄下。我首次安裝時,就是把bugfree目錄放在htdocs目錄下,但是啓動瀏覽器輸入http:\\localhost之後,並沒有彈出預期的bugfree配置頁面。但是更通常的方法是把bugfree目錄複製到htdocs目錄,但是我這樣配置行不通,因爲只是做了解,所以沒有深入探索,大家安裝時還請注意。】
8.在瀏覽器中輸入http:\\localhost,彈出錯誤提示
==================================================================================================
PHP Error
mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.
D:\Program Files\xampp\htdocs\protected\service\SqlService.php(563)
551 *
552 * @author Yupeng Lee<[email protected]>
553 * @param string $fieldName FieldName
554 * @param string $operatorName =,<,>,<= eg.
555 * @param string $fieldValue FieldValue
556 * @return string Query string for SQL
557 */
558 private static function baseGetFieldQueryStr($searchFieldConfig, $type, $fieldName, $operatorName, $fieldValue)
559 {
560 $basicTableName = '{{' . $type . 'view}}';
561 $fieldValue = trim($fieldValue);
562
563 $fieldValue = mysql_escape_string($fieldValue);
564 //handle search value %
565 $fieldValue = str_replace('%', '\%', $fieldValue);
566 // $fieldValue = str_replace('_', '\_', $fieldValue);
567
568 $queryStr = '';
569 if($fieldValue == '')
570 {
571 return $queryStr;
572 }
573 elseif(Info::MARK == $fieldName)
574 {
575 $inOrNotIn = ' not in ';
Stack Trace
#0 +
– D:\Program Files\xampp\htdocs\protected\service\SqlService.php(563): mysql_escape_string("Sample Product")
558 private static function baseGetFieldQueryStr($searchFieldConfig, $type, $fieldName, $operatorName, $fieldValue)
559 {
560 $basicTableName = '{{' . $type . 'view}}';
561 $fieldValue = trim($fieldValue);
562
563 $fieldValue = mysql_escape_string($fieldValue);
564 //handle search value %
565 $fieldValue = str_replace('%', '\%', $fieldValue);
566 // $fieldValue = str_replace('_', '\_', $fieldValue);
567
568 $queryStr = '';
#1 +
– D:\Program Files\xampp\htdocs\protected\service\SqlService.php(474): SqlService::baseGetFieldQueryStr(array("id" => array("label" => "ID", "type" => "number", "isBasic" => true), "title" => array("label" => "Bug標題", "type" => "string", "isBasic" => true), "module_name" => array("label" => "模塊路徑", "type" => "path", "isBasic" => true), "bug_status" => array("label" => "狀態", "type" => "option", "isBasic" => true, "value" => array("", "Active", "Resolved", "Closed")), ...), "bug", "module_name", "UNDER", ...)
469 $queryGroup = array();
470 foreach($searchRowConditionArr as $rowCondtion)
471 {
472 $whereStr = ' ';
473 $tempQueryStr = self::baseGetFieldQueryStr($searchFieldConfig, $type,
474 $rowCondtion[$fieldName], $rowCondtion[$operatorName], $rowCondtion[$valueName]);
475 if($tempQueryStr == '')
476 {
477 if($rowCondtion[$leftParenthesesName] == "(" && $rowCondtion[$rightParenthesesName] == ")")
478 {
479
#2 +
– D:\Program Files\xampp\htdocs\protected\controllers\InfoController.php(558): SqlService::baseGetGroupQueryStr(array("id" => array("label" => "ID", "type" => "number", "isBasic" => true), "title" => array("label" => "Bug標題", "type" => "string", "isBasic" => true), "module_name" => array("label" => "模塊路徑", "type" => "path", "isBasic" => true), "bug_status" => array("label" => "狀態", "type" => "option", "isBasic" => true, "value" => array("", "Active", "Resolved", "Closed")), ...), "bug", array(array("leftParenthesesName" => "", "field" => "module_name", "operator" => "UNDER", "value" => "Sample Product", ...)))
553 }
554 }
555
556 $searchRowArr = $this->setSpecialModuleCondiftion($searchRowArr, $productName);
557 Yii::app()->user->setState($productId . '_' . $infoType . '_search', $searchRowArr);
558 $getSqlResult = SqlService::baseGetGroupQueryStr($searchFieldConfig, $infoType, $searchRowArr);
559 if(CommonService::$ApiResult['FAIL'] == $getSqlResult['status'])
560 {
561 $whereStr = ' 1<>1 ';
562 }
563 else
#3 +
D:\Program Files\xampp\htdocs\lib\web\actions\CInlineAction.php(50): InfoController->actionIndex()
45 $controller=$this->getController();
46 $method=new ReflectionMethod($controller, $methodName);
47 if($method->getNumberOfParameters()>0)
48 return $this->runWithParamsInternal($controller, $method, $params);
49 else
50 return $controller->$methodName();
51 }
52
53 }
#4 +
D:\Program Files\xampp\htdocs\lib\web\CController.php(300): CInlineAction->runWithParams(array("type" => "bug", "product_id" => "1"))
295 {
296 $priorAction=$this->_action;
297 $this->_action=$action;
298 if($this->beforeAction($action))
299 {
300 if($action->runWithParams($this->getActionParams())===false)
301 $this->invalidActionParams($action);
302 else
303 $this->afterAction($action);
304 }
305 $this->_action=$priorAction;
#5 +
D:\Program Files\xampp\htdocs\lib\web\filters\CFilterChain.php(134): CController->runAction(CInlineAction)
129 $filter=$this->itemAt($this->filterIndex++);
130 Yii::trace('Running filter '.($filter instanceof CInlineFilter ? get_class($this->controller).'.filter'.$filter->name.'()':get_class($filter).'.filter()'),'system.web.filters.CFilterChain');
131 $filter->filter($this);
132 }
133 else
134 $this->controller->runAction($this->action);
135 }
136 }
#6 +
D:\Program Files\xampp\htdocs\protected\components\Controller.php(45): CFilterChain->run()
40 if((true != Yii::app()->user->isGuest) &&
41 empty($productId))
42 {
43 LoginService::setUserInfo();
44 }
45 $filterChain->run();
46 }
47
48 public function init()
49 {
50 $language = Yii::app()->user->getState('language');
#7 +
D:\Program Files\xampp\htdocs\lib\web\filters\CInlineFilter.php(59): Controller->filterUserInfo(CFilterChain)
54 * @param CFilterChain $filterChain the filter chain that the filter is on.
55 */
56 public function filter($filterChain)
57 {
58 $method='filter'.$this->name;
59 $filterChain->controller->$method($filterChain);
60 }
61 }
#8 +
D:\Program Files\xampp\htdocs\lib\web\filters\CFilterChain.php(131): CInlineFilter->filter(CFilterChain)
126 {
127 if($this->offsetExists($this->filterIndex))
128 {
129 $filter=$this->itemAt($this->filterIndex++);
130 Yii::trace('Running filter '.($filter instanceof CInlineFilter ? get_class($this->controller).'.filter'.$filter->name.'()':get_class($filter).'.filter()'),'system.web.filters.CFilterChain');
131 $filter->filter($this);
132 }
133 else
134 $this->controller->runAction($this->action);
135 }
136 }
#9 +
D:\Program Files\xampp\htdocs\lib\web\filters\CFilter.php(41): CFilterChain->run()
36 */
37 public function filter($filterChain)
38 {
39 if($this->preFilter($filterChain))
40 {
41 $filterChain->run();
42 $this->postFilter($filterChain);
43 }
44 }
45
46 /**
#10 +
D:\Program Files\xampp\htdocs\lib\web\CController.php(1144): CFilter->filter(CFilterChain)
1139 */
1140 public function filterAccessControl($filterChain)
1141 {
1142 $filter=new CAccessControlFilter;
1143 $filter->setRules($this->acce***ules());
1144 $filter->filter($filterChain);
1145 }
1146
1147 /**
1148 * Generates pagination information.
1149 * This method can be used to generate pagination information given item count
#11 +
D:\Program Files\xampp\htdocs\lib\web\filters\CInlineFilter.php(59): CController->filterAccessControl(CFilterChain)
54 * @param CFilterChain $filterChain the filter chain that the filter is on.
55 */
56 public function filter($filterChain)
57 {
58 $method='filter'.$this->name;
59 $filterChain->controller->$method($filterChain);
60 }
61 }
#12 +
D:\Program Files\xampp\htdocs\lib\web\filters\CFilterChain.php(131): CInlineFilter->filter(CFilterChain)
126 {
127 if($this->offsetExists($this->filterIndex))
128 {
129 $filter=$this->itemAt($this->filterIndex++);
130 Yii::trace('Running filter '.($filter instanceof CInlineFilter ? get_class($this->controller).'.filter'.$filter->name.'()':get_class($filter).'.filter()'),'system.web.filters.CFilterChain');
131 $filter->filter($this);
132 }
133 else
134 $this->controller->runAction($this->action);
135 }
136 }
#13 +
D:\Program Files\xampp\htdocs\lib\web\CController.php(283): CFilterChain->run()
278 $this->runAction($action);
279 else
280 {
281 $priorAction=$this->_action;
282 $this->_action=$action;
283 CFilterChain::create($this,$action,$filters)->run();
284 $this->_action=$priorAction;
285 }
286 }
287
288 /**
#14 +
D:\Program Files\xampp\htdocs\lib\web\CController.php(257): CController->runActionWithFilters(CInlineAction, array("accessControl", "userInfo"))
252 {
253 if(($parent=$this->getModule())===null)
254 $parent=Yii::app();
255 if($parent->beforeControllerAction($this,$action))
256 {
257 $this->runActionWithFilters($action,$this->filters());
258 $parent->afterControllerAction($this,$action);
259 }
260 }
261 else
262 $this->missingAction($actionID);
#15 +
D:\Program Files\xampp\htdocs\lib\web\CWebApplication.php(277): CController->run("index")
272 {
273 list($controller,$actionID)=$ca;
274 $oldController=$this->_controller;
275 $this->_controller=$controller;
276 $controller->init();
277 $controller->run($actionID);
278 $this->_controller=$oldController;
279 }
280 else
281 throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".',
282 array('{route}'=>$route===''?$this->defaultController:$route)));
#16 +
D:\Program Files\xampp\htdocs\lib\web\CWebApplication.php(136): CWebApplication->runController("info/index")
131 foreach(array_splice($this->catchAllRequest,1) as $name=>$value)
132 $_GET[$name]=$value;
133 }
134 else
135 $route=$this->getUrlManager()->parseUrl($this->getRequest());
136 $this->runController($route);
137 }
138
139 /**
140 * Registers the core application components.
141 * This method overrides the parent implementation by registering additional core components.
#17 +
D:\Program Files\xampp\htdocs\lib\base\CApplication.php(158): CWebApplication->proce***equest()
153 */
154 public function run()
155 {
156 if($this->hasEventHandler('onBeginRequest'))
157 $this->onBeginRequest(new CEvent($this));
158 $this->proce***equest();
159 if($this->hasEventHandler('onEndRequest'))
160 $this->onEndRequest(new CEvent($this));
161 }
162
163 /**
#18 +
D:\Program Files\xampp\htdocs\index.php(15): CApplication->run()
10 // remove the following lines when in production mode
11 defined('YII_DEBUG') or define('YII_DEBUG',true);
12 // specify how many levels of call stack should be shown in each log message
13 defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
14 require_once($yii);
15 Yii::createWebApplication($config)->run();
2014-01-02 11:30:05 Apache/2.4.7 (Win32) OpenSSL/0.9.8y PHP/5.4.22 Yii Framework/1.1.8
===================================================================================================
根據提示,找到文件D:\Program Files\xampp\htdocs\protected\service\SqlService.php,使用記事本打開SqlService。php文件,然後把函數mysql_escape_string()改爲use mysql_real_escape_string() ,刷新瀏覽器,可以正常啓動bugfree,並進入bugfree首頁。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章