原文:https://www.cnblogs.com/geekmao/p/7885022.html
本文主要介紹如何在Linux上安裝
官網環境要求:
Centos >= 5.x, Debian >= 5.x GCC版本: >= 4.4.x
官網連結
本文的安裝環境介紹:
Centos =6.9, GCC版本: = 4.4.7
Mysql =5.6 ,python =2.6 kbengine= v1.0.0
[root @ localhost ~]# yum install openssl-devel (在Ubuntu類系統上, 使用 "apt-get install libssl-dev")
[root @ localhost ~]# yum install mysql-server (在Ubuntu類系統上, 使用 "apt-get install mysql-server")
[root @ localhost ~]# yum install mysql-devel (在Ubuntu類系統上, 使用 "apt-get install libmysql-dev")
[root @ localhost ~]# yum install gcc+ gcc-c++(在Ubuntu類系統上, 使用 "apt-get install gcc
下載下傳源碼包:
root @ localhost ~]# wget -c https://github.com/kbengine/kbengine/archive/v1.0.0.zip
root @ localhost ~]# unzip v1.0.0.zip
[root @ localhost ~]# cd kbengine/kbe/src
[root @ localhost/ src]# chmod -R 755 .
[root @ localhost/ src]# make
編譯會因為伺服器的性能有所不同,一般10多分鐘左右
完成如圖:或者輸入echo $? 如果傳回為0,編譯成功
1: 如果使用了其他版本的編譯器最好重編譯openssl、log4cxx與其他(kbengine/kbe/src/libs/*a.)。
2: mysql_config在某些作業系統版本上可能不是這個路徑位址 /usr/bin/mysql_config
你可以手動修改kbengine/kbe/src/build/common.mak其中MYSQL_CONFIG_PATH=/usr/bin/mysql_config。
3: 在Linux上編譯之後可能會出現Python解釋器無法初始化而導緻無法啟動服務端的問題 (這是一個Python的bug,參看:http://bugs.python.org/issue11320):
你可以執行如下指令解決這個問題
[root @ localhost ~] cd kbengine/src/lib/python
[root @ localhost ~] ./configure
[root @ localhost ~] make
[root @ localhost ~] make install
注意事項
二.安裝:
(注意:使用這種方式安裝必須已經完成建立步驟)
在一個(Windows/Centos/Redhat/Debian/Ubuntu 等等)系統中安裝KBEngine服務端, 請在指令行輸入:
python kbengine/kbe/tools/server/install/installer.py instal
官方是有自動化的安裝py腳本的, 不過還是有很多小坑的. (官方并沒有寫提前要建立資料庫)
不過其實腳本主要也就是隻做兩件事, 其他都是可選的:
-
- 配置環境變量
- 安裝配置mysql
2.1.資料庫操作:
安裝kbe之前請提前在mysql裡
- 建一個資料庫(比如建一個資料庫kbe_database)
- 一個至少擁有select,insert,update,delete,create,drop權限的使用者(比如這個使用者是kbe_user)
資料庫指令:先進入資料庫
create database kbe_database; 建立資料庫
grant all privileges on *.* to 'kbe'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
grant all privileges on *.* to 'kbe'@'127.0.0.1' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
2.2.腳本安裝
進入kbe的根目錄
cd kbengine
python kbengine/kbe/tools/server/install/installer.py install
情況好的是上述這種沒有錯誤的安裝;
但有時是這樣的
它就會問你 :
Install KBEngine to Linux-account(No input is kbe):kbe #請建立一個賬号
not found system-user[kbe], create new user?: [yes|no]yes #是否建立
Please enter the Linux-account passwd(No input is kbe):123456 #輸入密碼
Check the dependences:
- kbe_environment: checking...
ERROR: KBE_ROOT: is error! The directory or file not found:
KBE_ROOT//kbe
KBE_ROOT=
KBE_ROOT current: 現在的引擎根目錄
reset KBE_ROOT(No input is [/kbengine/]): 敲回車
之後顯示的都直接敲回車, 用預設的就可以, 直到他開始問你mysql的東西, 到mysql他會問
KBE_RES_PATH current: $KBE_ROOT/kbe/res/:$KBE_ROOT/assets/:$KBE_ROOT/assets/scripts/:$KBE_ROOT/assets/res/ #現在引擎的資源路徑 和使用者腳本的資源路徑
reset KBE_RES_PATH(No input is [$KBE_ROOT/kbe/res/:$KBE_ROOT/assets/:$KBE_ROOT/assets/scripts/:$KBE_ROOT/assets/res/]): 敲回車
KBE_BIN_PATH current: $KBE_ROOT/kbe/bin/server/ #引擎可執行檔案所在目錄。
reset KBE_BIN_PATH(No input is [$KBE_ROOT/kbe/bin/server/]): 敲回車
KBE_UID current: 0
備注:uid必須大于0, 小于32767.
os system-username(kbe):kbe
usermod -u [No input is 0] kbe, Enter new uid:1314
這是最重要的部分
- mysql: checking...
- MySQL is installed on the remote machine?[yes/no] 詢問你本地還是遠端
- Enter mysql ip-address:127.0.0.1
- Enter mysql ip-port:3306
- Enter mysql-account:kbe
- Enter mysql-password:123456
- Enter mysql-databaseName:kbe_database
- mysql: yes
Modified: /home/b/kbengine-0.9.18//kbe/res/server/kbengine_defs.xml
KBEngine has been successfully installed!
是否安裝成功
找到你的kbe根目錄, 然後進入根目錄, 比如你的kbe根目錄是kbengine, 則
-
-
- 進入kbe根目錄下的assets目錄 : cd kbengine/assets
- 運作啟動腳本 : sh ./start_server.sh
-
(注意: 初次啟動KBEngine時,mysql需要初始化一些表結構,可能會花上幾分鐘請耐心等待完成。)
用ps檢查一下是否有以下程序再跑
[[email protected] assets]# ps -ef | grep -v grep | grep -i kbe
root 5916 0 0 05:42 pts/1 00:00:00 /kbengine/kbe/bin/server//machine --cid=2129652375332859700 --gus=1
root 5917 0 0 05:42 pts/1 00:00:00 /kbengine/kbe/bin/server//logger --cid=1129653375331859700 --gus=2
root 5918 0 0 05:42 pts/1 00:00:00 /kbengine/kbe/bin/server//interfaces --cid=1129652375332859700 --gus=3
root 5919 0 0 05:42 pts/1 00:00:00 /kbengine/kbe/bin/server//dbmgr --cid=3129652375332859700 --gus=4
root 5920 0 0 05:42 pts/1 00:00:00 /kbengine/kbe/bin/server//baseappmgr --cid=4129652375332859700 --gus=5
root 5921 0 0 05:42 pts/1 00:00:00 /kbengine/kbe/bin/server//cellappmgr --cid=5129652375332859700 --gus=6
root 5922 0 0 05:42 pts/1 00:00:00 /kbengine/kbe/bin/server//baseapp --cid=6129652375332859700 --gus=7
root 5923 0 0 05:42 pts/1 00:00:00 /kbengine/kbe/bin/server//cellapp --cid=7129652375332859700 --gus=8
root 5924 0 0 05:42 pts/1 00:00:00 /kbengine/kbe/bin/server//loginapp --cid=8129652375332859700 --gus=9
檢查我們mysql中的kbe_database資料庫裡是否多了幾個表
mysql> show tables;
+---------------------------+
| Tables_in_b_test_database |
+---------------------------+
| kbe_accountinfos |
| kbe_email_verification |
| kbe_entitylog |
| kbe_serverlog |
| tbl_Account |
+---------------------------+
rows in set (0.00 sec)