利用WSL 2的力量來實現Linux-intagity PHP開發工作流程
WSL 2是Windows上嚴重PHP開發的新標準。 1。使用WSL安裝WSL 2安裝WSL 2,然後使用SUDO APT UPDATE && SUDO APT升級-Y進行更新,將項目保存在Linux文件系統中,以獲得最佳性能。 2。通過OndêejSurý的PPA和全球作曲家設置安裝PHP 8.3和作曲家,以確保生產般的一致性。 3。通過安裝nginx,在/etc/etc/nginx/stite-ovailable中配置網站,使用nginx和php-fpm使用,以符號鏈接啟用它,然後重新啟動nginx以實現真實的環境平等。 4。在WSL中安裝MySQL,將其固定,創建數據庫,然後使用DB_HOST = 127.0.0.1 in .ENV連接以強制執行TCP連接,並從TablePlus(例如TablePlus)通過Local -Host訪問LocalHost:3306。 5。借助WSL 2的自動端口轉發,可以從http:// localhost的Windows瀏覽器訪問該站點,如果需要,請驗證NGINX狀態。 6。使用遠程-WSL擴展名與VS代碼集成,直接在Linux中打開項目,從而啟用完整的Intellisense,Linux終端,Git和無縫XDEBUG集成。 7。使用curl -fssl https://get.docker.com | | s,將用戶添加到Docker組,並運行可從WSL和Windows訪問的容器。該設置提供了Linux-native PHP開發經驗,從開發到生產的完整工具集成和環境一致性。
在Windows上運行PHP開發環境,用於與從未完全感到“本地”的Xampp,Wamp或Docker設置搏鬥。但是,使用WSL 2(用於Linux 2的Windows子系統) ,這一切都改變了。現在,您可以直接在Windows上運行真正的Linux環境,並在SystemD支持,完整的bash訪問和無縫文件系統互操作性的情況下進行整理 - 將其作為現代,Linux-nux-nux-nix-nix-antive PHP工作流程的理想平台。

這是利用WSL 2建立快速,可靠和類似生產的PHP開發設置的方法。
✅1。與開發人員友好的發行版設置WSL 2
首先安裝WSL 2如果還沒有:

WSL-安裝
此命令默認情況下安裝Ubuntu(建議),但是您可以選擇諸如Debian或Alpine之類的其他人。
安裝後,更新系統:

sudo apt更新&& sudo apt升級-y
為什麼Ubuntu?它具有出色的PHP軟件包支持,主動的社區幫助以及諸如add-apt-repository
的工具,使添加第三方存儲庫(例如OndD還Surý的PHP PPA)變得輕而易舉。
?專家提示:將項目文件保留在Linux
/home/youruser/projects
Projects )中,而不是/mnt/c/
以提高性能,尤其是在作曲家和文件觀察者中。
✅2。在Linux中安裝PHP,作曲家和密鑰擴展
現在,直接在WSL環境中安裝PHP。使用受信任的OndD還SurýPPA進行最新版本:
sudo附加功能重複PPA:ONDREJ/PHP sudo apt更新 sudo apt安裝php8.3-cli php8.3-fpm php8.3-mysql php8.3-sqlite php8.3-mbstring php8.3-xml
然後在全球安裝作曲家:
curl -ss https://getcomposer.org/installer | php sudo mv composer.phar/usr/local/bin/bin/composer
現在,您正在運行與大多數基於Linux的生產服務器上使用的相同的PHP二進製文件 - 由於Windows特定的路徑或擴展怪癖而導致的“它在我的計算機上工作”問題都沒有。
?獎勵:運行
php -m
以查看所有已加載的模塊。將此與您的登台/生產服務器進行比較以保持一致性。
✅3。在本地使用Real Linux Web服務器(NGINX PHP-FPM)
對於真正的環境奇偶校驗,避免使用NGINX PHP-FPM的內置PHP服務器( php -S
),就像大多數生產Laravel或Symfony應用一樣。
安裝nginx:
sudo apt install nginx
在/etc/nginx/sites-available/myapp
創建基本網站配置:
伺服器 { 聽80; root/var/www/myapp/public; 索引index.php; 地點 / { try_files $ uri $ uri / / index.php?jquery_string; } 位置〜\ .php $ { fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; fastcgi_index index.php; fastcgi_param script_filename $ document_root $ fastcgi_script_name; 包括fastcgi_params; } }
啟用它:
sudo ln -s/etc/nginx/stites-abailable/myapp/etc/nginx/sites-nginx/sites-enabled/ sudo nginx -t && sudo systemctl restart nginx
現在,您的應用程序與生產相同的堆棧下運行 - 儘早進行錯誤配置。
✅4。連接到WSL中運行的MySQL/PostgreSQL
直接在WSL中安裝MySQL(或PostgreSQL):
sudo apt安裝mysql-server sudo mysql_secure_installation
保護它,創建數據庫,然後更新您的.env
文件:
db_connection = mysql db_host = 127.0.0.1 db_port = 3306 db_database = myApp db_username = root db_password =
注意:使用127.0.0.1
而不是localhost
來強制TCP而不是套接字連接(在WSL中可以挑剔)。
您還可以通過連接到localhost:3306
來使用TablePlus或MySQL Workbench之類的工具,直接轉發到WSL 2中。
✅5。從Windows瀏覽器訪問您的網站
默認情況下,nginx在WSL中的端口80上聽。多虧了WSL 2的自動端口代理,您可以從Windows訪問您的應用:
http:// localhost
無需額外的配置! WSL 2在Windows和Linux VM之間自動轉發端口。
⚠️如果它不起作用,請確保運行nginx:
sudo服務nginx狀態
✅6。與VS代碼集成(一流的WSL支持)
安裝Visual Studio代碼和遠程-WSL擴展名。
然後,從您的WSL終端:
代碼/var/www/myapp
這將打開直接連接到Linux環境的VS代碼。你得到:
- 使用Linux路徑完整的Intellisense
- 在WSL中運行的終端
- 由Linux提供動力的GIT(不再有CRLF頭痛)
- Xdebug無縫工作
直接設置Xdebug和Debug PHP請求的啟動。就像本機Linux Dev一樣。
✅7。可選:添加Docker(Linux版本)額外服務
需要Redis,MailHog還是Elasticsearch?通過WSL 2中的Docker運行它們,而不是Docker Desktop的Windows引擎。
在Ubuntu安裝Docker:
curl -fssl https://get.docker.com | sh sudo usermod -ag docker $用戶
註銷然後返回,然後運行:
Docker Run -D -P 6379:6379 Redis
現在,REDIS可從WSL和Windows提供127.0.0.1:6379
。
?好處:所有容器都在Linux上運行,因此沒有兼容性層或性能命中。
最後的想法
WSL 2橋接Windows便利性和Linux開發真實性之間的差距。有了它,你得到了:
- 真正的Linux內核和過程模型
- 本地PHP,擴展和服務
- 與Windows工具無縫集成
- 從開發到產品的環境一致性
您不再“使用Linux工具在Windows上開發”,而是在Linux中開發,Windows作為桌面伴侶。
設置一次,您會想知道沒有它就如何管理。
基本上,如果您在Windows上做認真的PHP工作,WSL 2不僅可以擁有,這是新標準。
以上是利用WSL 2的力量來實現Linux-intagity PHP開發工作流程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

