Linux部署禪道及默認端口修改和附件大小限制修改和使用過程各種排坑
- 本篇博客將分享本人在使用禪道是遇到的很多問題希望對大家有所幫助
- 有些問題只是發現了但現在的能力沒辦法解決希望大佬能提提意見給點幫助
參考文獻:
http://www.zentao.net/
- 在此禪道的用途就不給大家多做解釋了,直接進入正題:
實驗所需安裝包:
鏈接:https://pan.baidu.com/s/1UZaJeO5RFdlkPmSVlrdopw 密碼:uame
註:官網上也可直接下載,在官網上有四個連接,國際版的大家可以隨意,個人覺還是本土的好用,但在站點一和站點二兩個路徑下載的zentao包安裝上在初次使用和文件上傳中還是有點差別的,站點一在上傳帶有大附件的東西是,我們看不到是否點擊成功,但站點二的可以直觀的看到,所以推薦下載站點二的:
這裏我們直接安裝最新版的禪道10.0版本的,此版本中僅僅優化了圖形界面,還填補了許多以前版本的bug
首先我們需要安裝lrzsz:
yum -y install lrzsz
把我們準備好的按轉包導入/usr/local/src中
解壓文件:
tar zxf /usr/local/src/ZenTaoPMS.10.0.stable.zbox_64.tar.gz.tgz -C /opt/
- 註:這裏我安裝的是Linux一鍵安裝包官方給出的方法就是直接解壓到/opt/目錄下直接啟動就行,若解壓到其他目錄下可能目錄權限可能出現問題,直接給777權限都不行,所以我們還是別整那些幺蛾子,自己找官方的指示進行即可,若是有目錄規定強行要求可以參考官網其他安裝方法
解壓到此目錄下我們就可以直接啟動禪道了
- 下面是禪道的基本操作命令
啟動禪道:sh /opt/zbox/zbox start
關閉禪道:
sh /opt/zbox/zbox stop
重啟禪道:
sh /opt/zbox/zbox restart
修改默認Apache端口:
sh /opt/zbox/zbox -ap [port]
修改默認mysql端口:
sh /opt/zbox/zbox -mp [port]
註:一鍵安裝包是把http和mysql都集成到zentao安裝中的(默認http端口是80,mysql是3306,肯能會有端口沖突所以建議修改默認端口),所以不用我們額外安裝,若不想使用自帶的mysql數據庫,可以選擇其他的安裝方式
sh /opt/zbox/zbox -ap 9090
sh /opt/zbox/zbox -mp 3307
啟動zentao:
sh /opt/zbox/zbox start
如下:
顯示success表示我們成功了,但是真正成功我們得抓端口監聽:
這是表示我們已經成功了,我們可以通過訪問web來查看了:
若修改了Apache端口的訪問:
http://ip:[Apache port]
若沒修改直接訪問IP即可(web默認即為80):
http://ip
訪問成功如下:(點擊開源版我們就可以開啟禪道之旅了)
進入後我們可以設置語言環境:
當然默認中文就好使了,這時候有人就會有疑問了,怎麽還需要登錄用戶和密碼呢,我沒創建過啊,是不是我點錯了啊,不小心創建了,或者省略了哪一步啊,既然你看到了這邊文檔那我告訴你,這都不叫事,在禪道10.0版本後為了加強安全性,在首次登錄我們需要初始密碼,當然網上也可以看到,但是好多都是瞎扯的,正確的用戶名和面是:
user:admin
password:123456
登錄後系統會讓我們修改密碼的
原密碼就是我們初始密碼:123456
這時候我們安裝部署就到此結束了可以使用了,下面要說的就是排坑及一些擴展性的東西
啟動禪道時報錯:
首先我們需要查看mysql和Apache日誌信息有是否有報錯
如果有報錯,根據報錯進行排查,但一般啟動失敗有一下幾個問題:
- 啟動的用戶權限不夠,要麽使用root,要麽sudo(個人建議)
- 查看是否Apache和MySQL端口被占用
- tar包解壓的位置有問題,沒有放在/opt目錄下
禪道啟動後errror_log中有大量error信息
如:
[Tue Aug 02 10:07:44.338117 2017] [mpm_event:alert] [pid 746:tid 2913958720] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Tue Aug 02 10:07:44.342509 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342585 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342590 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342593 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342598 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342604 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342609 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342613 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342616 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342620 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342623 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
解決思路方向:
- 一般這種情況為服務器部署的防護腳本或者資源限制,服務器拒絕了禪道對資源進行申請
禪道數據庫問題
- 禪道啟動後本地mysql數據庫掛了
- 禪道啟動時數據庫啟動報錯
- 禪道啟動後mysql有端口監聽但沒有進程ID(這種情況一般在docker容器裏面較為常見)
解決思路方向:
- 本地數據庫啟動的是3306端口,禪道一鍵安裝包啟動的也是3306端口,所以啟動的時候出現端口沖突
-
還有在執行sh /opt/zbox/zbox restart 顯示報錯:
我們先執行:sh /opt/zbox/zbox stop 在執行: sh /opt/zbox/zbox start
-
禪道啟動時數據庫時報錯,若在沒有端口沖突的情況下還報錯,那麽可能是mysql庫的目錄權限不對,需要保證mysql的權限如下:
- 在docker中部署禪道,啟動和日誌均沒有報錯,但是在抓端口監聽時發現Apache並沒有異常,但是mysql卻只有端口監聽並沒有端口監聽對應的進程ID,如:
此圖中可以看出Apache是正常的,但mysql極端異常,但是去不影響禪道的正常使用,這個問題我查找了特別多資料都沒找到原因和解決辦法,若有人遇到相同的問題希望相互探討下
修改禪道默認附件上傳大小
默認在禪道附件上傳大小為50M,大於50M時候就無法上傳
解決辦法:
修改php.ini文件
vim /opt/zbox/etc/php/php.ini
需要修改的地方:
修改配置文件:
cd /opt/zbox/app/zentao/www/
修改兩個配置文件,這兩個配置文件是影藏的,查看方式:
ll -a /opt/zbox/app/zentao/www/
如下:
兩個配置文件分別需要修改的地方:
.htaccess
.ztaccess
重啟禪道即可:
sh /opt/zbox/zbox restart
查看是否修改成功:
此時附件已經顯示可以上傳500M
禪道附件已經修改了大小但依舊上傳失敗顯示網絡超時或者網絡錯誤
如下:
解決問題思路:
在解決問題的之前我們需要了解下Ajax,這個問題是由於網速導致Ajax默認30超時導致失敗
Ajax:
Ajax使用 JavaScript 向服務器提出請求並處理響應而不阻塞用戶!核心對象XMLHTTPRequest。通過這個對象,您的 JavaScript 可在不重載頁面的情況與 Web 服務器交換數據,即在不需要刷新頁面的情況下,就可以產生局部刷新的效果。
Ajax 在瀏覽器與 Web 服務器之間使用異步數據傳輸(HTTP 請求),這樣就可使網頁從服務器請求少量的信息
默認Ajax時間響應時間為30S,當我們上上傳文件大小除以沒秒上傳的帶寬大於30的時候就會報錯連接超時,網絡連接失敗這種類型的錯誤
著需要我們修改Ajax的默認響應時間即可
使用nginx解析域名登錄禪道上傳附件有問題,但使用IP和port登錄上傳卻沒有問題
當我們上傳一兩兆附件的時候頁面都會顯示網絡錯誤,或者超時
解決辦法思路:
當出現這種情況是,我們程序裏的log是沒有error信息的,所以我們只能通過瀏覽器查看瀏覽器做出的動作(建議使用google,右擊查看或者按F12也行)如:
在這裏面我們可以看到頁面返回信息是nginx的,並且信息為too large
此時我們應該明白了問題出在那了,nginx上傳文件大小默認是1M,所以我麽只要修改下配置即可:
編輯nginx主配文件,在http{}字段添加一行配置:
client_max_body_size 100m;
-
把上傳大小改成100M,但是實際情況還要根據網速來定,因為Ajax默認時間為30S
修改後重新載入nginx即可:nginx -s reload
- ok,整片博客到此結束,希望看完這篇博客後在玩禪道時候可以少走點彎路,如果遇到問題,或者文檔中有錯誤的地方歡迎一起探討交流,聯系方式:
QQ:1715721936
Linux部署禪道及默認端口修改和附件大小限制修改和使用過程各種排坑