![Phabricator-安裝及使用指南_第1頁](http://file4.renrendoc.com/view/5df32c1f14bf04b0723a8e68c8d71e49/5df32c1f14bf04b0723a8e68c8d71e491.gif)
![Phabricator-安裝及使用指南_第2頁](http://file4.renrendoc.com/view/5df32c1f14bf04b0723a8e68c8d71e49/5df32c1f14bf04b0723a8e68c8d71e492.gif)
![Phabricator-安裝及使用指南_第3頁](http://file4.renrendoc.com/view/5df32c1f14bf04b0723a8e68c8d71e49/5df32c1f14bf04b0723a8e68c8d71e493.gif)
![Phabricator-安裝及使用指南_第4頁](http://file4.renrendoc.com/view/5df32c1f14bf04b0723a8e68c8d71e49/5df32c1f14bf04b0723a8e68c8d71e494.gif)
![Phabricator-安裝及使用指南_第5頁](http://file4.renrendoc.com/view/5df32c1f14bf04b0723a8e68c8d71e49/5df32c1f14bf04b0723a8e68c8d71e495.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PhabricatorPhabricator安裝及使用指南(中文1.0v)Multicorewareinc陳曉偉xiaowei@
目錄介紹篇(introduction) 12安裝向?qū)?12安裝要求 12安裝必需的組件 12擦除mysql密碼(可選) 13安裝APC(可選) 14安裝XHProf(可選) 14更新Phabricator 15配置篇(Configuration) 15軟件/服務(wù)配置向?qū)?15前提 15WEB服務(wù)器:配置Apache 15配置域名 18設(shè)置 18存儲:配置MySQL 18驗(yàn)收Phabricator: 19下一步 29配置賬戶及注冊機(jī)制 29概述 29恢復(fù)管理員賬戶 30賬戶管理 30手動創(chuàng)建新賬戶 30備份配置及執(zhí)行遷移 32概述 32備份:MySQL數(shù)據(jù)庫 32恢復(fù):MySQL 32備份:上載文件 33恢復(fù):上載文件 33備份:配置文件 33恢復(fù):配置文件 33安全性 33配置上載文件限制 34概述 34配置發(fā)送\接收郵件 35配置發(fā)送郵件 35配置接收郵件 39phd管理守護(hù)進(jìn)程 43概述 43Phd簡介 44守護(hù)進(jìn)程控制臺 44可用的守護(hù)進(jìn)程 44調(diào)試和優(yōu)化 45技巧總匯 45聯(lián)機(jī)操作 45HTTPS相關(guān)故障解決 46概述 46證書認(rèn)證問題 46域名問題 46SNI問題 47使用篇(ApplicationUserGuides) 47Arcanist快速入門 47安裝Arcanist 47配置工程項(xiàng)目 48安裝Arcanist證書 49發(fā)送可回顧修改集 49下一步操作 49Arcanist使用指南 50快速入門 50概述 50安裝Arcanist 51安裝TabCompletion 53配置Arcanist 53下一步操作 53Arcanist使用教程:arcdiff 54概述 54Subversion 54Git 54Mercurial 56上傳和關(guān)閉修訂 56一般性信息 57Arcanist使用教程:CodeCoverage 58使用Coverage特性 58啟動Coverage(libphutil,Arcanist和Phabricator) 59構(gòu)建coverage支持 59Arcanist使用教程:CommitRanges 59概述 60配置基提交規(guī)則 60范例 62規(guī)則詳解 62下一步 65Arcanist使用教程:配置一個新工程 66概述 66.arcconfig基礎(chǔ)篇 66.arcconfig進(jìn)階篇 66歷史記錄的可變性 67如何定位庫文件 68無.arcconfig文件運(yùn)行 69下一步 69Arcanist使用教程:自定義已存代碼分析器 70概述 70普遍準(zhǔn)則 70修改嚴(yán)寬規(guī)則 70屏蔽嚴(yán)寬規(guī)則 71運(yùn)行多個規(guī)則集 71自定義指定代碼分析器 71Arcanist使用教程:自定義代碼分析器,單元測試和工作流 72概述 72創(chuàng)建一個libphutil庫 73使用特定類 73下一步 74Arcanist使用教程:代碼分析器 74概述 74可用的代碼分析器 74配置代碼分析 75使用代碼分析提高代碼回查效率 76代碼分析的哲學(xué) 76下一步 77Arcanist使用教程:MacOSX 77闡述如何在MacOSX下安裝Arcanist。 77下一步 77Arcanist使用教程:代碼庫鉤子 78安裝ArcanistSVN鉤子 78Arcanist使用教程:Windows 78概述 79必要組件 79配置編輯器 79安裝PHP 80下一步 80審核(Audit)使用教程 80概述 81詳細(xì)介紹 81審核觸發(fā)器 81審核在小型組的使用 82審核技巧 82下一步 82配置教程:高級配置 82概述 82源碼配置 83文件配置 83下一步 85Differential使用教程 85概述 85如何進(jìn)行代碼回查 85創(chuàng)建修訂 85Herald規(guī)則 86Differential使用技巧 86下一步 86Differential使用教程:FAQ 86為什么“已接受”(accepted)的代碼更新后依然是接受狀態(tài)? 86如何開啟語法高亮? 87空格選項(xiàng)是做什么用的? 87淡綠和紅色背景是什么意思? 87Differential使用教程:重大修改 88概述 88Differential使用教程:測試計(jì)劃 89概述 89全修改覆蓋 89前端/用戶可見修改 90Diffusion使用教程 90概述 90代碼庫代號和提交名稱 90添加代碼庫 91運(yùn)行Diffusion守護(hù)進(jìn)程 91下一步 92Diffusion使用教程:代碼庫鉤子 93概述 93了解支持的協(xié)議 93配置系統(tǒng)用戶賬號 94配置HTTP 95配置SSH 95HTTP認(rèn)證 96SSH認(rèn)證 96Diffusion使用教程:符號索引 97概述 97填充索引 97集成Differential 98Diviner使用教程 98概述 99生成文檔 99.book文件 99Drydock使用教程 100概述 100Events使用教程:安裝Event監(jiān)聽器 100概述 101安裝Event監(jiān)聽器(Phabicator) 101安裝Event監(jiān)聽器(Arcanist) 101監(jiān)聽器實(shí)例 101可用事件 102調(diào)試監(jiān)聽器 107下一步 108Herald使用教程 108概述 108全局和個人規(guī)則 108規(guī)則,條件和操作 109可用的操作 109測試規(guī)則 109高級Herald規(guī)則 109JumpNav使用教程 110概述 110支持的指令 110libphutil庫使用教程 111概述 111創(chuàng)建一個新庫 111通過Phabricator連接 112類寫入 113你可以擴(kuò)展和引用的庫 113Notifications使用教程:安裝和配置 114概述 114運(yùn)行Aphlict服務(wù)器 114調(diào)試服務(wù)器錯誤 115OwnersTool使用教程 115工具包 115相關(guān)提交 115需要注意的提交 115Phame使用教程 116概述 116草稿 116帖子 116博客 116評論工具 116下一步 116Phriction使用教程 117概述 117Remarkup參考 117概述 117快速參考 117基本風(fēng)格 118布局 118連接URIs 123連接到對象 123內(nèi)嵌對象 124引用文本 125內(nèi)嵌多媒體類型 125圖像宏 126模塊 126提醒用戶 126Phriction文檔 126文字塊 126表格 127全屏模式 128Slowvote使用教程 128概述 128Pluralityvs.Approval 128使用教程:賬戶角色 129概述 129管理員(Administrators) 129系統(tǒng)代理(SystemAgents) 129禁用賬戶(DisableUsers) 129使用教程:配置一個外置編輯器 130概述 130配置編輯器 130配置:TextMate(OSX) 130配置:其他編輯器 131使用教程:管理Phabricator的郵件 131概述 131減少郵件 131郵件規(guī)則 131郵件頭 131使用教程:Reviewvs.Audit 132概述 132回查的優(yōu)勢 133審核的優(yōu)勢 134下一步 134使用教程:UTF-8和字符編碼格式 134概述 134檢測和修復(fù)文件 134支持其他編碼格式 135
本文為官方手冊翻譯,如文中有不妥之處,可參考:/book/phabricator/介紹篇(introduction)安裝向?qū)П竟?jié)介紹獲得以及運(yùn)行Phabricator所需的最基本安裝指引。簡單的配置和安裝過程可以參考:.tw/blog/categories/phabricator/安裝要求Phabricator是一個LAMP應(yīng)用套件,因此最基本的要求就是LAMP環(huán)境:Linux:Linux的不同發(fā)行版及變種是必需的。MacOSX是一個可接受的Linux變種,Windows不是。Phabricator不能安裝在Windows系統(tǒng)上。在MacOSX,AmazonLinux,Ubuntu,RHEL和CentOS上運(yùn)行的Phabricator有活躍的貢獻(xiàn)者;如果你運(yùn)行在其他的Linux發(fā)行版上,請發(fā)送補(bǔ)丁或投訴。Apache(或nginx,或lighttpd):需要Apache2.2.7以上版本。MySQL:MySQL必需PHP:需要PHP5.2以上版本注意:Phabricator的命令行接口--Arcanist,可以在Windows上正常運(yùn)行。查看詳細(xì)說明Aranist使用教程:Windows(官方頁面:ArcanistUserGuide:Windows)。你可能也需要一個域名和一臺能連接互聯(lián)網(wǎng)的電腦。安裝必需的組件如果你在Ubuntu或Redhat及其衍生版本上安裝,這里有可用的安裝腳本,這些腳本可以自動處理下面文檔中討論的大部分操作:RedHat衍生版本:/rsrc/install/install_rhel-derivs.shUbuntu:/rsrc/install/install_ubuntu.sh如果以上安裝腳本可以正常安裝,那么你可以直接跳過下面的操作,轉(zhuǎn)到配置章節(jié),了解如何配置。這里對應(yīng)的系統(tǒng)下載對應(yīng)的安裝腳本,這里在對應(yīng)目錄(推薦/usr/<name_you_like>下)執(zhí)行wget/rsrc/install/install_ubuntu.sh即可。下載完畢后執(zhí)行,執(zhí)行腳安裝本按照屏幕提示進(jìn)行操作。下面列出的必要軟件,以及Phabricator源碼都會由腳本來下載/安裝。這里還要注意的是在安裝mysql時,會有幾次讓你輸入root密碼的提示。這里推薦將密碼設(shè)置為空,以方便后面的使用。如果不幸,你已經(jīng)設(shè)置了root密碼,就需要將這個密碼擦除,參考之后“擦除mysql密碼”步驟。否則,如下所列將是你必須安裝的:git(在包管理系統(tǒng)中通常叫作git)Apache(通常叫作httpd或apache2)(或nginx)MySQL服務(wù)器(通常叫作mysqld或mysql-server)PHP(通常叫作php)必需的PHP擴(kuò)展:mbstring,iconv,mysql(或mysqli),curl,pcntl(或者"php-mysql"或"php5-mysql")可選的PHP擴(kuò)展:gd,apc(安裝該擴(kuò)展如果有困惑,請看下面的APC安裝說明),xhprof(下面有說明,僅在你對Phabricator做二次開發(fā)時需要)如果你已經(jīng)設(shè)置好LAMP環(huán)境,你可以已經(jīng)獲得你所需的任何東東。既然你已經(jīng)安裝以上所需的軟件,下面獲取Phabricator以及其依賴包:$cdsomewhere/#picksomeinstalldirectory切換到安裝目錄somewhere/$gitclonegit:///facebook/libphutil.gitsomewhere/$gitclonegit:///facebook/arcanist.gitsomewhere/$gitclonegit:///facebook/phabricator.git擦除mysql密碼(可選)1.停止mysql進(jìn)程/etc/init.d/mysqlstop或servicemysqlstop2.無密碼進(jìn)入mysqlmysql–skip-grant-table&3.擦除root密碼當(dāng)執(zhí)行完以上語句,可以看到命令行為“mysql>”或與之類似的標(biāo)示,這時可以通過SQL語句進(jìn)行操作。Mysql>usemysql;Mysql>updateusersetpassword=password(“”)whereuser=”root”;Mysql>flushprivileges;這里需要注意的是每句命令需要用分號“;”結(jié)尾。執(zhí)行完以上得操作,root的密碼就被清空。4.啟動mysql/etc/init.d/mysqlstart或servicemysqlstart安裝APC(可選)如同所有寫在PHP中的東西一樣,Phabricator在APC安裝完畢后,運(yùn)行會更快。你首先需要先安裝“pcre-devel”:sudoyuminstallpcre-devel#或sudoapt-getinstallpcre-devel然后你有兩個選擇。一個是安裝viaPECL(需要首先測試一下)sudoyuminstallphp-pearsudopeclinstallapc如果它不工作,在PECL文件夾中找到apc,具體的文檔在:/package/APC安裝APC是可選的,但是這里
強(qiáng)烈推薦安裝,特別是在主機(jī)端。一旦APC安裝完成,測試就可以執(zhí)行了:php-i|grepapc如果以上命令無法執(zhí)行,那就添加:extension=apc.so..在"/etc/php.d/apc.ini"文件中,或者"php.ini"文件中,可以通過"php-i"來找對應(yīng)的文件。安裝XHProf(可選)XHProf是一個PHP性能測試工具。你不需要安裝它,除非你需要對Phabricatoe進(jìn)行性能測試。你可以通過如下命令行進(jìn)行安裝:$peclinstallxhprof如果你已經(jīng)安裝了PEAR,并且是1.9.3之前的版本,你可能會運(yùn)行phpize的時候失敗。如果是這樣,你可以下載其源文件,然后對其進(jìn)行編譯:$cdextension/$phpize$./configure$make$sudomakeinstall你可能需要在你的php.ini文件中添加"extension=xhprof.so"選項(xiàng)。參考
/bug.php?id=59747
獲取更多相關(guān)信息。更新Phabricator由于Phabricator一直處于發(fā)展?fàn)顟B(tài),所以你應(yīng)該經(jīng)常更新它。如何更新:停止webserver的運(yùn)行運(yùn)行g(shù)it拉取libphutil/,arcanist/,phabricator運(yùn)行phabricator/bin/storageupgrade重新啟動webserver參看配置向?qū)б垣@取更多細(xì)節(jié)。你也可以使用類似如下的腳本以自動化的方式更新:/rsrc/install/update_phabricator.sh配置篇(Configuration)軟件/服務(wù)配置向?qū)П竟?jié)包含了Phabricator所需的最基本的配置指引。前提該文檔假定你已經(jīng)安裝了所有必需的組件。如果沒有,請查看安裝向?qū)?。下一步:配置你的webserver(Apache,nginx或lighttpd)通過瀏覽器訪問Phabricator按照指引完成設(shè)置WEB服務(wù)器:配置Apache注意:下面是Apache配置指引。如果使用nginx或lighttpd,可以訪問官網(wǎng)的相關(guān)頁面。運(yùn)行Apache,并使用一個測試頁來驗(yàn)證其是否正常工作。Apache測試需要做如下工作:1.加入sververname(1)修改httpd.conf,這個文件在剛裝完Apache時應(yīng)該是空的。(2.4.x版本在/etc/apache2路徑下創(chuàng)建httpd.conf文件即可)加入如下內(nèi)容:ServerNamelocalhost(2)保存退出。2.驗(yàn)證Apache安裝(1)重啟Apache服務(wù)/etc/init.d/apache2restart(2)驗(yàn)證頁面打開瀏覽器,在地址欄中輸入localhost??词欠駮霈F(xiàn)“Itworks”的字樣,如果出現(xiàn)代表Apache運(yùn)行正常。否則,就需要去查看一下httpd.conf是否配置正確了。如果有問題,請查看Apache的幫助文檔。確保mod_php和mod_rewrite啟用,如果你設(shè)置SSL,請開啟mod_ssl模塊。這里得模塊都是默認(rèn)開啟的。如果你還沒有設(shè)置一個域名指向你將要安裝的主機(jī)上。你可以安裝Phabricator到一個二級域名(如)上或一個完整域名上,但你不能安裝到一個已經(jīng)存在的網(wǎng)站的某個子目錄下。輸入你將要安裝到的域名以確保Apache可以為其正常服務(wù),并且DNS已經(jīng)正確配置。注意:域名必須包含點(diǎn)(.),而不只是一個名稱,如http://example/。否則,一些web瀏覽器將無法設(shè)置cookies?,F(xiàn)在,可以創(chuàng)建一個VirtualHost條目(放置Phabricator到一個二級域名上)或編輯Directory條目的DocumentRoot。將如下所示:(2.4.x版本在/etc/apache2路徑下創(chuàng)建httpd.conf文件即可)httpd.conf(/etc/apache2/httpd.conf)<VirtualHost*>#Changethistothedomainwhichpointstoyourhost.ServerName#Changethistothepathwhereyouput'phabricator'whenyoucheckedit#outfromGitHubwhenfollowingtheInstallationGuide.##Makesureyouinclude"/webroot"attheend!DocumentRoot/path/to/phabricator/webrootRewriteEngineonRewriteRule^/rsrc/(.*)-[L,QSA]RewriteRule^/favicon.ico-[L,QSA]RewriteRule^(.*)$/index.php?__path__=$1[B,L,QSA]</VirtualHost>如果當(dāng)前的Apache配置不能為你所放置的Phabricator文檔目錄服務(wù),你需要添加如下的部分到httpd.conf中。當(dāng)官方給出的配置方法無法讓服務(wù)器正常工作,可以嘗試以下的配置方式。ServerName<VirtualHost*>#Changethistothedomainwhichpointstoyourhost.#Changethistothepathwhereyouput'phabricator'whenyoucheckedit#outfromGitHubwhenfollowingtheInstallationGuide.##Makesureyouinclude"/webroot"attheend!DocumentRoot/path/to/phabricator/webrootRewriteEngineonRewriteRule^/rsrc/(.*)-[L,QSA]RewriteRule^/favicon.ico-[L,QSA]RewriteRule^(.*)$/index.php?__path__=$1[B,L,QSA]</VirtualHost>按照官方給出的去修改httpd.conf文件,Apache可能會找不到服務(wù)器。會有如下提示:httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,usingforServerName(這里的有時也會是)紅色字部分與官方給出得不一致,這樣在修改完重啟Apache服務(wù)器后就不會出錯。適用與Apache版本為2.4之前版本ApacheOlderThan2.4<Directory"/path/to/phabricator/webroot">Orderallow,denyAllowfromall</Directory>適用與Apache版本為2.4或之后版本Apache2.4andNewer<Directory"/path/to/phabricator/webroot">Requireallgranted</Directory>更改后,重啟Apache,然后跳轉(zhuǎn)到下面的設(shè)置步驟。配置域名在以上的配置都正確的前提下,需要去修改hosts文件,需要對域名進(jìn)行直接的映射。Hosts路徑:/etc/hosts添加:server機(jī)IP域名(例如:hostlocal)配置完hosts后需要對網(wǎng)絡(luò)服務(wù)進(jìn)行重啟:執(zhí)行以下命令,重啟網(wǎng)絡(luò)服務(wù)即可:sudo/etc/init.d/networkingrestart設(shè)置現(xiàn)在,輸入你設(shè)置的域名。你將會看到設(shè)置指引。文檔的余下部分為其他具體設(shè)置步驟的附加說明。存儲:配置MySQL設(shè)置中,你需要配置MySQL。運(yùn)行MySQL,驗(yàn)證是否能正常連接。如果有問題,請參考MySQL的幫助文檔。如果MySQL正常工作,你需要加載Phabricator的模式,運(yùn)行命令:phabricator/$./bin/storageupgrade根據(jù)提示進(jìn)行操作即可,將Phabricator的配置文件加載到mysql中。如果你配置了一個無特權(quán)的用戶以連接數(shù)據(jù)庫,你將不得不重新設(shè)置為root用戶或其他的管理員以使模式能被應(yīng)用。phabricator/$./bin/storageupgrade--user<user>--password<password>可以使用--force參數(shù)來避免腳本進(jìn)行提示,對mysql強(qiáng)行加載配置文件。phabricator/$./bin/storageupgrade--force注意:每當(dāng)Phabricator進(jìn)行了更新,都需要運(yùn)行storageupgrade。每當(dāng)server關(guān)閉后再次開啟,需要重新啟動phabricator。頁面信息會提示你該怎么做。驗(yàn)收Phabricator:在MySQL配置完成后,可以到網(wǎng)頁上去登陸一下Phabricator,看工作是否正常。登陸頁面。會出現(xiàn)管理員注冊界面,按照提示填寫管理員的真實(shí)信息。進(jìn)入phabricator的主頁面,在瀏覽器上部會出現(xiàn)如下圖顯示點(diǎn)擊“youhave9unresolvedsetupissues..”進(jìn)入issue頁面(我使用的當(dāng)前phabricator版本是2509c6b0f57dc533607fb6811adc02529b0d6fd8)??梢钥吹絠ssue如下圖所示。其中有一個比較重要的設(shè)置,就是登陸界面的設(shè)置。NoAuthenticationProvidersConfigured(登陸issue)點(diǎn)擊進(jìn)入issue頁面→點(diǎn)擊“usingthe"Auth"application”→點(diǎn)擊"AddAuthenticationProvider",可以看到如下頁面。選擇一種登陸或身份驗(yàn)證方式。這里我們選擇“用戶名/密碼”的方式。確認(rèn)添加后進(jìn)入下一頁,將所有選項(xiàng)都進(jìn)行勾選(默認(rèn)),也可以是根據(jù)需要進(jìn)行設(shè)置。這里有一個最短密碼長度的設(shè)置account.minimum-password-length,可以在之后進(jìn)行設(shè)置。當(dāng)再次確認(rèn)后,登陸方式就被確認(rèn)應(yīng)用了。再次刷新頁面,這個issue就被修復(fù)了。如果不幸,你在管理員登陸完成后,沒有去修復(fù)這個issue,下一次在想進(jìn)入服務(wù)器就基本上是不可能了。這里提供一個辦法。因?yàn)槭褂玫檬莔ysql數(shù)據(jù)庫存儲我們的配置,這里我們可以將數(shù)據(jù)庫中得配置進(jìn)行刪除或者說恢復(fù)成默認(rèn)的。這里我們需要一個清理數(shù)據(jù)庫的php文件,假設(shè)為clean.php。<?php$user="root";//數(shù)據(jù)庫用戶名$password="";//數(shù)據(jù)庫密碼$db_name="mysql";//數(shù)據(jù)庫名$link=mysql_connect("localhost:3306",$user,$password);mysql_select_db("$db_name",$link);echo"<p>正在清空數(shù)據(jù)庫,請稍等<br>";$result=mysql_query("SHOWtables",$link);while($currow=mysql_fetch_array($result)){mysql_query("dropTABLEIFEXISTS$currow[0]");echo$currow[0]."<br>";}echo"<br>恭喜你清理MYSQL成功<br>";?>之后運(yùn)行phpclean.php,就可以重新再登陸進(jìn)入phabricator主頁面了。注意:這里root密碼是空的。如果root有密碼,可以參考擦除mysql密碼步驟。MySQLSTRICT_ALL_TABLESModeNotSet(mysql表格模式設(shè)定)點(diǎn)擊進(jìn)入issue頁面就會出現(xiàn)下圖所示的內(nèi)容。這個issue的解決辦法:在/etc/mysql/f中的[mysqld]字段下面即可,類似這樣:[mysqld]##*BasicSettingsuser=mysqlpid-file=/var/run/mysqld/mysqld.pidsocket=/var/run/mysqld/mysqld.sockport=3306basedir=/usrdatadir=/var/lib/mysqltmpdir=/tmplc-messages-dir=/usr/share/mysqlsql-mode=STRICT_ALL_TABLESskip-external-locking….然后使用/etc/init.d/mysqlrestart重新啟動mysql,使剛才的修改可能會遇到的問題:當(dāng)將“sql-mode=STRICT_ALL_TABLES”放在了“skip-external-locking”的下一行時,會出現(xiàn)如下錯誤:Can'tconnecttolocalMySQLserverthroughsocket'/var/run/mysqld/mysqld.sock'在我的嘗試的時候沒有很好的辦法來覺得這個問題,唯一的辦法就是將mysql卸載干凈后重裝:刪除mysql
sudoapt-getautoremove--purgemysql-server-5.0
sudoapt-getremovemysql-server
sudoapt-getautoremovemysql-server
sudoapt-getremovemysql-common//這個很重要
上面的其實(shí)有一些是多余的。清理殘留數(shù)據(jù)dpkg-l|grep^rc|awk'{print$2}'|sudoxargsdpkg-P然后在用安裝腳本進(jìn)行安裝,再運(yùn)行bin/storageupgrade將初始化的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫即可。NoSendmailBinaryFound(設(shè)置郵件服務(wù))點(diǎn)擊進(jìn)入issue界面后,會有如同下圖的顯示。點(diǎn)擊頁面上的“Editmetamta.mail-adapter”,進(jìn)入郵件適配器頁面??梢詤⒖枷聢D進(jìn)行配置:選擇合適的“value”,保存即可解決這個issue。ServerTimezoneNotConfigured(設(shè)置服務(wù)器的時區(qū))時區(qū)的配置是很重要的。php默認(rèn)顯示的時間都是格林威治標(biāo)準(zhǔn)時間,和北京時間差了正好8個小時。點(diǎn)擊進(jìn)入issue頁面,會出現(xiàn)如下圖的顯示:如圖中說的,這里需要配置兩個地方。第一個地方:修改/etc/php5/apache2/php.ini配置文件,在[date]字段后面找到被注釋掉的“;date.timezone=”,將注釋打開。但是填什么這是個問題。這里我們就要看一下頁面中給出的“PHPDocumentation”了。打開“PHPDocumentation”頁面,找到“date.timezone”字符,點(diǎn)擊進(jìn)入對應(yīng)頁面。隨后打開的頁面支持“簡體中文”顯示,如果英文不太好的同學(xué)就可以在這里找“所支持的時區(qū)列表”如果英文沒問題的同學(xué)直接找“ListofSupportedTimezones”兩個連接其實(shí)是一個,點(diǎn)擊進(jìn)入后,在頁面的上部就有對應(yīng)支持區(qū)域的連接,這里是“七大洲”+“太平洋地區(qū)”+“大西洋地區(qū)”+“其他”組成的。我們需要按照自己服務(wù)器所在地域來對時區(qū)進(jìn)行設(shè)置。我們這里選擇Asia(亞洲),頁面跳轉(zhuǎn)后,可以看到一些知名城市的名字。這些城市里面,中國的城市有:(按頁面中的出現(xiàn)順序)Asia/Chongqing(重慶)Asia/Harbin(哈爾濱)Asia/Hong_Kong(香港)Asia/Macao(澳門)Asia/Shanghai(上海)Asia/Taipei(臺北)Asia/Urumqi(烏魯木齊)所以,配置文件中寫成date.timezone=Asia/Shanghai即可。大家也可以根據(jù)自己的實(shí)際情況,對時區(qū)進(jìn)行配置。note1:網(wǎng)絡(luò)上說是設(shè)置成“PRC”(中華人民共和國)也沒有問題,不過在文檔中,我們沒有看到。保險起見,我們使用了Asia/Shanghai。note2:很奇怪,文檔里面沒有北京第二個地方:再就是對phabricator的時區(qū)進(jìn)行設(shè)置,點(diǎn)擊“Editphabricator.timezone”進(jìn)入對應(yīng)頁面,在“Value”欄中輸入“Asia/Shanghai”。然后保存設(shè)置即可。UploadLimitNotYetConfigured(配置上載文件大?。┻@個在后期的管理以及對數(shù)據(jù)的備份上是比較重要的。點(diǎn)擊issue進(jìn)入對應(yīng)頁面:之后點(diǎn)擊“Editstorage.upload-size-limit”,在“Value”欄中填寫你認(rèn)為適當(dāng)?shù)拇笮?,例如下圖所示:大家可以根據(jù)自己的需要進(jìn)行配置。配置完成后,保存即可。MissingRepositoryLocalPath(配置本地庫)這個庫不是用戶的庫,是Phabricator存儲一些必要依賴文件的庫。點(diǎn)擊issue,進(jìn)入對應(yīng)頁面,會出現(xiàn)如下圖所示的內(nèi)容:這里是Phabricator的默認(rèn)地址,如果/var/repo/這個地址已經(jīng)被其他的軟件使用或者你想把他放到別的地方,可以點(diǎn)擊“Editrepository.default-local-path”對其進(jìn)行地址配置。因?yàn)槲覀兪褂玫氖且粋€剛裝好的系統(tǒng),所以不存在/var/repo/這個目錄,也不存在被占用的情況。我們就直接去創(chuàng)建它,然后刷新頁面,這個issue也被修復(fù)了。BaseURINotConfigured(配置服務(wù)器基址)這里會和域名解析相關(guān)。個人不推薦設(shè)置這個基址,一旦設(shè)置了,只能通過對應(yīng)域名或者IP進(jìn)行訪問。./bin/configsetphabricator.base-uri'/'或./bin/configsetphabricator.base-uri'0'在phabricator安裝目錄下執(zhí)行對應(yīng)的命令后,提示“Set'phabricator.base-uri'inlocalconfiguration.”。再刷新網(wǎng)頁,該issue就被修復(fù)了。PhabricatorDaemonsAreNotRunning(開啟守護(hù)線程)守護(hù)線程的開啟對于Phabricator,意味著可以啟動后臺程序,比如:發(fā)送郵件。在phabricator安裝目錄下的bin目錄下執(zhí)行phabricator/bin/#./phdstart后,出現(xiàn)一下提示代表守護(hù)線程已經(jīng)被開啟。Preparingtolaunchdaemons.NOTE:Logswillappearin'/var/tmp/phd/log/daemons.log'.Launchingdaemon"PhabricatorRepositoryPullLocalDaemon".Launchingdaemon"PhabricatorGarbageCollectorDaemon".Launchingdaemon"PhabricatorTaskmasterDaemon".Launchingdaemon"PhabricatorTaskmasterDaemon".Launchingdaemon"PhabricatorTaskmasterDaemon".Launchingdaemon"PhabricatorTaskmasterDaemon".Done刷新頁面后,這個issue也就被修復(fù)了。'apc.stat'EnabledinProduction(開啟phabricator開發(fā)者模式)這里為了安全考慮,“phabricator.developer-mode”變量默認(rèn)為false。而在php中對應(yīng)的設(shè)置需要去從必要得文件中獲取這些信息。點(diǎn)擊issue就有如上圖所示的內(nèi)容:*如果不開啟,需要去修改php的配置文件,不會影響使用。*如果開啟,進(jìn)入“Editphabricator.developer-mode”頁面,將開發(fā)者模式開啟即可。這里我們選擇了開啟,為了后期方便一些未知問題的處理。下一步繼續(xù):設(shè)置你的管理帳號和登陸/注冊,請參見
配置賬戶及注冊機(jī)制(官方頁面:ConfiguringAccountsandRegistration;了解更高級的配置主題,請參見
ConfigurationUserGuide:AdvancedConfiguration;配置上傳的文件和附件的存儲位置,請參見
ConfiguringFileStorage;配置Phabricator以支持發(fā)送郵件,請參見
ConfiguringOutboundEmail;配置Phabricator以支持接收郵件,請參見
ConfiguringInboundEmail;導(dǎo)入版本倉庫,請參見
DiffusionUserGuide;了解守護(hù)進(jìn)程工作,請參見
ManagingDaemonswithphd;配置備份工作,請參見
ConfiguringBackups;為Phabricator貢獻(xiàn)力量,請參見ContributorIntroduction.配置賬戶及注冊機(jī)制介紹如何配置,可以讓用戶對Phabricator進(jìn)行訪問。概述Phabricator支持多種登陸系統(tǒng)。你可以通過配置這些登陸系統(tǒng)(開啟或關(guān)閉),改變現(xiàn)有用戶的登陸方式,以及新用戶的注冊方式。登陸方式這里稱為“身份驗(yàn)證”。例如,開啟“用戶名/密碼”登陸模式,這是一種比較傳統(tǒng)的登陸方式,使用“用戶名”和“密碼”匹配進(jìn)行“身份驗(yàn)證”。用戶名/密碼”登陸這里還提供了其他的登陸方式,可以用某些“憑證”(或稱為“證書”)來進(jìn)行驗(yàn)證登陸。例如:Username/Password:
Usersuseausernameandpasswordtologinorregister.LDAP:
UsersuseLDAPcredentialstologinorregister.OAuth:
UsersuseaccountsonasupportedOAuth2provider(likeGitHub,Facebook,orGoogle)tologinorregister.OtherProviders:
Moreprovidersareavailable,andPhabricatorcanbeextendedwithcustomproviders.Seethe"Auth"applicationforalistofavailableproviders.在Phabricator安裝完畢后,默認(rèn)情況下這些登陸系統(tǒng)都是不開啟的,需要你使用具有管理員權(quán)限的用戶添加一種或多種登陸系統(tǒng),來支持用戶的登陸/注冊。當(dāng)你添加了一種方式后,你可以連接已經(jīng)存在的賬號(比如:可以直接將一個GitHubOAuth賬戶連接成Phabricator賬戶)?;蛘哂脩艨梢杂眠@種方式注冊新賬號(前提:需要開啟一些與注冊有關(guān)的選項(xiàng))恢復(fù)管理員賬戶如果管理員意外將用戶鎖住或無法登陸(比如:忘記密碼),你可以使用Phabricator下的bin/auth來恢復(fù)管理員賬戶。使用下面的命令進(jìn)行恢復(fù)操作:phabricator/$./bin/authrecover<username>...<username>處是你要恢復(fù)的管理員賬號的用戶名。這個操作將會給出一個連接,使用該連接登陸,系統(tǒng)會將你認(rèn)為是管理員用戶。賬戶管理使用管理員賬號登陸,到<phabricator>/people/或點(diǎn)擊主頁面上的“People”連接,之后就可以看到很多選項(xiàng)可以用來創(chuàng)建賬戶或者修改賬戶信息。手動創(chuàng)建新賬戶有兩種手動創(chuàng)建賬戶的方式:現(xiàn)階段使用頁面的方式配置賬戶,可能無法設(shè)置密碼。1.通過主頁面上的“People”選項(xiàng)(簡單)2.通過CLI(command-lineinterface,命令行界面)運(yùn)行accountadimin腳本。(這種方式需要添加一些選項(xiàng))。有些選項(xiàng)(例如:密碼和賬戶的級別)只能在命令行界面下使用。你可以通過這個方式恢復(fù)一個擁有管理員權(quán)限的用戶(當(dāng)你不小心將把你的管理員級別取消了)或者創(chuàng)建一個管理員或普通用戶。phabricator/$./bin/accountadmin下面給出對應(yīng)的命令:(1.紅色為手動輸入。2.[Y/n]選項(xiàng),大寫為默認(rèn)選項(xiàng)。)phabricator/$./bin/accountadminEnterausernametocreateanewaccountoreditanexistingaccount.Enterausername:testThereisnoexistinguseraccount'test'.Doyouwanttocreateanew'test'account?[Y/n]YEnteruserrealname:wangEnteruseremailaddress:wang@Enterapasswordforthisuser[blanktoleaveunchanged]:Shouldthisuserbeasystemagent?[y/N]NShouldthisuserbeanadministrator?[y/N]NACCOUNTSUMMARYOLDVALUENEWVALUEUsernametestRealNamewangEmailwang@PasswordUpdatedSystemAgentNNAdminNNSavethesechanges?[Y/n]YSavedchanges.當(dāng)在命令行界面執(zhí)行完畢后,“People”中的顯示如下圖:使用命令行界面創(chuàng)建普通用戶備份配置及執(zhí)行遷移對phabricator備份的一些建議。概述目前Phabricator還沒一個全面的備份系統(tǒng),不過創(chuàng)建備份對于Phabricator也不是很困難。Phabricator自帶的的一些工具可以有效的幫助你完成備份工作。下面列出的數(shù)據(jù),很有必要去做備份。theMySQLdatabases;(數(shù)據(jù)庫信息)uploadedfiles;(上傳的文件)yourPhabricatorconfigurationfiles.(Phabricator的配置文件)下面我們將會討論如何去備份這些數(shù)據(jù)備份:MySQL數(shù)據(jù)庫Phabricator中的很多數(shù)據(jù)都存在MySQL數(shù)據(jù)庫中,所以備份這些數(shù)據(jù)是很有必要的。你可以再Phabricator安裝的目錄下找到bin/storagedump,該腳本可以獲取MySQL中所有的數(shù)據(jù)庫。我們也可以使用MySQL中自帶的數(shù)據(jù)庫獲取腳本——mysqldump。這個腳本也可以完成獲取MySQL所有數(shù)據(jù)庫的功能。從腳本中獲取的數(shù)據(jù)可能會很多,這些數(shù)據(jù)時可以進(jìn)行壓縮。以下的命令可以幫助你使用gzip來儲存從MySQL數(shù)據(jù)庫中獲取出來的數(shù)據(jù)。phabricator/$./bin/storagedump|gzip>backup.sql.gz然后,可以將備份好的壓縮包放在一個安全的地方(如同將一個小盒子埋在老樹樁下)?;謴?fù):MySQL可以使用如下命令對MySQL進(jìn)行恢復(fù)$gunzip-cbackup.sql.gz|mysql備份:上載文件上載文件可能存儲在不同的位置,備份過程需要得到文件存儲的地址。Default/MySQL:在默認(rèn)的情況下,上載文件都存在MySQL數(shù)據(jù)庫中,所以備份MySQL數(shù)據(jù)庫就等于備份了所有上載文件。所以,這里就不用做一些額外的工作。AmazonS3:如果使用的是AmazonS3(Amazon
SimpleStorageService,亞馬遜簡易儲存服務(wù))。當(dāng)完全安裝后,冗余和備份都內(nèi)置在服務(wù)中。當(dāng)你不大確定Amazon的服務(wù)能對你的數(shù)據(jù)進(jìn)行備份是,你可以在Phabricator外圍備份你的S3庫。(感覺這番話說的沒什么用)LocalDisk:如果你使用本地磁盤存儲引擎,你需要手動備份上載文件。你可以將存儲著數(shù)據(jù)的根目錄進(jìn)行簡單的復(fù)制,將復(fù)制的備份放到安全的地方保存。(根目錄可從storger.localdisk.path配置變量中得到)關(guān)于如何存儲文件的信息,可以參考ConfiguringFileStorage?;謴?fù):上載文件將備份完畢的數(shù)據(jù)做回拷貝,去替換對應(yīng)位置的數(shù)據(jù)即可。備份:配置文件配置文件也是很有必要做備份,這里包括一些部署和管理Phabricator的腳本(例如自定義升級腳本)。這里比較好的做法是:檢查一下當(dāng)前的配置文件能使系統(tǒng)正常工作。驗(yàn)證沒有問題后,將他們存入一個私人庫中,以便將來更新和還原?;謴?fù):配置文件要恢復(fù)配置文件,只需要將正確的配置文件拷貝會正確的位置即可。安全性MySQL獲取的數(shù)據(jù)沒有內(nèi)置加密,并且很多數(shù)據(jù)以原始形式和可訪問形式存儲在Phabricator中,所以給用戶訪問備份是一個很像給他們訪問本機(jī)上運(yùn)行的phabricator。用戶可以可以從備份中得到很多信息,例如:讀取了原則上他們應(yīng)該看不到的數(shù)據(jù)獲取了Phabricator保存的所有郵件地址,以及秘鑰文件獲取了其他用戶的會話和管道標(biāo)記,并效仿他們一些信息會保存很久,所以即使一個很早之前的備份被泄露都會存在風(fēng)險。在限制訪問的phabricator主機(jī)或數(shù)據(jù)庫的同時,也應(yīng)該限制用戶對備份的訪問。配置上載文件限制概述在多個應(yīng)用程序?qū)又校募蟼鞔笮∈怯善闻渲脕硐拗频?。一般情況下,設(shè)定最大值上傳值是多種限制因素中最有效的一個。有時需要調(diào)高上限的閥值,才能將要上載大文件上傳到服務(wù)器端。限制上載的因素有列舉如下:HTTPServer:HTTP服務(wù)器就會設(shè)置最大請求大小。當(dāng)你的文件大小超出了限制,將會看到來自服務(wù)器的警告提示。以下限制指令,限制了請求上傳文件的大小,所以要上傳的文件不能大于上限閥值。Apache:Apache限制請求是通過
LimitRequestBody
指令。nginx:nginx通過nginx
client_max_body_size
指令來限定.這個指令的默認(rèn)值是
1M。lighttpd:lighttpd通過
server.max-request-size
指令來進(jìn)行限制.PHP:PHP也有一些限制上載的指令。這些指令可以在php.ini文件中找到。upload_max_filesize:設(shè)置最大可上載文件指令。默認(rèn)值為
2M。post_max_size:設(shè)置最大投遞大小指令。默認(rèn)值為
8M。memory_limit:對于上載的文件來說,在Phabricator調(diào)整內(nèi)存限制之前,都需要讀入到內(nèi)存中去。如果文件大小超過了之前設(shè)置好的大小,PHP將會提示你。max_input_vars:當(dāng)文件上載是通過HTML5的拖拽動作完成時,PHP會通過“投遞參數(shù)”來分析文件。當(dāng)上載文件里面有過多的“碎片”,可能會觸發(fā)到max_input_vars
指令。(你可能需要在這里設(shè)置一些“天文數(shù)字”)StorageEngines:一些存儲引擎也可以設(shè)置最大可上傳文件值。上傳文件時,你必須保證你的文件沒有超過存儲引擎設(shè)置好的上限。下面列出Phabricator支持的存儲引擎:MySQLEngine:通過Phabricator的
storage.mysql-engine.max-size變量來進(jìn)行設(shè)置。AmazonS3:在Phabricator的實(shí)現(xiàn)中,上載文件的最大值被限定為5G。LocalDisk:最大上載文件大小,小于磁盤剩余空間即可。ResourceConstraints(資源約束):文件上傳的最大值也會受到硬件資源的影響。在上載文件被移動到存儲引擎前,需要整體寫進(jìn)磁盤中;如果文件過大,將會無法寫入到磁盤中。同樣,服務(wù)器都會有些硬性限制,會從根本上阻止Phabricator處理那些超級大的文件(GB/TB級別)。所以在某些情況下,Phabricator的表現(xiàn)可能會不大理想。PhabricatorMasterLimit:主要限制指令
storage.upload-size-limit,將會在圖形頁面上顯示最大上載限制值。這些設(shè)置在Phabricator不會都用到,這些值需要通過如下所示的手工設(shè)置的方式來完成。在軟件端(PHP,MySQL)設(shè)置你要限制的大小,例如
100M。將以上的設(shè)置都調(diào)整到很高,以便你能上載更多的文件。不過這里也需要對安全性進(jìn)行商榷。設(shè)置
storage.upload-size-limit
為你想要的值。圖形界面將會顯示你設(shè)置的數(shù)值。上傳一個大文件,確定它在服務(wù)器上能正?!肮ぷ鳌啊E渲冒l(fā)送\接收郵件郵件收發(fā)功能在Phabricator中也是一個必不可少的功能。在圖形界面端,新用戶的注冊對這個功能的依賴是很強(qiáng)的,新用戶可以通過郵件激活他們的賬號。配置發(fā)送郵件概述Phabricator通過各種不同得適配器發(fā)送郵件:本地主機(jī)上基于SMTP的sendmain服務(wù)本地主機(jī)上基于SMTP的postfix亞馬遜的SES(SimpleEmailService,簡單郵件服務(wù))SendGrid的RESTAPI自己寫的適配器將郵件存放在一個地方,并不發(fā)送它在這其中,sendmail是默認(rèn)選項(xiàng),但是需要做一些配置。SES和SendGrid配置起來都很簡單,但是需要花錢,并且還有一些限制。寫一個自定義得解決方案,需要去深挖代碼。下面將會對每種配置方法進(jìn)行詳細(xì)介紹。Phabricator也可以用以下兩種方式發(fā)送郵件:馬上發(fā)送,當(dāng)信息產(chǎn)生后(默認(rèn))通過域名后臺發(fā)送在后臺發(fā)送郵件需要啟動Phabricator得守護(hù)進(jìn)程,但是可以大大提高醫(yī)用程序得速度。更多使用域名的信息,可參考ManagingDaemonswithphd.基本配置無論以何種方式發(fā)送電子郵件,你都要在相關(guān)的配置文件中配置這些關(guān)鍵字。metamta.default-address決定默認(rèn)的郵件發(fā)送方。如果你的域名為,就要設(shè)置一些類似這樣的郵箱地址:"noreply@".metamta.domain需要設(shè)置你的域名,例如""。metamta.can-send-as-user在大多數(shù)情況下應(yīng)該是false,更多信息需要瀏覽default.conf.php的文檔。配置郵件適配器選擇如何發(fā)送郵件,配置關(guān)鍵字metamta.mail-adapter的值??赡艿闹等缦滤荆篜habricatorMailImplementationPHPMailerLiteAdapter:默認(rèn)值,使用"sendmail",可見"Adapter:Sendmail"節(jié).PhabricatorMailImplementationPHPMailerAdapter:使用SMTP,可見"Adapter:SMTP"節(jié)PhabricatorMailImplementationAmazonSESAdapter:使用AmazonSES,可見"Adapter:AmazonSES"節(jié).PhabricatorMailImplementationSendGridAdapter:使用SendGrid,可見"Adapter:SendGrid"節(jié).SomeCustomClassYouWrite:使用自己寫的適配器,可見"Adapter:Custom"節(jié).PhabricatorMailImplementationTestAdapter:這個值將完全禁用郵件發(fā)送。如果你不想對外發(fā)送郵件,可以使用該值?;蛘邥簳r跳過這一步,以后再來配置。Adapter:Sendmail這是默認(rèn)選項(xiàng),使能時需要選擇PhabricatorMailImplementationPHPMailerLiteAdapter作為metamta.mail-adapter的值。需要有sendmail服務(wù)已經(jīng)在系統(tǒng)中安裝。大多數(shù)MTA(例如,sendmail,qmail,postfix)都需要預(yù)裝sendmail服務(wù)(在這個服務(wù)在你的機(jī)器上不是默認(rèn)安裝好的)。為了安裝順利,可以參考相關(guān)內(nèi)容,在你喜歡的MTA的文檔中。既然你要發(fā)送郵件,就應(yīng)該有一些東西,類似SPF規(guī)則、黑洞和MTA設(shè)置等等。不過,這已經(jīng)超過了本指南的范疇。如果你已經(jīng)可以用命令行發(fā)送電子郵件或者知道應(yīng)該如何配置它了,這個選項(xiàng)就很明朗了。如果你不知道應(yīng)該怎么去把郵件發(fā)送出去,可以參考使用亞馬遜SES。Adapter:SMTP對于多數(shù)情況都是使用SMTP發(fā)送郵件,你可以使用'sendmail'或'postfix'來做這件事。但是,多數(shù)SMTP服務(wù)器需要認(rèn)證,以及'sendmail'郵件發(fā)送器不工作。如果你想試試postfix,為了安裝順利,參照'postfix作為MTA的文檔,然后你可以配置使用SMTP。為了使Phabricator使用SMTP,需要對如下的關(guān)鍵字進(jìn)行配置:metamta.mail-adapter:設(shè)置為"PhabricatorMailImplementationPHPMailerAdapter".phpmailer.mailer:設(shè)置為"smtp".phpmailer.smtp-host:設(shè)置smtp服務(wù)器的名字phpmailer.smtp-port:設(shè)置smto服務(wù)器對應(yīng)的端口。phpmailer.smtp-user:設(shè)置用戶名,用于認(rèn)證。phpmailer.smtp-password:設(shè)置密碼,用于認(rèn)證。Adapter:AmazonSES亞馬遜SES是亞馬遜云郵件服務(wù)。它是付費(fèi)得,但是比sendmail服務(wù)更容易去配置,還有更簡單的發(fā)送郵件配置。使用亞馬遜SES,你需要在亞馬遜上注冊一個賬號,可以通過這個連接/ses/進(jìn)行注冊。為了使Phabricator使用亞馬遜SES,設(shè)置如下得關(guān)鍵字:metamta.mail-adapter:設(shè)置為"PhabricatorMailImplementationAmazonSESAdapter".amazon-ses.access-key:設(shè)置你的亞馬遜SES訪問鍵。amazon-ses.secret-key:設(shè)置你的亞馬遜SES密鑰。NOTE:亞馬遜SES需要驗(yàn)證你的“發(fā)送方”地址。通過"metamta.default-address"關(guān)鍵字配置默認(rèn)“發(fā)送方”地址,然后按照亞馬遜SES驗(yàn)證過程進(jìn)行驗(yàn)證。在驗(yàn)證沒有結(jié)束之前,你是不能發(fā)送郵件的。NOTE:亞馬遜SES接收郵件有延遲(大概1~2秒),并且使用后臺發(fā)送郵件的方式,會提高應(yīng)用程序的性能。Adapter:SendGridSendGrid是一個郵件傳送服務(wù),類似于亞馬遜SES。你可以從該連接得到更多信息/。它配置起來比較容易,但是付費(fèi)的??梢杂脙煞N方式來配置SenfGrid:通過SMTP。通過RESTAPI。如果使用SMTP,僅僅需要配置sendmail服務(wù),并使用Phabricator安裝后的默認(rèn)值。如果使用RESTAPI,按照以下說明進(jìn)行。配置Phabricator使用SendGrid,設(shè)置如下關(guān)鍵字:metamta.mail-adapter:設(shè)置成"PhabricatorMailImplementationSendGridAdapter"sendgrid.api-user:設(shè)置SendGrid登陸名sendgrid.api-key:設(shè)置SendGrid密碼當(dāng)你登陸到了你的SendGrid賬戶,你可以在(/developer)很容易找到這些信息。Adapter:自定義你可以通過一個子類實(shí)例,提供自定義的適配器。metamta.mail-adapter需要設(shè)置成PhabricatorMailImplementationAdapterTODO:需要有較好的記錄,來描述這一次對Phabricator的擴(kuò)展。Adapter:關(guān)閉郵件收發(fā)機(jī)制當(dāng)你不需要發(fā)送任何郵件或不想對它進(jìn)行配置時,你可以使用PhabricatorMailImplementationTestAdapter完全讓郵件發(fā)送機(jī)制失效。將metamta.mail-adapter設(shè)置成"PhabricatorMailImplementationTestAdapter"。配置MetaMTA使用守護(hù)進(jìn)程發(fā)送郵件無論是如何從服務(wù)器端發(fā)送出電子郵件的,你可以切換到MTA主處理過程和進(jìn)入一個守護(hù)線程。這將極大的提高應(yīng)用程序得性能。特別是對于DifferentialRevisions和ManiphestTasks操作,發(fā)送出“通知”郵件。如果你設(shè)置metamta.send-immediately為false,MetaMTA將隊(duì)列中得郵件通過PhabricatorTaskmasterDaemon(一個守護(hù)線程)進(jìn)行發(fā)送。更多有關(guān)使用守護(hù)線程的信息,可參考ManagingDaemonswithphd.測試/調(diào)試發(fā)送郵件你可以使用bin/mail腳本來進(jìn)行測試、調(diào)試、檢查發(fā)送郵件。phabricator/$./bin/maillist-outbound#Listoutboundmail.phabricator/$./bin/mailshow-outbound#Showdetailsaboutmessages.phabricator/$./bin/mailsend-test#Sendtestmessages.運(yùn)行bin/mailhelp<command>會有更多有關(guān)這些命令的幫助信息。你可以使用守護(hù)程序控制臺,對守護(hù)線程進(jìn)行監(jiān)控(/daemon/,或者在主頁面點(diǎn)擊DaemonConsole)。配置接收郵件序言這里有幾種基本方法可用:使用SendGrid(/),使用起來很簡單,但是收費(fèi).使用你己有的MTA(MailTransferAgent,郵件傳輸代理),配置起來有些折騰人,不過免費(fèi)。如果你想使用其他服務(wù)來支持這個功能,請讓Phabricator開發(fā)組協(xié)助你,否則配置起來可能會有遇到很多的麻煩。配置Phabricator在默認(rèn)的情況下,Phabricator使用"noreply@"郵件地址作為發(fā)送方(可以通過配置
metamta.default-address變量來改變這個默認(rèn)值),以及為用戶生成“回復(fù)/通知”郵件(例如,通過評論)。當(dāng)用戶進(jìn)行某些操作時,就會生成了郵件通知。用戶可以通過回復(fù)郵件來討論之前的改動,不過,Phabricator不會記錄這些討論內(nèi)容,并且用戶不能通過這種郵件的方式進(jìn)行一些操作,例如:發(fā)布任務(wù),要求改變當(dāng)前版本的修訂。為了讓Phabricator捕捉到這些行為,并能讓用戶在Phabricator通過郵件的方式對服務(wù)器進(jìn)行操作,需要對下面變量進(jìn)行設(shè)置:metamta.differential.reply-handler-domain:對Differential(commitTasksandBugs)使用郵件通知。metamta.maniphest.reply-handler-domain:對Maniphest(RepositoryBrowser)使用郵件通知??梢酝ㄟ^如下的說明,來設(shè)置這幾個“域名變量”。例如:主頁地址為""。一般的做法是將他們都設(shè)置在同一個“域”內(nèi),例如“”。當(dāng)設(shè)置完成并確定正確后,發(fā)送出去的郵件將會使用“回復(fù)”地址,例如"T123+273+af310f9220ad@"。并且系統(tǒng)會分析“回復(fù)”地址收到的郵件,允許用戶使用Maniphest發(fā)布任務(wù),以及使用Differential功能去修改當(dāng)前版本的修訂。如果你并不想phabricator占用整個域(或子域),可以配置一個通用前綴,這樣的話可以使用一個單獨(dú)的收件箱接收郵件。利用這個變量
metamta.single-reply-handler-prefix
來決定你所選擇的前綴。并且,phabricator將會為“回復(fù)”地址,預(yù)先處理它。接收器的地址是上面所設(shè)置的前綴和'+'字符以及后面的域名,不過對于后面來說,這些在本質(zhì)上都是被忽略的??梢詾槿蝿?wù)創(chuàng)建設(shè)置一個個郵件地址,例如
bugs@,當(dāng)它接收到封郵件時,都會去創(chuàng)建Maniphest任務(wù)。為了完成這個功能,需要設(shè)置
metamta.maniphest.public-create-email
。這里會對安全性有些影響,在后面我們會闡述。安全性郵件回復(fù)通道被認(rèn)證的。每個回復(fù)地址的收件人是唯一的、包含用戶信息哈希值和唯一的目標(biāo)ID,所以它只能用來更新目標(biāo)對象的信息,并且只能代表收件人進(jìn)行操作。但是,這里便會有問題了。如果收件地址泄露,任何人都可以通過回復(fù)方式來對服務(wù)器上的目標(biāo)文件進(jìn)行操作。在實(shí)現(xiàn)上,為了實(shí)用性和安全性的平衡,這兩邊都需要做出一些讓步。因?yàn)椋瑢τ诎l(fā)送者得認(rèn)證是比較困難的。例如,在開源項(xiàng)目中,需要和用戶進(jìn)行交互,用戶的郵件我們是無法進(jìn)行控制的。如果不小心將一些回復(fù)泄露出去,可以改變
phabricator.mail-key
的值使所有舊哈希值失效。同樣可以對
metamta.public-replies進(jìn)行設(shè)置,這個變量可以改變Phabricator提供得電子郵件。并不是通過個人回復(fù)郵箱給每個收件人發(fā)送唯一郵件,而是使用一個公共回復(fù)地址給所有人發(fā)送單獨(dú)的郵件。這種方式降低了安全性,因?yàn)槿魏稳硕伎梢砸砸粋€用戶的身份欺騙“發(fā)送方”。但為了增強(qiáng)實(shí)用性,可以使用郵件列表。在“回復(fù)”地址中,仍然包含目標(biāo)對象的哈希值。所以用戶沒收到包含目標(biāo)對象的哈希值的郵件時,不能盲目的與郵件的發(fā)送方進(jìn)行交互。當(dāng)你使能
metamta.maniphest.public-create-email變量時,會對“發(fā)送方”采用弱認(rèn)證機(jī)制。NOTE:目前,Phabricator并不會試圖去驗(yàn)證“發(fā)送方”地址,因?yàn)樵诩夹g(shù)方面比較復(fù)雜,在一般的情況下,這樣做是沒有必要的。如果你在一個比較特殊的環(huán)境下,可以通過一個合理的機(jī)制來讓“發(fā)送方”提供認(rèn)證來進(jìn)行認(rèn)證。(例如,DKIM(DomainKeysIdentifiedMain,域名密鑰識別驗(yàn)證標(biāo)準(zhǔn))簽名,就可以驗(yàn)證“發(fā)送方”是否是“自己人”。或者你去要求所有得用戶都在電子郵件里面添加這樣的簽名。)測試/調(diào)試接收郵件你可以使用
bin/mail
腳本來測試和檢查接收郵件的功能。以下操作將會幫助你判斷郵件是否能夠投遞到Phabricator服務(wù)器端:phabricator/$./bin/maillist-inbound#Listinboundmessages.phabricator/$./bin-mailshow-inbound#Showdetailsaboutamessage.也可以對接收郵件進(jìn)行測試,但是需要注意的是,這里只是模擬接收郵件的情況,并沒有通過網(wǎng)絡(luò)發(fā)送任何信息。它的主要目的是開發(fā)郵件處理程序:當(dāng)你得接收郵件配置錯誤或者未使用,這個程序都會工作。phabricator/$./bin/mailreceive-test#Receivetestmessage.運(yùn)行
bin/mailhelp<command>
會有更多有關(guān)這些命令的幫助信息。配置SendGrid為了使用SendGrid,你需要一個SendGrid賬號為接收到得郵件做“API解析”。如果這個賬號已經(jīng)有了,就需要如下得配置:根據(jù)SendGrid的指令來配置MX記錄。例如,添加
MX10.或類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- racemic-9-Nor-9β-hydroxy-Hexahydrocannabinol-生命科學(xué)試劑-MCE-7978
- Glyceryl-dilaurate-生命科學(xué)試劑-MCE-3370
- 二零二五年度美發(fā)店租賃合同包含美發(fā)店品牌形象維護(hù)條款
- 2025年度智能化舞臺搭建安全責(zé)任及技術(shù)服務(wù)合同
- 2025年度銀行貸款反擔(dān)保合同違約責(zé)任合同
- 2025年度父母出資購房子女房產(chǎn)增值收益分配協(xié)議書
- 施工日志填寫樣本屋面防水工程
- 職場技能提升與自主創(chuàng)業(yè)的實(shí)踐案例分析
- DB6108T105-2025山楂栽培技術(shù)規(guī)范
- 中外合作辦學(xué)合同協(xié)議
- 2025福建新華發(fā)行(集團(tuán))限責(zé)任公司校園招聘30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 油氣長輸管道檢查標(biāo)準(zhǔn)清單
- 山東鐵投集團(tuán)招聘筆試沖刺題2025
- 圖像敘事的跨學(xué)科視野-洞察分析
- 急性缺血性卒中再灌注治療指南2024解讀
- 2024年濰坊護(hù)理職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 西藏自治區(qū)建筑與市政工程竣工驗(yàn)收報(bào)告
- ge680ct用戶學(xué)習(xí)aw4.6軟件手冊autobone xpress指南中文
- 2023年高一年級必修二語文背誦篇目
- 競聘崗位演講評分表
- 《社會主義市場經(jīng)濟(jì)理論(第三版)》第一章社會主義市場經(jīng)濟(jì)基礎(chǔ)論
評論
0/150
提交評論