iT邦幫忙

0

在本地端直接測試出頁面呈現結果?

各位大大好
小弟有個問題是這樣的
目前小弟的在撰寫程式的作法是
1.寫一點code(可能改一些字或加一個註解)
2.透過FTP丟上主機
3.在網頁上跑跑看有沒有問題

可是現在多人開發+搭配git(非bare)
就直接取代FTP
步驟就會變成
1.寫完一整個function或格式(不然怕commit太多)
2.透過git push到主機
3.在網頁上跑跑看有沒有問題

因為如果維持舊的方法 這樣會造成很多commit
會讓git看起來很雜亂

目前小弟想了兩個方法
1.使用branch
這同樣會產生branch commit很多的問題
不過在master是不會這麼多
但主要問題是 只要我想要在網頁上跑跑看有沒有問題
就必須在主機端下指令 切到branch上
確認沒問題後 再切回來
這樣會變得相當繁瑣

2.在本地端查看網頁是否有問題
這個感覺可行
但我不會實作 也不太知道怎麼找相關方法
首先要有跟主機端一樣的環境
而且還要設定好資料庫設定
感覺起來好像很費工

我不確定我的流程是不是有問題
我也很擔心我講的不清楚
還望各位大大多提攜指點

看更多先前的討論...收起先前的討論...
w4560000 iT邦新手 4 級 ‧ 2020-07-06 12:30:05 檢舉
你這樣開發太累了==
都是在localhost開發測試的,開發完再推到主機上
w4560000 iT邦新手 4 級 ‧ 2020-07-06 12:35:10 檢舉
你要問一下同事有沒有跑CI/CD
git push上去只是把code加到版控而已
程式還沒有上到主機上
froce iT邦大師 1 級 ‧ 2020-07-06 13:03:10 檢舉
哪有人一定要在server上才能debug的...
st474ddr iT邦新手 5 級 ‧ 2020-07-06 13:04:49 檢舉
@w4560000
感謝大大回復
-在localhost開發測試
這是有什麼工具或軟體可以使用嗎?

我們並沒有跑CI/CD
git push我有寫個hook
加到版控也同時上到主機
st474ddr iT邦新手 5 級 ‧ 2020-07-06 13:07:04 檢舉
@froce
我也是這樣覺得的...
但我不知道有什麼方法可以在localhost開發測試...

還是是用MAMP,XAMPP之類的在本地架設環境
這樣我必須要下載很多server端的共用程式
而且大部分程式都有被鎖住
所以我想應該也不是這樣吧...
w4560000 iT邦新手 4 級 ‧ 2020-07-06 14:06:45 檢舉
這我就不清楚了 我不會寫php 等其他大大回覆你
本機裝了php的話(好像要7以上),Console環境設定好(可以直接執行php.exe不出錯),透過Console在網站根目錄(在你本機的開發目錄,不是伺服器上)執行"php -S localhost:8080",然後在瀏覽器打localhost:8080就能看到你程式運行。
st474ddr iT邦新手 5 級 ‧ 2020-07-06 15:20:44 檢舉
@fillanofeng
我用xampp 是可以成功架設的
但就是若之後有很多專案都在不同主機上
可能要灌一堆版本
Production會有需要深入研究的部份,這跟開發又是不同的學問,需要管理的就是要管理。

我有一段時間沒碰PHP了,之前大致上都是用fast-cgi接到php(iis/apache/nginx...都一樣),所以都沒在裝xampp了。你可以考慮一下。
1
海綿寶寶
iT邦大神 1 級 ‧ 2020-07-06 13:29:45
最佳解答

你的問題都在使用 git 後開始

我建議
不要用 git
用檔案總管+FTP即可

看更多先前的回應...收起先前的回應...
st474ddr iT邦新手 5 級 ‧ 2020-07-06 13:33:25 檢舉

大大的意思就是回到原本的方式操作
但是這樣比較治標不治本QQ~

其實我主要的問題也是如何在local端開發測試再丟到server上

用檔案總管+FTP

請問這種方式是正常的流程嗎?
我目前的都是這樣操作(沒有用git的話) 但總覺得卡卡的

你在意的點跟我不太一樣
比起 git vs 檔案總管+FTP
我反而比較在意的是「正式環境」與「測試環境」的區別
而聽你的描述貴公司沒有在區分這兩種環境
就我個人的看法
已經不需要使用 git 來自找麻煩了

