phing搭建自己的部署系統

2021-09-20 06:27:03 字數 2503 閱讀 4885

部署,在我看來是讓**在真實的伺服器上跑起來,能夠對外提供期望的服務和功能。

例如簡單的web專案:單台伺服器, 資料庫和web伺服器都在一台機器上。

只需要將**copy到伺服器上,保證**裡的資料庫配置和伺服器上的web配置正確。

再開啟瀏覽器,訪問該應用, 能夠正常訪問和使用,部署就結束了。

部署到這裡真的結束了嗎?

**公升級,重新copy**,忘記修改配置檔案,導致服務無法訪問怎麼辦?

訪問量增加,專案需要部署到n臺機器,難道還手工copy?

開發流程完善,需要有本地環境,測試環境,qa測試環境,線上環境等多個不同環境配置,

每個都要人工修改配置不累死?

**出了問題,怎麼回滾?

多機器檔案同步

多環境配置

**回滾

支援pear,composer,phar安裝。可以根據開發機已經部署哪種包管理程式來選擇。參考官網安裝說明

如果是通過composer, 安裝到當前專案下,那麼執行./vendor/phing/phing/bin/phing -h,便會出現幫助列表。

輸出 helloworld:

phing通過 xml 檔案配置執行任務, 建立deploy.xml檔案,內容如下:

<?xml version="1.0" encoding="utf-8"?>

定義了乙個project,預設執行dist任務,dist任務通過target標籤定義,

echo標籤只是簡單的輸出msg屬性中的值

執行./vendor/phing/phing/bin/phing -f ./deploy.xml, 便可看到如下輸出:

buildfile: /project/phing/./deploy.xml

helloworld > dist:

[echo] hello world!

build finished

total time: 0.0666 seconds

將helloworld放入配置檔案

將常見變數放入單獨的配置檔案,便於維護。建立deploy.properties檔案,定義乙個變數:string,檔案內容只有一行:string=echo helloworld by config file

修改deploy.xml,新增標籤,便可讀取外部配置檔案作為變數:

<?xml version="1.0" encoding="utf-8"?>

那麼,針對不同環境讀取不同配置檔案,只需要將不同環境使用的配置檔名作為變數輸入即可:

注:input標籤,會在執行 phing 命令後,等待繼續輸入, 輸入內容作為變數env

phing支援ftpscp上傳檔案

使用scp, 需要php安裝ssh2.so擴充套件

例如: scp 乙個目錄

加速scp:本地壓縮
先使用 tar壓縮檔案,再執行scp, 最後通過ssh在遠端伺服器上解壓檔案。

注: 一次ssh只能執行一次命令。 批量執行需要通過其他方式,例如 bash script

不同環境使用不同的配置檔案,可以使用讀取環境變數(前文已經說明)或者-d引數指定變數,./vendor/phing/phing/bin/phing -d env=dev -f phing.xml

每次部署**時,建立個新目錄,保證目錄名不重複,可以是時間戳或版本號。

web根目錄通過軟鏈結指向最新目錄, 例如:/var/www -> /deploy_dir/1423432343

其中$deploy_dir$back_link分別是/var/www/var/back,可以寫入單獨配置檔案

簡單易用,但是不能支援連續回滾

phing 官方示例文件

linux中部署自己的系統核心

pc機bios韌體是固化在pc機主板上的rom晶元中,斷電也能儲存,pc機上電後的第一條指令就是在bios韌體中,它負責檢測和初始化cpu 記憶體和主機板平台,然後載入引導裝置 大概率是硬碟 中的第乙個扇區資料,到0x7c00位址開始的記憶體空間,再跳轉到0x7c00處執行指令。這裡是grub引導程...

自建cdn搭建 如何自己架設部署CDN?

關於企業是否需要部署自己的cdn,這個需要結合最優的價效比 自身的需求和業務規模以及自身的能力等綜合因素來衡量,市場上也有眾多的優異的cdn可供選擇!cdn的網路架構 簡單說下 cdn網路架構主要由兩大部分,分為中心和邊緣兩部分,中心指cdn網管中心和dns重定向解析中心,負責全域性負載均衡,裝置系...

部署自己的聊天系統 DuckChat(鴨信)

演示位址 含web體驗 android客戶端 ios客戶端 github位址 官方 duckchat官方 以下是官網 功能完善 duckchat聊天系統具備完整的功能,如單聊 群聊 通訊錄 免打擾 後台管理等。對於伺服器端程式,還提供豐富多樣的api介面,方便你在伺服器端呼叫各類功能,如代發訊息等。...