【Phabricator】教科书一般的Phabricator安装教程(配合官方文档并带有踩坑解决方案)...
隨著一聲驚雷和滂沱的大雨,我的Phabricator頁(yè)面終于在我的學(xué)生機(jī)上跑了起來(lái)。
想起在這五個(gè)小時(shí)內(nèi)踩過(guò)的坑甚如大學(xué)隔壁炮王干過(guò)的妹子,心里的成就感不禁油然而生。
接下來(lái),我將和大家分享一下本人在CentOS7.4版本,利用lnmp搭建Phabricator的實(shí)戰(zhàn)過(guò)程和踩過(guò)的坑。這一方面是為我下一步在docker上部署并制作鏡像做好鋪墊,更重要的是,我能夠有幸和游走在這令人頭禿的修羅場(chǎng)里的勇士們,分享我自認(rèn)為史詩(shī)一般難得的寶貴經(jīng)驗(yàn)。好,那么接下來(lái)我們進(jìn)入正題。
一、什么是phabricator?我為什么要搭建一個(gè)phabricator應(yīng)用?
官網(wǎng):https://www.phacility.com/?
項(xiàng)目地址:https://github.com/phacility/phabricator?
Phabricator是一套基于Web的軟件開(kāi)發(fā)協(xié)作工具,一個(gè)Web應(yīng)用用于幫助軟件公司構(gòu)建更好的軟件。?
原是facebook員工開(kāi)發(fā)的可視化代碼評(píng)審工具,現(xiàn)在跑路了并投奔了Phacility,好在他依然在持續(xù)維護(hù)。
簡(jiǎn)單說(shuō)來(lái),這個(gè)玩意兒主要包含以下幾個(gè)功能:
然而目前這些都與我無(wú)關(guān),我只是為了好玩。
二、安裝教程參考
我相信一定有天選之子可以不費(fèi)吹灰之力過(guò)關(guān)斬將,你只需要一具阿姆斯特朗回旋噴氣加速炮(不定期更新大家認(rèn)為的優(yōu)質(zhì)教程,歡迎留言)。
來(lái)自CSDN的教程1:https://blog.csdn.net/u010285974/article/details/81222976
來(lái)自思否的教程1:https://segmentfault.com/a/1190000011183530
當(dāng)然,我的同事黃同學(xué)一直告訴我,需要看官方文檔。所以,這次我就索性看官方文檔啦!
官方文檔:https://secure.phabricator.com/book/phabricator/article/installation_guide/
三、適用本教程的基礎(chǔ)條件檢查
本人在本教程中運(yùn)用的資源:
(1)一臺(tái)放開(kāi)了所有端口的公網(wǎng)云服務(wù)器(騰訊云學(xué)生機(jī)),安裝有centos7.4版本系統(tǒng),網(wǎng)絡(luò)連接通暢
(2)一個(gè)正常注冊(cè)并且能夠被正常解析的域名
(3)一個(gè)數(shù)據(jù)庫(kù)實(shí)例(騰訊云學(xué)生特惠實(shí)例6元/月,mysql),通過(guò)域名/IP+端口,再加上正確的賬戶密碼,可以保證被第三方程序正常訪問(wèn)
(4)一臺(tái)高性能的電腦,其中高性能用于裝逼,實(shí)際通過(guò)navicat mysql和xshell(學(xué)生版)對(duì)服務(wù)器和數(shù)據(jù)庫(kù)進(jìn)行管理
請(qǐng)務(wù)必仔細(xì)檢查您的上述條件,這些條件不是必須,只是說(shuō)明本人的環(huán)境部署。如果您嚴(yán)格按照我后續(xù)教程操作依然出現(xiàn)問(wèn)題,煩請(qǐng)檢查一下是否滿足上述條件。
注意!該配置,特別是放開(kāi)所有端口這一配置,嚴(yán)禁用于生產(chǎn)環(huán)境!!!
四、依托官方文檔的安裝過(guò)程(如遇到問(wèn)題,可參考第五大點(diǎn)-本人遇到的問(wèn)題)
以下過(guò)程總結(jié)自官方文檔并結(jié)合個(gè)人實(shí)踐簡(jiǎn)化而來(lái)。本教程強(qiáng)化如何順利部署Phabricator,而不關(guān)心數(shù)據(jù)庫(kù)、安全考量。
1.解壓項(xiàng)目文件、安裝基本包和php擴(kuò)展
很多文件都可能需要現(xiàn)場(chǎng)編譯,得先檢查一下C編譯器,安裝gcc。
由于數(shù)據(jù)庫(kù)分離,無(wú)需考慮數(shù)據(jù)庫(kù)。因而基本服務(wù)器服務(wù)需要安裝nginx、php-fpm。其中nginx負(fù)責(zé)http請(qǐng)求,php-fpm負(fù)責(zé)php執(zhí)行請(qǐng)求。
由于需要從github下載項(xiàng)目文件,所以需要安裝git。
然后再安裝php的常用擴(kuò)展 pcre-devel php-pear php-devel php-mbstring php-mysql。
全部安裝完成且無(wú)報(bào)錯(cuò)后,運(yùn)行sudo pecl install apc 全部默認(rèn)設(shè)置,直接回車。
以上命令,熟悉yum的同學(xué)應(yīng)該明白,可以合并成一條指令。
檢查一下,運(yùn)行php -i | grep apc ,看是否有帶有apc的包羅列出來(lái),如果沒(méi)有,添加extension=apc.so在php.ini文件內(nèi)的[php]標(biāo)簽下任意位置。之后再檢查一下。
以上算是配置一個(gè)nginx-php配合環(huán)境的基本步驟,別忘了我們是要能運(yùn)行Phabricator的~
在/usr/share/nginx 目錄下,運(yùn)行這三條命令。
git clone https://github.com/phacility/libphutil.git git clone https://github.com/phacility/arcanist.git git clone https://github.com/phacility/phabricator.git到現(xiàn)在為止,基礎(chǔ)環(huán)境就緒。
2.配置nginx.conf
配置nginx.conf以達(dá)到和php的相互銜接,配置監(jiān)聽(tīng)端口,識(shí)別主機(jī)名【重要】,讀取網(wǎng)站根目錄。
運(yùn)行vim /etc/nginx/nginx.conf,在http大括號(hào)內(nèi),原測(cè)試server大括號(hào)下,再增加一個(gè)server,內(nèi)容如下:
server {server_name 你的域名;root /usr/share/nginx/phabricator/webroot;location / {index index.php;rewrite ^/(.*)$ /index.php?__path__=/$1 last;}location /index.php {fastcgi_pass localhost:9000;fastcgi_index index.php;#required if PHP was built with --enable-force-cgi-redirectfastcgi_param REDIRECT_STATUS 200;#variables to make the $_SERVER populate in PHPfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param QUERY_STRING $query_string;fastcgi_param REQUEST_METHOD $request_method;fastcgi_param CONTENT_TYPE $content_type;fastcgi_param CONTENT_LENGTH $content_length;fastcgi_param SCRIPT_NAME $fastcgi_script_name;fastcgi_param GATEWAY_INTERFACE CGI/1.1;fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;fastcgi_param REMOTE_ADDR $remote_addr;} }有熟悉nginx.conf的同學(xué)可能會(huì)注意到我把root路徑寫(xiě)死了,但也一定知道為什么,我前面的教程是指定大家在/usr/share/nginx/這個(gè)目錄下clone的git倉(cāng)庫(kù)。
運(yùn)行nginx
運(yùn)行php-fpm & 來(lái)運(yùn)行php依賴并保證在后臺(tái)運(yùn)行。
查看systemctl status nginx,看nginx服務(wù)是否正常運(yùn)行。正常應(yīng)該顯示running
查看ps -ef | grep php,應(yīng)該能看到php-fpm的主進(jìn)程和工作進(jìn)程。
3.配置Phabricator數(shù)據(jù)庫(kù)連接信息并初始化數(shù)據(jù)庫(kù)
Phabricator需要初始化數(shù)據(jù)庫(kù),我們還需要告訴Phabricator數(shù)據(jù)庫(kù)連接信息。按如下指令進(jìn)行配置:
首先,進(jìn)入Phabricator目錄。cd /usr/share/nginx/phabricator
然后,依次運(yùn)行以下幾條命令:
./bin/config set mysql.host 你的數(shù)據(jù)庫(kù)服務(wù)器地址 ./bin/config set mysql.port 你的數(shù)據(jù)庫(kù)服務(wù)器端口 ./bin/config set mysql.user 你要登錄到服務(wù)器的用戶名 ./bin/config set mysql.pass 你要登錄到服務(wù)器的用戶的密碼可能中間會(huì)有連接拒絕的信息,但可以嘗試等待,直到提示數(shù)據(jù)已成功更改。(如果網(wǎng)絡(luò)連接正常,等待2分鐘還無(wú)反應(yīng),直接ctrl+c中止,并排查問(wèn)題)
之后更新Phabricator連接到的數(shù)據(jù)庫(kù)(本次執(zhí)行,實(shí)際效果即為初始化)
Phabricator需要得到更新。還是確保呆在/usr/share/nginx/phabricator目錄內(nèi),運(yùn)行:
./bin/storage upgrade確定(即輸入y并回車),繼續(xù)。不報(bào)錯(cuò),說(shuō)明更新完畢。使用navicat登入你的數(shù)據(jù)庫(kù),應(yīng)該能夠看到大批量的數(shù)據(jù)庫(kù)被生成。
4.進(jìn)入Phabricator,進(jìn)行后續(xù)的管理操作。
電腦打開(kāi)瀏覽器,瀏覽器內(nèi)輸入你的域名。回車。
聰明的你可能明白了,這樣一套整下來(lái),如此簡(jiǎn)單和清晰的步驟,一定能夠方便的寫(xiě)成腳本的!
五、本人在其中遇到的問(wèn)題
本人實(shí)際的步驟怎么可能這么一帆風(fēng)順?
本人遇到了如下問(wèn)題,在這里做一下個(gè)人總結(jié)。
1.修改nginx.conf文件后并啟動(dòng)nginx,訪問(wèn)網(wǎng)站提示文件找不到
可能和目錄權(quán)限有關(guān)系,使用nginx默認(rèn)的展示目錄/usr/share/nginx即可。
2.報(bào)錯(cuò),提示找不到C編譯器
安裝gcc
3.遭遇時(shí)區(qū)設(shè)置警告
不用管
4.提示數(shù)據(jù)庫(kù)未初始化
按照提示初始化數(shù)據(jù)庫(kù)
5.提示需要安裝相關(guān)擴(kuò)展
按照提示安裝擴(kuò)展,如果還有問(wèn)題,百度或者是谷歌去(官方自己這么說(shuō)的)
6.連接mysql錯(cuò)誤
檢查設(shè)置的mysql服務(wù)器地址、端口、用戶、密碼
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/sbhyc/p/11215358.html
總結(jié)
以上是生活随笔為你收集整理的【Phabricator】教科书一般的Phabricator安装教程(配合官方文档并带有踩坑解决方案)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 登月计划 [扩展回旋阿姆斯特朗算法]
- 下一篇: 游戏手柄(JoyStick)的延时处理