st474ddr iT邦新手 5 級 ‧ 2020-07-06 13:55:31 檢舉

我反而比較在意的是「正式環境」與「測試環境」的區別
而聽你的描述貴公司沒有在區分這兩種環境

大大您說的對
我們公司確實是沒有區分這些
甚至連版控都沒有做

但這純粹是我個人想要在小專案學習
並分享給其他人了解
所以我並不只是單純想要把程式丟到Server上能跑就好
我想學習

我想參考 大多數的前輩在加入版本控管的狀況下
開發流程是如何?在localhost是如何開發的?
小弟願意聽各位前輩大大們的指教

版控的題目比較大
請別的高手回答

我只想建議你先從
「在本機建立與 server 相同的環境(註)」
以便能在本機開發並測試程式
開始

註:server 若安裝 Apache 你就裝 Apache
server 若安裝 MySql/PostgreSQL 你就照著裝
並將 server 上的資料「複製」一些到你的本機

st474ddr iT邦新手 5 級 ‧ 2020-07-06 14:23:28 檢舉

在本機建立與 server 相同的環境(註)

感謝大大說明
這樣就等於是先在本機建立一樣的環境
再copy用的到的檔案下來

可是大大我有幾個問題想請教
1.
DB應該也是照這樣的方式操作對吧?
把用的到的資料庫 資料表copy下來到自己本機環境中的DB
2.
這樣的流程是較為「正式」的流程嗎?
3.
若是之後越來越多專案是在不同server上
環境也都不一樣
那這樣我就要裝很多個不同的DB或伺服器嗎?

你首先要學的,就是怎樣把設定參數化,讓程式在不同環境下運作只要改參數就好。

另外,你要區分所謂的「環境」的差異是什麼,真的會裝很多伺服器嗎?DB伺服器可以裝多個DB,http伺服器的差異,只要你做好參數化,不應該影響到你程式的開發。

其實只要覺得「哎呀,這樣搞好麻煩」,就是你可以切入去學習或改進的地方。你要隨時避免麻煩纏身XD

st474ddr iT邦新手 5 級 ‧ 2020-07-06 15:40:39 檢舉

先感謝大大回覆

你要區分所謂的「環境」的差異是什麼,真的會裝很多伺服器嗎?

目前只有3個server是我常用的
他們的mysql版本 apache版本 php版本都是不一樣的
這會讓我在xampp中要塞很多的php版本
好像不能直接改參數去決定php版本
要調整蠻多東西的QQ

樓越來越歪了

他們的mysql版本 apache版本 php版本都是不一樣的

不管 server 有幾個版本
你現在的本機裡的 php 版本只有一個是吧
既然你可以用一個版本(php)上傳到多個版本的 server
表示你也可以只安裝一套 XAMPP 即可

調整?你確定這些差異會讓你程式用不一樣的方式開發?mysql版本、http伺服器版本差異不應該嚴重影響你程式邏輯跟運行,所以不會有針對客戶環境安裝不同版本來「開發」的這回事才對阿。

至於Production環境,或是需要建構環境來驗證Production的環境,這些本來就需要的,但是不要影響到你的開發環境,不然你就搞死你自己了XD

建議你研究一下fast cgi,這樣至少你只要安裝好不同版本的php後,調整一下設定就能跑,不用重新裝整套有的沒的。(IIS/Apache httpd/nginx都能通)而mysql,並沒需要安裝多個版本才對,除非你用到某個版本才有的特性。

froce iT邦大師 1 級 ‧ 2020-07-06 16:37:49 檢舉

