發此文也是為了記錄和分享,雖然都很初級的東西,不過還是希望如果有不會的認看到有幫助。有人疑問我把這看似文章的東西發到了問答裡會不會被踩。其實我這文章是有問題的,因為我還沒搞定git webhook自動部署,因為實在不想開shell_exec權限,不知道大神還有什麼好方法實現自動部署。
原本的阿里雲端伺服器是Win2003(40G系統磁碟+70G資料盤),系統上運作的都是PHP系統,用Win做伺服器本來就很鬼扯了,無奈本人一直沒有碰過Linux,所以一直沒有改系統;
原來都是本地改好程式碼然後FTP到伺服器,太Low了,看了@安正超大神寫的Webhook自動部署,於是開始弄,發現Win2003下的各種權限真是鬧心的要死;藉著這個機會,乾脆鼓起勇氣換系統,擁抱CentOS7.2吧。
因為從沒碰過Linux,所以做了很多準備工作,做了很多功課;發現問題最大的就是70G數據盤的處理,因為從Win更換到CentOS後,肯定是掛載不上的;阿里的工程師給的解決方案是用Ntfs-3G讀取,雖然我不懂這東西好壞,但是我還是想格式化用Linux本來就認的方式來掛載這塊數據盤。
這樣就涉及一個數據備份本地並且回傳的問題,我數據盤里大概有6個G的附件數據,都是圖片;打包備份下載到本地需要5小時,上傳需要5小時,這太久; SF的朋友給了建議臨時買OSS轉過去在轉回來,臨時買塊雲盤轉過去再轉回來,感謝這兩位朋友;不過我最後還是打包下載到了本地,發此文是正在上傳zip到服務器。
停用實例,更換系統盤,選擇CentOS7.2 x64 > 順利成功
SSH到伺服器:fdisk -l 發現磁碟已經分割
我用的一鍵環境是寶塔 bt.cn ,要把數據盤掛載到/www目錄,so
<code>mkdir -p /www</code>
格式化資料磁碟
<code>mkfs.ext4 /dev/xvdb1</code>
掛載資料磁碟到/www目錄
<code>echo "/dev/xvdb1 /www ext4 defaults 0 0" >> /etc/fstab</code>
重載所有分區
<code>mount -a</code>
查看是否成功(成功)
<code>df -h</code>
看裝沒裝git,阿里的CentOS自備git 1.8.x哦
<code>git --version</code>
克隆項目到www目錄
<code>git clone http://coding.com.....</code>
復原資料庫
用寶塔面板新建站點,指定專案目錄;站點存取成功。
產生部署公式,並測試git pull;無任何問題。
至此項目已恢復運行,只差附件還在上傳,以前都再Win下開發都沒考慮大小寫問題,簡單測試項目目前沒發現大小寫問題。
因為shell_exec指令實在太危險了,如果讓hook.php來觸發shell_exec('git pull'),一旦系統有漏洞被非法分子利用執行shell_exec就慘了,現在暫時還是手動ssh到伺服器手動pull,或者用寶塔後台的定時任務。
上個圖慶祝下,順便感謝 寶塔Linux助理 bt.cn 、寶塔工程師阿良 、 @gleilei 、@laminux29
發此文也是為了記錄和分享,雖然都很初級的東西,不過還是希望如果有不會的認看到有幫助。有人疑問我把這看似文章的東西發到了問答裡會不會被踩。其實我這文章是有問題的,因為我還沒搞定git webhook自動部署,因為實在不想開shell_exec權限,不知道大神還有什麼好方法實現自動部署。
原本的阿里雲端伺服器是Win2003(40G系統磁碟+70G資料盤),系統上運作的都是PHP系統,用Win做伺服器本來就很鬼扯了,無奈本人一直沒有碰過Linux,所以一直沒有改系統;
原來都是本地改好程式碼然後FTP到伺服器,太Low了,看了@安正超大神寫的Webhook自動部署,於是開始弄,發現Win2003下的各種權限真是鬧心的要死;藉著這個機會,乾脆鼓起勇氣換系統,擁抱CentOS7.2吧。
因為從沒碰過Linux,所以做了很多準備工作,做了很多功課;發現問題最大的就是70G數據盤的處理,因為從Win更換到CentOS後,肯定是掛載不上的;阿里的工程師給的解決方案是用Ntfs-3G讀取,雖然我不懂這東西好壞,但是我還是想格式化用Linux本來就認的方式來掛載這塊數據盤。
這樣就涉及一個數據備份本地並且回傳的問題,我數據盤里大概有6個G的附件數據,都是圖片;打包備份下載到本地需要5小時,上傳需要5小時,這太久; SF的朋友給了建議臨時買OSS轉過去在轉回來,臨時買塊雲盤轉過去再轉回來,感謝這兩位朋友;不過我最後還是打包下載到了本地,發此文是正在上傳zip到服務器。
停用實例,更換系統盤,選擇CentOS7.2 x64 > 順利成功
SSH到伺服器:fdisk -l 發現磁碟已經分割
我用的一鍵環境是寶塔 bt.cn ,要把數據盤掛載到/www目錄,so
<code>mkdir -p /www</code>
格式化資料磁碟
<code>mkfs.ext4 /dev/xvdb1</code>
掛載資料磁碟到/www目錄
<code>echo "/dev/xvdb1 /www ext4 defaults 0 0" >> /etc/fstab</code>
重載所有分區
<code>mount -a</code>
查看是否成功(成功)
<code>df -h</code>
看裝沒裝git,阿里的CentOS自備git 1.8.x哦
<code>git --version</code>
克隆項目到www目錄
<code>git clone http://coding.com.....</code>
復原資料庫
用寶塔面板新建站點,指定專案目錄;站點存取成功。
產生部署公式,並測試git pull;無任何問題。
至此項目已恢復運行,只差附件還在上傳,以前都再Win下開發都沒考慮大小寫問題,簡單測試項目目前沒發現大小寫問題。
因為shell_exec指令實在太危險了,如果讓hook.php來觸發shell_exec('git pull'),一旦系統有漏洞被非法分子利用執行shell_exec就慘了,現在暫時還是手動ssh到伺服器手動pull,或者用寶塔後台的定時任務。
上個圖慶祝下,順便感謝 寶塔Linux助理 bt.cn 、寶塔工程師阿良 、 @gleilei 、@laminux29
看著你們為了節約錢幾十個G都能折騰這麼半天,而我一整套新刀片集群和存儲掛載自建BGP機房什麼都沒乾純粹浪費電,感覺有些心酸。
可以玩玩Docker,用Docker部署個jenkins,做持續集成,git上去,伺服器自動測試和部署發布。也可以用Docker部署個gitlab,可以做自己的git伺服器。
很想知道你把文章發到問題裡面,會不會被踩…