NginxhandlesstaticfilesandroutesdynamicrequeststoPHP-FPM,whichprocessesPHPscriptsviaFastCGI;2.OptimizePHP-FPMbyusingUnixsockets,settingpm=dynamicwithappropriatemax_children,spareservers,andmax_requeststobalanceperformanceandmemory;3.ConfigureNginxwit

OPcache和JIT是PHP8.0 性能优化的核心工具,正确配置可显著提升执行效率;1.启用OPcache并设置opcache.enable=1、opcache.memory_consumption=192、opcache.max_accelerated_files=20000、opcache.validate_timestamps=0以实现opcode缓存并减少解析开销;2.配置JIT通过opcache.jit_buffer_size=256M和opcache.jit=1254启用追踪JIT

wsl2isthenewstanceforseriousphpdevelopmentonwindows.1.installwsl2withubuntuingusingwsl-install,thenupdatewithsudoaptupdat E && sudoaptupgrade-y,keepprojectsinthelinuxfilesystemforoptimalperformance.2.installphp8.3andComposerviaondEjsurýsppa

推薦使用Homebrew安裝PHP,運行/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安裝Homebrew,再執行brewinstallphp或指定版本如brewinstallphp@8.1;安裝後編輯對應路徑的php.ini文件調整memory_limit、upload_max_filesize、post_max_size和display_

LaunchanEC2instancewithAmazonLinux,appropriateinstancetype,securesecuritygroup,andkeypair.2.InstallLAMPstackbyupdatingpackages,installingApache,MariaDB,PHP,startingservices,securingMySQL,andtestingPHP.3.DecouplecomponentsbymovingdatabasetoRDS,storing

ChooseaCI/CDplatformlikeGitHubActionsorGitLabCIfortightversioncontrolintegrationandminimalinfrastructure;2.DefineaconsistentPHPenvironmentusingcontainerizationwithimageslikephp:8.2-cliorcomposer:latestandinstalldependenciesviacomposerinstall--no-inte

彙編phomerceisnotn coresemencomeformostprojectsbutprovidesfuidsfuidsfudsfiidesfulstrolcontrolforperperance,minimalbloat,andspecificoptimization.2.itinvolvesConvertingPhpphpphp'scsourcececececececeodeintoIntoExecutables,允許customizationLikizationLikeStripingunusedunsuptipingunseftimpipingunseftimpippingunsippingsextensenions enablingCpuspucpu

verifySystemRequirements and dipendenciesbyConfirmingoScompatiby andInstallingSenlingEssentialLibrariesandBuildTools,使用PackageManagerSlikeSlikeAptoryUmTosImplifyDependentyDependentymanagement.2.Checkphpphpphpphpphpphpphpconfigurationand and conconfigurationAndCompConfigurationAndCompilationErrateRrationRuntirNumentByRunningMinimal./confictecomma
