iT邦幫忙

0

一鍵更新的網頁技術?PHP

php
  • 分享至 

  • xImage

這幾天研究 wordpress
發現他有「更新」的這個功能
剛好我有一個情境想問問
假設我有個專案
裡面有幾個檔案、資料夾都是系統檔
假設有一百個人擁有這個專案
但這些系統檔都是可以通用的
那我如何做到在網頁上按下「更新」按鈕
能夠把我這些系統檔案覆蓋到他們自己的專案?
有大大有實作過可以分享嗎
或是可能可行的方式?

看更多先前的討論...收起先前的討論...
ccutmis iT邦高手 2 級 ‧ 2019-10-10 18:08:08 檢舉
CDN?
火爆浪子 iT邦研究生 1 級 ‧ 2019-10-10 18:41:05 檢舉
主要是 php 檔案
ccutmis iT邦高手 2 級 ‧ 2019-10-10 18:46:13 檢舉
這我就不知了。記得 wordpress主控台若有版本更新也不會直接把你網站的php換掉 它是提醒你有更新版本讓你自己從主控台去按更新 你說的是這個嗎
火爆浪子 iT邦研究生 1 級 ‧ 2019-10-10 19:00:34 檢舉
恩恩
不明
【**此則訊息已被站方移除**】
火爆浪子 iT邦研究生 1 級 ‧ 2019-10-10 20:37:55 檢舉
只是要怎麼把我這一包程式碼直接覆蓋他們的專案呢?
ccutmis iT邦高手 2 級 ‧ 2019-10-10 21:08:11 檢舉
或許該去看wordpress主控台更新相關頁面的源碼,
我的初淺想法是各個專案主控台會用api取得版本號,若專案版本號小於最新版本號代表有發佈更新檔了。
各專案主控台按下更新後就是去下載你放在特定位置的安裝包(可能是tar壓縮檔之類的),然後把它們解壓縮放到該放的位置,設好權限,然後更新本地端的版本號。(上面的動作都要在php程式完成,對用戶來說就是按下"更新"按鈕)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2019-10-11 13:55:49
最佳解答

他要的是由他來更新其它人專案的東西。這在資安及安全性上,不可能這樣幹的。
不要常常去想能外方能主動修改別人的東西。

記得上次也有一篇同樣類似的更新相關問題,我早已經有告訴過你了。
你只能從你的程式下手。且該程式是有在運行的情況下才能做這件事。

也就是說,基於安全性來說。沒有人會願意外部人員可以隨意去修改自已的東西。
只能往本地端拉取更新的方式去想。

也就是說,你想依你1人去更新100人的東西。不要想了啦!!
但100人來拉你1的更新是可以的。因為對你來說,只是開放讀的權限就可以了。在安全性上也比較不容易發生問題。

但如果要1對100。那100人都要開放「寫」的權限給你。這在常理上不符合規則及安全性。
不要一直想往那方面寫,你所想的行為就只是一種駭客的行為了。
上次就已經說過你一次了。還在往這方面去想。

看更多先前的回應...收起先前的回應...
火爆浪子 iT邦研究生 1 級 ‧ 2019-10-12 13:48:47 檢舉

請問100人來拉你1的更新能怎麼做?

叫他們拉啊!!
雖然是這樣說沒錯,但你還得要事先做一個更新的程式才行。

如果在開發初期根本沒做這東西的話。
那你就得辛苦點。再你做好更新的機制後,請他們重新下載。

所以一開始規劃的機制很重要。如果說這樣是辦不到的話。
那就更不要去想由你去辦到的事了。

player iT邦大師 1 級 ‧ 2019-10-12 16:40:39 檢舉

網站用的套件更新的原理大概這樣
1.檢查本地端的版本
2.如果需要更新的話,下載壓縮檔
3.解壓縮暫存資料夾
4.如果都成功的話,再把原本套件的資料夾刪掉,把暫存資料夾改名搬過去
(需考慮檔案使用中的問題, 通常會需要把網站先停掉)

player iT邦大師 1 級 ‧ 2019-10-12 16:45:51 檢舉

至於1對多的同步更新
我只有在需要做負載平衡的FTP Server上見過
方法是在Linux裡去跑ftp上傳資料夾的sh檔

火爆浪子 iT邦研究生 1 級 ‧ 2019-10-13 11:51:36 檢舉

了解

黃彥儒 iT邦高手 1 級 ‧ 2019-10-17 08:06:38 檢舉

看到這篇,想想微軟…

0
黃彥儒
iT邦高手 1 級 ‧ 2019-10-10 22:37:15

感覺可以用Git之類的東西做,更新部分只要有一個PHP程式有權限覆蓋其他檔案就可以了吧(我猜

好像是 git hook + git push
只是樓主可能要搞清楚自動檢查更新及手動發佈更新哪個較適合

我要發表回答

立即登入回答