2009-07-21 65 views

回答

9

晴,但你有幾件事情需要注意:

  • 在* nix系統路徑名稱是區分大小寫的,而不是在Windows下。
  • 在* nix系統下,路徑分隔符是/。在Windows下,它是\,但PHP自動翻譯/。要麼使用DIRECTORY_SEPARATOR常數,要麼始終使用/
  • 在* nix系統下,路徑遍歷模式不同。沒有驅動器盤符這樣的東西。有相反的掛載點。
  • 在* nix系統下,默認情況下,文件權限比Windows上的嚴格。
  • 某些功能在Windows下不可用或行爲不同。這些主要用於低級功能(內存狀態,系統狀態)。參考PHP文檔。
  • 如果您使用exec()或任何其他類似的功能,命令將不會相同。請參閱您的系統文檔。

關於Apache:

你可以在一臺服務器某些時候投中了一些斷枝使用PHP作爲一個模塊並通過fcgi其他人使用它。兩個配置相同的Apache將以相同的方式運行。

+0

還有一些在win32下可用但不是* nix的函數,例如com/.net模塊。 – VolkerK 2009-07-21 08:24:53

+0

此外,$ _SERVER變量的存在可能會有所不同,具體取決於PHP是否運行在Apache上,而Apache往往是nix用作HTTP服務器的地方,而Internet Information Services(IIS)則是Windows傾向於作爲HTTP服務器的地方。 – joebert 2009-07-23 11:31:01

0

鑑於PHP只是一種語言,應該不會有問題。無論你走到哪裏,都應該是一樣的。

0

是啊......設置它可能有點不同,但它的用法與腳本語言相同。

2

只要你沒有exec系統命令或使用無效的文件路徑,大多數事情應該沒有問題。我一直在使用PHP一段時間,在一臺Windows機器上開發,然後把它移到一個Linux機器上,我想不出任何我遇到的麻煩。

1

正確的答案是:「這取決於」。

大部分PHP在任何操作系統上的功能都是一樣的。儘管有一些警告,但通常有些功能只是在Windows上不起作用。 (例如,getrusage())。有時候,爲PHP尋找windows庫也很困難,因爲pecl4win(一個包含所有PECL庫的窗口編譯的站點)的死亡。這使得像APC(替代PHP緩存)這樣的事情變得相當麻煩。

這就是說,PHP手冊有很好的文檔記錄什麼不適用於Windows。

+0

我還沒有使用過很多的PECL庫,但是我還沒有找到Windows所需的庫。雖然,就像我所說的,我對PECL的經驗是有限的。 – 2009-07-21 01:08:13

+0

是的,它被擊中或錯過。自從http://pecl4win.php.net/發生故障以來。它一直是meh。我的同事使用Win,他必須圍繞谷歌尋找許多圖書館的DLL,並希望他們爲他的PHP版本編譯。 – hobodave 2009-07-21 01:10:00

+0

它看起來像pecl4win沒有停下來,但是。但我不知道他們已經「準備一個新的構建系統」多久了。 – 2009-07-21 01:29:12

3

我要紀念這個社區維基,因爲我只是複製和粘貼我的回答從另一個very similar thread

差不多,但並不完全。有幾件事你必須注意。

1)文件名稱:Windows是不區分大小寫的操作系統。如果你創建一個文件Foo。PHP,你可以使用include('Foo.php')include('foo.php')來包含它。當你將你的項目移動到Linux/Unix時,如果你沒有正確的案例,這將會中斷。

2)有一些語言特定的平臺差異,通常涉及到依賴於集成的OS功能的東西。這些很少出現,但你偶爾會碰到它們。例如,直到版本5.3.0之前,checkdnsrr()函數在Windows PHP中不存在。

3)安裝。與Windows相比,您爲Linux/Unix獲得的PHP包可以非常廣泛地包含在默認安裝中。您需要確保在相反平臺的開發框中測試您的應用程序,以確保您已經編譯/添加了所有必需的庫,否則您將從其他正常的應用程序中獲得一些很好的致命錯誤。

0

有一定的差異,如其他用戶注意(我就不重複了這些,已經有偉大的答案;最討厭的一點是區分insensivity在windows下的文件名,恕我直言),所以如果你是使用Linux服務器在生產環境中部署網站,偶爾在Linux上測試它可能會很有用。

如果您不想在您的計算機上安裝Linux,並且擁有足夠強大的計算機(至少2個內核和2 GB內存,我會說),則可以使用虛擬機,並使用虛擬機這些軟件(均爲免費):

這也將幫助您瞭解Linux的一些基礎知識 - 這是不是一件壞事,要知道,如果你正計劃從事專業的PHP開發工作,因爲Linux遠非如此當涉及到PHP web服務器時,使用的是比Windows更多的礦石。

相關問題