有個火了一陣子的東西叫docker...(茶

st474ddr iT邦新手 5 級 ‧ 2020-07-06 17:08:41 檢舉

感謝各位大大回覆
我已經大概了解我想知道的了
也就是"先建置跟server一樣的環境和檔案 接著在本地端開發"

@海綿寶寶大

既然你可以用一個版本(php)上傳到多個版本的 server

其實不行,要考慮每個server的php版本
版本可能從php5 - php7都有
寫法也要不一樣
所以要依據server環境去調整本地的php版本

@fillanofeng大
我會來研究fast cgi的
感謝

@force 大
docker我有碰過一點
但還不是很了解 所以我還會再去研究
畢竟我這發問重點主要是想了解大家本地端開發的做法

froce iT邦大師 1 級 ‧ 2020-07-06 20:34:09 檢舉

你如果有需要搭配各種php版本、apache、nginx的話,我只能跟你說學docker穩賺不虧。

版本可能從php5 - php7都有

那是我誤會了
如果你能在同一部機器上面任意開發多個版本的 php
就表示你能做到多版本環境的設定
那我就建議你
1.在同一部電腦裝多套 MySQL
2.在同一部電腦裝多套 Apache
然後隨時依據專案不同做切換

最後再補充前面沒講的其他做法
1.多部電腦
2.同一部電腦,多個 Virtual Machine
3.同一部電腦,用 docker

st474ddr iT邦新手 5 級 ‧ 2020-07-07 09:10:23 檢舉

@froce大
感謝建議!

@海綿寶寶大
感謝大大這麼完整的回覆以及建議
我先來更了解docker的運用

froce iT邦大師 1 級 ‧ 2020-07-08 08:01:42 檢舉

我因為在公司需要維護一個老opensource專案(QuixExplorer)。
然後要搞個測試的php server。

在windows用docker只要一行指令就ok了...
你覺得該不該學?

0
浩瀚星空
iT邦超人 1 級 ‧ 2020-07-06 18:28:59

個人重來不用本地端開發。
雖然是這樣說。

其實也是因為我有兩台主機的關係才能這樣說。
一台是工作機裝windows系統。
一台是linux系統,也就是開發機。用了一些的手法,將目錄掛載到工作機上作業。
其實第二台可以利用一下hv或是docker也能達到這樣的效果。

我只是剛好有二台機器(其實是三台),可以這樣幹。

先說說為何我不用本機作業。其實倒也不是不想本機作業。
而是不想在windows系統下作業。
因為在windows下作業,很常發生莫名的問題。

但工作機跟一些應用沒用windows系統又很難搞定。

以前有買了切換器工作,但一整個覺得麻煩。
之後就自行研究這樣的開發模式處理。

其實開發機我也區分了開發環境跟測試環境。
東西要上線前。也是會先用git推到測試環境。

平常開發一定不會在master。也不會對他做合併。
只在測試環境下才做合併。

而正式機也只會拿master。

st474ddr iT邦新手 5 級 ‧ 2020-07-07 09:24:45 檢舉

感謝大大分享自身經驗
這也是我很想知道各位前輩大大都怎麼做的

一台是工作機裝windows系統

請問工作機是server嗎?

將目錄掛載到工作機上作業

這方法很特別
但我有點不太懂
是操作linux開發機 但能享有windows工作機的環境嗎?

工作機不是server。認真來說這台只有裝ide等開發軟體。
什麼web server之類的東西,都沒裝。

然後再linux中,裝了smb相關的東西。讓windows能夠連結。
並將smb限制只有內網讀取。

server機就是我的開發機。

0
ckp6250
iT邦研究生 4 級 ‧ 2020-07-06 20:25:16

其實不行,要考慮每個server的php版本
版本可能從php5 - php7都有
寫法也要不一樣
所以要依據server環境去調整本地的php版本

我功力差,所以都花錢消災,調整不同版本php很簡單。
https://ithelp.ithome.com.tw/upload/images/20200706/20119662w3x94cfA9Z.png
https://ithelp.ithome.com.tw/upload/images/20200706/20119662Igyi0HMosG.png

php要幾個片本都行
https://ithelp.ithome.com.tw/upload/images/20200706/20119662kiHBCdJyEO.png

結論,高手有高手的做法,像我這種低手,也有低手的門路,反正達得到目的就好。

st474ddr iT邦新手 5 級 ‧ 2020-07-07 09:13:28 檢舉

感謝大大!
又長知識了~
Plesk看起來是個很不錯的平台

ckp6250 iT邦研究生 4 級 ‧ 2020-07-07 09:35:39 檢舉

有時候,當php出了新版本時,為了測試相容性,我會成立一個測試站台,指定新版本php,等測試沒問題後,再把正式上線的站台改成新版,這是我身為低手的生存之道。

有一些常用的套件,它會指定適用的php版本,太新或太舊都不行,這時候,只有用這個方法才能通用。

我是server多版本處理。再用nginx的方式來指定版本。

我要發表回答

立即登入回答