docker構建php網站(docker php8)

本文目錄一覽:

Docker PHP 入門實踐(三)

在本教程的其餘部分,我們將基於 ThinkPHP 框架完成一個天氣查詢的應用。使用 天氣查詢-API文檔-開發指南-Web服務 API | 高德地圖API 的接口來實現我們的功能。把查詢數據緩存到 MySql 中,這樣就不用每次頻繁的請求第三方的接口了(有請求次數限制)

選擇高德開放平台-天氣查詢 API 主要是因為它是免費的。當然你也可以使用其他的第三方天氣查詢接口,看個人喜好。

該應用是一個非常簡單的 REST API 應用,主要實現兩個接口。

在我們進行應用編碼之前,首先使用 Docker 安裝並運行 ThinkPHP

ThinkPHP 是一個免費開源的,快速、簡單的面向對象的 輕量級PHP開發框架 ,是為了敏捷WEB應用開發和簡化企業應用開發而誕生的。ThinkPHP從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡代碼的同時,更注重易用性。遵循 Apache2 開源許可協議發布,意味着你可以免費使用ThinkPHP,甚至允許把你基於ThinkPHP開發的應用開源或商業產品發布/銷售 。

這就是為什麼我選擇它作為本教程的教學框架。我不想讓你因為一個框架而放棄,但我也不想從頭開始建立所有的東西,因為該教程的重點是Docker,而不是我們的PHP應用。

用Docker 創建 ThinkPHP 應用 實際上比用本地配置PHP環境所需的操作少。並且為我們還需要使用 Composer,多虧了Docker,我們甚至不需要在主機上安裝它。

首先打開你的終端,創建一個項目目錄。

並進入到該目錄中

現在使用[官方Composer Docker鏡像]()安裝 ThinkPHP 。

如果你查看weather-app/目錄,你會看到 ThinkPHP 6 的項目目錄,如下所示:

我們的 docker 運行命令與第二章中的命令相似,但我們使用了不同的鏡像。我們沒有使用運行hello.php 腳本的 PHP 鏡像,而是使用了一個 Composer 鏡像。讓我們來看看有什麼變化。

項目創建完成後,我們需要添加幾個路由 URL 和 Controller 文件 。讓我們打開 weather-app 目錄下的 app/controller , 然後新建 Weather.php 文件,內容如下:

然後打開 weather-app 目錄下的 app/route , 在 app.php 文件中追加如下內容:

現在我們可以在 Docker 容器中運行我們的應用程序,只是為了驗證我們的程序是否運行正常,因為我們只添加了兩個路由 URL。打開命令行,運行。

現在,在瀏覽器中打開 ,你應該看到一個空頁面,上面有以下文字:

那麼恭喜你,你剛剛已經成功地在 Docker 中運行了你的第一個 ThinkPHP 應用程序。

這次我們使用的docker run命令與我們用來運行 hello.php 腳本 和composer create-project …的兩個命令不同。原因是這次我們想獲得包含 Apache 的最新版本的PHP,這樣我們就可以為我們的 Web 應用提供服務。讓我們更詳細地了解新增的命令部分。

你可以通過向終端發送一個 “中斷 “信號來停止和退出終端。在 windows 上,這可以通過按 Ctrl 和按c來實現。

運行你的新網絡應用程序的另一個選擇是在 “Detached”模式中運行容器。這意味着你在終端將不會看到來自你的容器的輸出。這可以通過在我們之前的命令中添加-d標誌來實現。

在分離模式下啟動容器後,你的終端將顯示新容器的完整ID–類似於a70d25c2a7cedae673f8ab…如果你想停止這個容器,你可以使用docker stop命令,用容器的ID告訴Docker。比如說

因為輸入整個ID是很麻煩的,如果你願意,Docker允許你只輸入前三個或更多的字符。

最後,我建議為你的容器命名。我們在本書後面的許多例子中都會這樣做,因為用名字來記住一個容器比用隨機分配的ID要容易得多,再加上ID是隨機的,所以每次你運行一個新版本的容器時,它都會得到一個新的ID。只要不是已經有一個同名的容器,名字就可以多次發出來。為了給我們的新應用容器命名,我們可以用傳入的–name標誌重新創建它。

在使用docker run命令時,還有許多可用的選項,所以你可能想更詳細地閱讀文檔。在我們開發其餘的應用程序時,我們會涉及其中的一些選項。

現在我們要引入高德的天氣 SDK ,在使用該 SDK 之前你需要閱讀高德開放平台-天氣查詢的技術文檔,再添加 SDK 之前我們首先要確保所有現有的容器都停止了。

這個命令將列出所有正在運行的容器。你也可以通過添加-a標誌來查看停止的容器。

如果有任何容器正在運行,那麼在我們繼續前進之前,使用docker stop 來停止它們。

該命令將在你的項目中裝新的軟件包。在這個過程中,你應該在終端看到一些類似這樣的輸出。

現在 SDK 已經安裝完畢,可以使用了。

我們將使用剛剛添加的高德天氣 SDK 來完善我們的業務邏輯,打開 controller 目錄下的 Weather.php 添加以下內容:

我們做了一些更新–主要是對引入天氣 API 初始化天氣類

我們的應用程序已經初步完成了向API傳遞一個真實的位置ID並返回一些數據。首先,使用這個高德位置查詢找到一個位置ID。我使用的是上海的ID進行測試。310000,當然你直接傳 上海 也是可以的。ok,讓我們再次運行Docker容器。

