在進階篇裏,咱們將會提供本地化的安裝參考,但相比起快速指南,進階篇須要更強的專業知識和動手能力,爲了節約您寶貴的時間,咱們並不鼓勵全部人都來嘗試。python
在安裝成功以前,你可能會遇到關於 linux,git,python,mysql等一些列問題,若是你對這些都不熟悉,那麼你只會遇到愈來愈多的問題,儘管這些問題在具有相關專業知識的人眼前不值一提。若是你以爲linux,git,python,mysql 這些都不是個事,那就繼續吧。mysql
不適合這篇教程的人linux
歷來沒有成功安裝過 linux 的git
裝完 linux 系統連 make 指令都沒有的github
只會用界面,把 linux 當 windows 用的web
vi 的 打開,編輯,保存,退出這幾個基本指令還不會的sql
特別懶的人數據庫
特別有錢的人json
linux 的發行版世界實在是太多元化了,但萬變不離其宗,理論上 ToughRADIUS 是能夠運行在大部分linux 系統上的。ubuntu
ToughRADIUS 依賴 Python2.7+ 運行環境,若是系統已經內置,則省略了升級 python 這一步,若是系統依然是 python2.4或 python2.6的版本,則須要先獨立安裝 python2.7版本。
爲了更方便的安裝,建議採用 centos7,ubuntu14等已經內置 python2.7 的系統。
git 是一個版本控制工具,經過 git 工具,你在服務器上安裝的 ToughRADIUS 服務能夠很方便的升級,或切換不一樣的版本,但git 並非必須的,不使用 git,只是不能方便升級 ToughRADIUS,之後須要升級時,須要本身下載版本從新安裝。
ToughRADIUS默認是支持 sqlite 和 mysql 數據庫的,其餘數據庫如 mssql,oracle 等目前只提供商業支持服務。ToughRADIUS V2版本通過從新架構,採用更好的緩存機制(Redis),數據庫已經不是性能的決定性因素。
一般 sqlite 更易於使用,系統內置支持,無需額外安裝,但沒有提供基於網絡的管理,帶來維護上的不便,MySQL 在安裝配置方面要複雜的多,但管理工具強大,更穩定可靠,依然是生產環境應用的首選。
ToughRADIUS 提供的默認安裝指令是針對 CentOS 系統的,若是你但願在 ubuntu 下執行安裝,能夠自行修改Makefile文件,將 yum install 指令替換成對應的 apt-get install,Centos的軟件名稱與 ubuntu 也不相同,須要自行解決。
爲了更方便的升級版本,建議經過使用 git 版本控制工具.
請保證您的服務器網絡暢通,若是您的服務器禁止訪問網絡,請首先解決網絡問題。
安裝 git
$ yum install -y git
克隆倉庫(穩定版本)
$ git clone -b release-stable https://github.com/talkincode/ToughRADIUS.git /opt/toughradius
克隆倉庫(開發版本)
$ git clone -b release-dev https://github.com/talkincode/ToughRADIUS.git /opt/toughradius
下載解壓穩定版
$ wget https://github.com/talkincode/ToughRADIUS/archive/release-stable.zip -O /opt/release-stable.zip
$ cd /opt
$ unzip release-stable.zip
$ mv ToughRADIUS-release-stable /opt/toughradius
下載解壓開發版
$ wget https://github.com/talkincode/ToughRADIUS/archive/release-dev.zip -O /opt/release-dev.zip
$ cd /opt
$ unzip release-dev.zip
$ mv ToughRADIUS-release-dev /opt/toughradius
完成克隆倉庫,穩定版或開發版任選一種。/opt/toughradius 是一個約定的的安裝路徑,暫時不要修改成其餘路徑。
按如下步驟執行安裝任務
$ cd /opt/toughradius $ make all
make all 指令會完成 ToughRADIUS 全部相關的系統依賴下載安裝,相關的 python 模塊安裝,以及配置文件的安裝。在 make all 的過程當中,有可能會出現失敗,好比網絡超時,缺乏系統其它依賴,這對你一般是一個挑戰,在 linux 的世界,不少東西是沒法一一預料的,這還須要你具有必定的解決問題的能力。
make all 完成後,會存在如下配置文件:
/etc/toughradius.json
這是 ToughRADIUS 的主要配置文件,咱們可能須要修改關於數據庫部分的配置。若是你只想使用內置的 sqlite 數據庫,無需作任何更改。
默認的 sqlite 數據庫文件在 /var/toughradius/toughradius.sqlite3,你能夠下載到到本地計算機使用 sqlite 的管理工具打開查看數據。
若是你但願使用 mysql 數據庫,請首先本身完成 mysql 的安裝配置,並保證 mysql服務已經正常運行,同時建立一個空的數據庫,建立一個專用的用戶名和密碼。
mysql 示例:
進入 mysql 終端管理:
mysql > create database raddb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; mysql > GRANT ALL ON raddb.* TO raduser@'%' IDENTIFIED BY 'radpwd' WITH GRANT OPTION; mysql > FLUSH PRIVILEGES;
修改數據庫配置部分,具體參數請根據實際填寫。
"database": { "backup_path": "/var/toughradius/data", "dbtype": "mysql", "dburl": "mysql://raduser:radpwd@127.0.0.1:3306/raddb?charset=utf8", "echo": 0, "pool_recycle": 300, "pool_size": 60 }
$ cd /opt/toughradius $ make initdb
若是配置文件數據庫部分沒有錯誤,這一步將順利經過,會建立全部數據庫表,以及初始化必須的配置參數。
如今你能夠運行 ToughRADIUS 服務了,假設前面的過程都順利完成。ToughRADIUS 已經配置好系統的自啓動服務。
$ service toughradius start
若是你要中止 ToughRADIUS 服務,執行
$ service toughradius stop
重啓請執行
$ service toughradius restart
查看運行狀態請執行
$ service toughradius status
ToughRADIUS 提供了一個通用的不依賴數據庫類型的數據備份服務,你能夠經過ToughRADIUS的管理界面-系統管理子菜單下的數據備份來使用它。
備份數據默認在目錄 /var/toughradius/data
全部的日誌文件所有在 /var/toughradius 目錄下
web 管理控制檯日誌文件是 /var/toughradius/radius-manage.log
radius 的認證記帳日誌是 /var/toughradius/radius-worker.log
你能夠經過 linux 下的vi,awk,more,less,tail 工具來查看分析日誌,好比查看最後100行日誌:
$ tail -n 100 /var/toughradius/radius-manage.log $ tail -n 100 /var/toughradius/radius-worker.log
若是你在安裝的過程當中遇到問題,提供這些日誌信息纔是最有用的,若是你不是提供這些日誌數據,那麼你幾乎確定得不到答案。
/etc/toughradius.conf 是ToughRADIUS服務進程配置,基於 supervisord 實現服務進程管理。
若是你實際不是安裝在 /opt/toughradius 這個路徑,能夠修改這個配置文件中的/opt/toughradius 路徑
調整 radius 子進程數量以提升 ToughRADIUS 在多核 CPU 下的性能
修改 numprocs 參數便可,設置爲 CPU 核心數量或2倍均可以。
[program:worker] command=python /opt/toughradius/radiusctl worker -c /etc/toughradius.json startretries = 10 process_name = %(program_name)s%(process_num)d numprocs=4 redirect_stderr=true stdout_logfile=/var/toughradius/radius-worker.log