1. 程式人生 > >Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑

Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑

Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑


  • 本篇部落格將分享本人在使用禪道是遇到的很多問題希望對大家有所幫助
  • 有些問題只是發現了但現在的能力沒辦法解決希望大佬能提提意見給點幫助

參考文獻:
http://www.zentao.net/



注:官網上也可直接下載,在官網上有四個連線,國際版的大家可以隨意,個人覺還是本土的好用,但在站點一和站點二兩個路徑下載的zentao包安裝上在初次使用和檔案上傳中還是有點差別的,站點一在上傳帶有大附件的東西是,我們看不到是否點選成功,但站點二的可以直觀的看到,所以推薦下載站點二的:
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑

這裡我們直接安裝最新版的禪道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資料庫,可以選擇其他的安裝方式
首先我們修改Apache port和mysql port:

sh /opt/zbox/zbox -ap 9090
sh /opt/zbox/zbox -mp 3307

啟動zentao:

sh /opt/zbox/zbox start

如下:
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑

顯示success表示我們成功了,但是真正成功我們得抓埠監聽:
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
這是表示我們已經成功了,我們可以通過訪問web來查看了:

若修改了Apache埠的訪問:

http://ip:[Apache port]

若沒修改直接訪問IP即可(web預設即為80):

http://ip

訪問成功如下:(點選開源版我們就可以開啟禪道之旅了)
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑

進入後我們可以設定語言環境:
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
當然預設中文就好使了,這時候有人就會有疑問了,怎麼還需要登入使用者和密碼呢,我沒建立過啊,是不是我點錯了啊,不小心建立了,或者省略了哪一步啊,既然你看到了這邊文件那我告訴你,這都不叫事,在禪道10.0版本後為了加強安全性,在首次登入我們需要初始密碼,當然網上也可以看到,但是好多都是瞎扯的,正確的使用者名稱和麵是:

user:admin
password:123456

登入後系統會讓我們修改密碼的
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
原密碼就是我們初始密碼:123456

這時候我們安裝部署就到此結束了可以使用了,下面要說的就是排坑及一些擴充套件性的東西


啟動禪道時報錯:
首先我們需要檢視mysql和Apache日誌資訊有是否有報錯
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
如果有報錯,根據報錯進行排查,但一般啟動失敗有一下幾個問題:

  • 啟動的使用者許可權不夠,要麼使用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 顯示報錯:
    Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
    我們先執行:

    sh /opt/zbox/zbox stop
    在執行:
    sh /opt/zbox/zbox start
  • 禪道啟動時資料庫時報錯,若在沒有埠衝突的情況下還報錯,那麼可能是mysql庫的目錄許可權不對,需要保證mysql的許可權如下:
    Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑

  • 在docker中部署禪道,啟動和日誌均沒有報錯,但是在抓埠監聽時發現Apache並沒有異常,但是mysql卻只有埠監聽並沒有埠監聽對應的程序ID,如:
    Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
    此圖中可以看出Apache是正常的,但mysql極端異常,但是去不影響禪道的正常使用,這個問題我查找了特別多資料都沒找到原因和解決辦法,若有人遇到相同的問題希望相互探討下

修改禪道預設附件上傳大小
預設在禪道附件上傳大小為50M,大於50M時候就無法上傳

解決辦法:
修改php.ini檔案

vim /opt/zbox/etc/php/php.ini

需要修改的地方:
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
修改配置檔案:

cd /opt/zbox/app/zentao/www/

修改兩個配置檔案,這兩個配置檔案是影藏的,檢視方式:

ll -a /opt/zbox/app/zentao/www/

如下:
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑

兩個配置檔案分別需要修改的地方:
.htaccess
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
.ztaccess
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑

重啟禪道即可:

sh /opt/zbox/zbox restart

檢視是否修改成功:
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
此時附件已經顯示可以上傳500M

禪道附件已經修改了大小但依舊上傳失敗顯示網路超時或者網路錯誤
如下:
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑

解決問題思路:
在解決問題的之前我們需要了解下Ajax,這個問題是由於網速導致Ajax預設30超時導致失敗
Ajax:

Ajax使用 JavaScript 向伺服器提出請求並處理響應而不阻塞使用者!核心物件XMLHTTPRequest。通過這個物件,您的 JavaScript 可在不過載頁面的情況與 Web 伺服器交換資料,即在不需要重新整理頁面的情況下,就可以產生區域性重新整理的效果。
Ajax 在瀏覽器與 Web 伺服器之間使用非同步資料傳輸(HTTP 請求),這樣就可使網頁從伺服器請求少量的資訊

預設Ajax時間響應時間為30S,當我們上上傳檔案大小除以沒秒上傳的頻寬大於30的時候就會報錯連線超時,網路連線失敗這種型別的錯誤
著需要我們修改Ajax的預設響應時間即可

使用nginx解析域名登入禪道上傳附件有問題,但使用IP和port登入上傳卻沒有問題

當我們上傳一兩兆附件的時候頁面都會顯示網路錯誤,或者超時

解決辦法思路:
當出現這種情況是,我們程式裡的log是沒有error資訊的,所以我們只能通過瀏覽器檢視瀏覽器做出的動作(建議使用google,右擊檢視或者按F12也行)如:
Linux部署禪道及預設埠修改和附件大小限制修改和使用過程各種排坑
在這裡面我們可以看到頁面返回資訊是nginx的,並且資訊為too large
此時我們應該明白了問題出在那了,nginx上傳檔案大小預設是1M,所以我麼只要修改下配置即可:
編輯nginx主配檔案,在http{}欄位新增一行配置:

client_max_body_size 100m;
  • 把上傳大小改成100M,但是實際情況還要根據網速來定,因為Ajax預設時間為30S
    修改後重新載入nginx即可:

    nginx -s reload
  • ok,整片部落格到此結束,希望看完這篇部落格後在玩禪道時候可以少走點彎路,如果遇到問題,或者文件中有錯誤的地方歡迎一起探討交流,聯絡方式:
    QQ