並在你的瀏覽器中訪問正在運行的應用程序,地址是。你應該可以看到一個JSON數據,看起來像這樣。

你的 Docker 化的 PHP 應用程序現在正從外部數據源返回真實數據,並在Apache中提供服務,但你可能會注意到,它的速度並不快(我的頁面加載時間為1.92秒!)。

高德天氣 API 是一個免費的服務,其他國家可能無法訪問。為了解決這個問題,我們將把查詢的數據保存在我們自己的 MySQL 數據庫中,可以再下次訪問的時候可以快速地響應。這將極大地提高性能,下個章節我們將學習如何用 Docker 將 MySql 與 PHP 應用程序相結合。

自己私下寫php項目怎麼用docker

首先還是從一個PHP在Docker容器下的Hello World實例開始。我們準備這樣一個PHP文件index.php

?php 

echo “PHP in Docker”;

然後在同目錄下創建文本文件並命名為Dockerfile,內容為:

# 從官方PHP鏡像構建 

FROM       php 

# 將index.php複製到容器內的/var/www目錄下 

ADD        index.php /var/www/ 

# 對外暴露8080端口 

EXPOSE     8080 

# 設置容器默認工作目錄為/var/www 

WORKDIR    /var/www/ 

# 容器運行後默認執行的指令

ENTRYPOINT [“php”, “-S”, “0.0.0.0:8080”]

構建這個容器:

docker build -t allovince/php-helloworld .

運行這個容器

docker run -d -p 8080:8080 allovince/php-helloworld

查看結果:

curl localhost:8080

PHP in Docker

這樣我們就創建了一個用於演示PHP程序的Docker容器,任何安裝過Docker的機器都可以運行這個容器獲得同樣的結果。而任何有上面的php文件和Dockerfile的人都可以構建出相同的容器,從而完全消除了不同環境,不同版本可能引起的各種問題。

想象一下程序進一步複雜,我們應該如何擴展呢,很直接的想法是繼續在容器內安裝其他用到的服務,並將所有服務運行起來,那麼我們的Dockerfile很可能發展成這個樣子:

FROM       php 

ADD        index.php /var/www/

# 安裝更多服務

RUN        apt-get 

install -y \           

mysql-server \

           

nginx \

           

php5-fpm \

           

php5-mysql

# 編寫一個啟動腳本啟動所有服務ENTRYPOINT

 [“/opt/bin/php-nginx-mysql-start.sh”]

雖然我們通過Docker構建了一個開發環境,但覺不覺得有些似曾相識呢。沒錯,其實這種做法和製作一個虛擬機鏡像是差不多的

PHP下如何優雅的使用Docker來構建環境

需要以下工具:

Web 服務器: Nginx/Tengine

Web 程序: PHP-FPM

數據庫: MySQL/PostgreSQL

緩存服務: Redis/Memcache

怎麼樣使用Docker部署一個PHP開發環境

安裝Docker

平時開發的環境一般都是Mac或者Windows,所以接下來只針對前兩者寫下步驟,這兩個平台,官方都推薦了兩種安裝方式:app和工具包(toolbox)。註:app方式對系統版本和配置會有一定要求,Mac版本會自動為你安裝好VM(虛擬機),但Windows需要你安裝微軟虛擬化產品Hyper-V,而toolbox方式則需要你額外安裝virtualbox來作為docker的VM。

如何使用Docker搭建PHP應用開發環境

後盾網是專門學習php的內容非常專業,名師輔導你,很好的教養環境.樓主快去吧2

怎麼使用Docker搭建PHP開發環境

以前在遠標了解過最方便的方式是下載一個php集成開發環境。然後安裝即可。比如常用的php集成環境:xampp,phpstudy,wampserver等等。

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/128825.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:25
下一篇 2024-10-03 23:25

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • docker-ce-18.03.1.ce-1.el7.centos.x86_64需要pigz這個依賴的解決方案

    當我們在linux centos系統中安裝docker-ce-18.03.1.ce-1.el7.centos.x86_64時,有時可能會遇到“nothing provides pi…

    編程 2025-04-29
  • 網站為什麼會被黑客攻擊?

    黑客攻擊是指利用計算機技術手段,入侵或者破壞計算機信息系統的一種行為。網站被黑客攻擊是常見的安全隱患之一,那麼,為什麼網站會被黑客攻擊呢?本文將從不同角度分析這個問題,並且提出相應…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 如何用Python訪問網站

    本文將從以下幾個方面介紹如何使用Python訪問網站:網絡請求、POST請求、用戶代理、Cookie、代理IP、API請求。 一、網絡請求 Python有三種主流的網絡請求庫:ur…

    編程 2025-04-29
  • 如何將Python開發的網站變成APP

    要將Python開發的網站變成APP,可以通過Python的Web框架或者APP框架,將網站封裝為APP的形式。常見的方法有: 一、使用Python的Web框架Django Dja…

    編程 2025-04-28
  • 如何在服務器上運行網站

    想要在服務器上運行網站,需要按照以下步驟進行配置和部署。 一、選擇服務器和域名 想要在服務器上運行網站,首先需要選擇一台雲服務器或者自己搭建的服務器。雲服務器會提供更好的穩定性和可…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28

發表回復

登錄後才能評論