簡體   English   中英

跨平台 PHP 警告?

[英]Cross platform PHP caveats?

我得到了一個現有的 PHP 應用程序,該應用程序最初部署在 LAMP 主機上。
因為我們團隊的大部分人都是.Net開發人員,所以我們的老板希望它部署在windows環境中。

期望這能正常工作是不是很瘋狂?

以下是 LAMP 主機的一些附加信息:

  • Linux 2.4.32
  • PHP 5.2.6
  • 沒有非默認模塊

哎呀,即使只是從一台托管服務器遷移到另一台服務器,通常也需要進行一些調整和調整。 我不認為必須在 Windows 環境中進行操作會有很大不同。 就在上周,我參與了大型 PHP 應用程序的遷移,我們(3 人)能夠在大約半天的時間內完成工作。

這取決於應用程序中正在執行的操作。 需要研究的兩個方面是應用程序在文件系統中查找文件的位置(使用 Linux 特定路徑?)並查找 windows 構建的任何 php 模塊(來自特定模塊)。

以我的經驗,它可以完成並且工作正常。 我要記住的最重要的事情是:

  1. 在 Windows 上使用 Apache,不要使用 IIS(即使可能)
  2. 確保對目錄使用 unix 樣式的斜杠。 這些都適用於兩個平台。
  3. 注意區分大小寫。 由於 Windows 不區分大小寫(盡管它保留大小寫),因此如果您包含一個文件並用錯誤的大小寫拼寫它,它將在 Windows 上工作並在 Linux 上失敗。

要非常小心,在任何時候都不會調用exec 編寫了許多極其懶惰的代碼來使用它,並且由於顯而易見的原因它可能無法很好地移植。

這些年來我經歷的一些事情:

  • PHP 的數據庫驅動程序太舊/新
  • 路徑問題
  • 從 32 位系統更改為 64 位系統或反之亦然會影響 PHP 內部 integer 處理(位計算突然返回奇怪的結果)
  • 語言環境和本地化問題
  • 缺少功能(手冊通常會指出它在 Windows 中不起作用或行為不同)
  • 文件名大小寫

並始終檢查並仔細檢查 Apache 模塊和 PHP 模塊至少與舊系統中的版本相同。

如果代碼似乎不喜歡在 Windows 中運行,那么在 Windows 之上運行虛擬化的 GNU/Linux 也不錯,例如 VMWare。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM