經常看到有朋友發帖問某某環境下的某某問題。今天就寫一篇文章來說一說這個環境相關的問題
開發環境
PHP 執行的話一般要搭配 web 伺服器(apache、nginx等),但從 5.4 起,內部有了內建伺服器(絕不能用於生產環境),但可以配置開發環境
window 下開發環境配置
官網下載你需要的版本(選 windowamd64vc2015nonthread)版本,下載並解壓到你想要存放的目錄,假定為
c:/soft/php74
,該目錄即解壓後根目錄。配置環境變數
window10
1.依次進入控制皮膚-系統和安全-系統-高階-環境變數
2.在系統變數中找到 Path 點編輯,然後新建,將c:\soft\php74
目錄新增進去
3.檢視是否安裝成功,開啟 cmd,輸入php -v
,如果顯示了版本號則成功window7
與 window10 類似,但介面沒那麼友好,找到環境變數後,在當前環境變數後面手動增加
;c:\soft\php74
使用
1.php 配置檔案,在c:\soft\php7.4
下將php.ini-development
檔案複製為php.ini
2.專案根目錄(有index.php
)的那個目錄啟動伺服器php -S localhost:8080
備註
PHP 是與平臺高度耦合的,所以你需要安裝你下載的版本對應的 C 庫,如下載 vc2015,你需要去微軟官網下載 x86vc2015和amd64vc2015安裝擴充套件
- 擴充套件首選 composer 包,composer 包是使用 PHP 語言實現的,是在 PHP 上抽象的,不依賴於平臺
- 而 PHP 擴充套件則與系統耦合,依賴於系統和對應庫的能力。所以有些擴充套件是在特定作業系統下是找不到的
安裝擴充套件流程:
- 到 pecl 官網搜尋擴充套件,點選去看,找到對應的版本,點選
window圖示DLL
(動態連結庫)進去找到當前 PHP 版本的擴充套件下載(有 thread, non thread,x86,x64 區別,注意匹配 PHP 版本) - 解壓後找到擴充套件的
.dll
檔案,複製到剛才解壓 PHP 資料夾下擴充套件資料夾,c:/soft/php74/ext
目錄下 - 修改
php.ini
檔案,新增extension={extension_name}
- 驗證
php -m
檢視輸出結果 - 配置擴充套件
php 配置是一個 ini 檔案,你可以這樣配置擴充套件選項[extension] key = value
- 備註
有的擴充套件(比如 amqp)還有一個對應軟體庫的.dll
檔案,這是軟體客戶端庫,你需要把它複製到C:\Windows\System32
這個目錄。
如果報錯擴充套件找不到,你把php.ini
檔案中的extension_dir
配置為絕對路徑extension_dir = "C:\soft\php74\ext"
windows 下這個環境足夠你用來進行開發了。homestread、虛擬機器,wsl,docker 對有些同學還是有些難度的,出了問題往往不能自己解決,而且不夠靈活與輕量。這個輕量、靈活。但你編寫程式碼始終要注意以下幾項:
- 檔案編碼使用 UTF-8
- 使用常量代替系統對應硬編碼,如
PHP_EOL
代替換行符,DIRECTORY_SEPARATOR
代替路徑分隔符 - 始終大小寫敏感
做到這幾點,你的程式碼就可以移植到其他系統的 PHP 上執行了
mac
跟 window10 類似,還是這個流程,但有幾個細節:
環境變數設定
vim .bashrc
PATH=$PAHT:{your}/{php}/{path}
source .bashrc
擴充套件字尾是
.so
共享物件
docker
核心就是將程式碼目錄對映到容器內,然後在容器中使用內建伺服器
```shell
docker run -d -p 8080:8080 -v {your/app/root/}:/var/app -w /var/app php:{tag} php -S 0.0.0.0:8080
生產環境
生產環境下有很多考量,也有很多方式。推薦使用 docker-compose/docker-swarm 實現單機/多節點多軟體部署。這塊有些複雜,每個公司的專案考量、預算、人員技術都不一樣,所以不好統一說。如果你們有環境相關的問題,可以在這裡留言,我看到了會幫你解決。
本作品採用《CC 協議》,轉載必須註明作者和本文連結