與Docker建立現代的PHP開發環境
>本教程通過使用當前的最佳實踐Docker設置PHP開發環境,從而指導您。 我們將介紹PHP開發環境的演變,強調Docker比舊方法的優勢。 如果要跳過歷史記錄,請跳到配置步驟。
>
> Web開發的快速步伐需要現代方法。 過時的教程比比皆是。 讓我們回顧一下演變:
手動安裝:
- 過去常見的手動安裝Apache,PHP和MySQL的艱鉅過程很常見。這需要大量的專業知識,並且很耗時。
- >
這些軟件包簡化了設置,但是開發環境和生產環境(不同版本的軟件,OS差異)之間的不一致會帶來挑戰。 許多開發人員仍在使用這些,但是是時候升級了。 >
-
>虛擬機(vagrant):
-
docker: docker提供了沒有開銷的虛擬機的好處。它將應用程序及其所有依賴項包裝到容器中,以確保環境的一致性。
- docker優於vagrant的優勢:
> Docker避免了流浪者的資源消耗和同步問題。它允許多個具有不同配置(Apache,nginx,各種PHP版本)的網站同時運行,每個網站都在其自己的容器中隔離。 移動網站就像複製單個文件夾一樣簡單。
設置docker環境
>
>先決條件:
>下載並安裝Docker。 在Linux上,通過發行版的軟件包管理器安裝和。 您可能需要將用戶添加到
>組中,然後啟動/啟用Docker服務。 Windows和MacOS安裝程序會自動處理此操作。在繼續之前,請停止任何現有的Web服務器(Apache,nginx等)或MySQL實例。>
>配置(docker-compose.yml):
創建一個項目文件夾和adocker
文件:docker-compose
>
docker
> nginx配置(nginx.conf):
docker-compose.yml
version: '3' services: web: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/nginx.conf - ./app:/app php: build: context: . dockerfile: PHP.Dockerfile volumes: - ./app:/app mysql: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: 'secret' MYSQL_USER: 'tutorial' MYSQL_PASSWORD: 'secret' MYSQL_DATABASE: 'tutorial' volumes: - mysqldata:/var/lib/mysql ports: - 3306:3306 volumes: mysqldata: {}
創建
:version: '3' services: web: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/nginx.conf - ./app:/app php: build: context: . dockerfile: PHP.Dockerfile volumes: - ./app:/app mysql: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: 'secret' MYSQL_USER: 'tutorial' MYSQL_PASSWORD: 'secret' MYSQL_DATABASE: 'tutorial' volumes: - mysqldata:/var/lib/mysql ports: - 3306:3306 volumes: mysqldata: {}
運行服務:
>在您的項目目錄中打開一個終端並運行docker-compose up
。 這將啟動NGINX,PHP和Mariadb。訪問您的網站http://127.0.0.1
。 一個“你好,世界!” app/public/index.html
>確認設置的測試頁面。 用phpinfo()
>中的app/public/index.php
腳本驗證PHP功能。 使用MySQL Workbench等客戶端連接到MySQL。
>部署:>只需上傳您的項目文件(包括docker-compose.yml
>,nginx.conf
和PHP.Dockerfile
),然後運行docker-compose up -d
以進行無縫部署。
常見問題解答:(提供的FAQ已經結構良好,可以直接包括在內。)
>此修訂後的輸出維護原始圖像位置和格式,同時重新繪製文本以提高清晰度和流動,避免竊。
以上是與Docker建立現代的PHP開發環境的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效

該教程通過使用AWS服務來指導您通過構建無服務器圖像處理管道。 我們將創建一個部署在ECS Fargate群集上的next.js前端,與API網關,Lambda函數,S3桶和DynamoDB進行交互。 Th

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL

Arm64 架構開源軟件的 CI/CD 難題與解決方案 在 Arm64 架構上部署開源軟件需要一個強大的 CI/CD 環境。然而,Arm64 和傳統 x86 處理器架構的支持水平之間存在差異,Arm64 通常處於劣勢。面向多種架構的基礎設施組件開發人員對工作環境有一定的期望: 一致性:跨平台使用的工具和方法保持一致,避免因採用不太流行的平台而需要改變開發流程。 性能:平台和支持機制具有良好的性能,確保在支持多個平台時部署方案不會因速度不足而受影響。 測試覆蓋率:對所有平台同時進行效率、合規性和

定制电信软件开发无疑是一项相当大的投资。然而,从长远来看,您可能会意识到,这样的项目可能更具成本效益,因为它可以像市场上任何现成的解决方案一样提高您的生产力。了解构建定制电信系统的最重要优势。 获取您所需的确切功能 您可以购买的现成电信软件有两个潜在问题。有些缺乏可能显著改善您工作效率的有用功能。有时您可以通过一些外部集成来增强它们,但这并不总是足以使它们变得出色。 其他软件功能过多,使用起来过于复杂。您可能不会使用其中的一些(永远不会!)。大量的功能通常还会增加价格。 基于您的需求
