Docker最全教程之使用PHP搭建個人博客站點(二十二)


目錄

  • 官方鏡像 

  • 編寫簡單的Hello world!

1. 編寫Hello world! 

2. 編寫Dockerfile 

3. 構建並運行 

4. 直接使用PHP Docker鏡像運行PHP腳本 

  • 構建自己的WordPress鏡像用於搭建個人博客站點 

1. 准備MySQL數據庫 

2. 跑起來 

  • 修改PHP的文件上傳大小限制 

1. 修改Dockerfile,構建自己的鏡像 

2. 通過“-v”參數將容器內指定路徑映射到主機目錄的自定義的配置文件 

3. 通過“exec”命令進入容器內部修改相關配置 


PHP(全名:PHP: Hypertext Preprocessor)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯后代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。


 

官方鏡像

官方鏡像地址:https://hub.docker.com/_/php


編寫簡單的Hello world!

1. 編寫Hello world!

代碼及其簡單,如下所示:

<?php

echo "Hello world";

?>

2. 編寫Dockerfile

Dockerfile文件如下所示:

#鏡像版本見:https://hub.docker.com/_/php

FROM php:7.3-cli-alpine3.9

COPY . /usr/src/myapp

WORKDIR /usr/src/myapp

#運行php腳本

CMD [ "php", "./test.php" ]

這里之所以選擇了alpine的鏡像,主要是體積更小:

3. 構建並運行

構建命令如下所示:

docker build --rm -f "dockerfile" -t phptest1:latest .

運行:

 

4. 直接使用PHP Docker鏡像運行PHP腳本

在日常開發中,如果我們只是編寫簡單的PHP腳本用於簡單的實踐,那么我們完全可以

直接使用PHP Docker鏡像來運行PHP腳本,避免反復的構建過程,從而加速開發:

docker run -it --rm  `

--name php-running-script `

-v D:\temp\php:/usr/src/myapp `

-w /usr/src/myapp `

php php test.php

運行命令參數說明大家可以回顧前面的內容,以上命令主體操作如下:

  • 運行php最新鏡像,運行完成后自動刪除容器。其中“-it”等同於“-ti”等同於“-i -t”,也就是讓容器的標准輸入保持打開,然后分配一個偽終端並綁定到容器的標准輸入上;
  • 容器名稱為“php-running-script”;
  • 將主機目錄“D:\temp\php”加載為數據卷,映射到容器內目錄“/usr/src/myapp”。關於數據卷的相關講解,我們在后續的章節會結合相關實踐進一步講解;
  • 指定工作目錄“/usr/src/myapp”;
  • 執行PHP腳本“test.php”。


構建自己的WordPress鏡像用於搭建個人博客站點

WordPress是使用PHP語言開發的博客平台,用戶可以在支持PHP和MySQL數據庫的服務器上架設屬於自己的網站。也可以把 WordPress當作一個內容管理系統(CMS)來使用。

WordPress是一款個人博客系統,並逐步演化成一款內容管理系統軟件,它是使用PHP語言和MySQL數據庫開發的,用戶可以在支持 PHP 和 MySQL數據庫的服務器上使用自己的博客。

WordPress官方鏡像地址為:https://hub.docker.com/_/wordpress

 

接下來,我們就基於官方鏡像開始搭建。

1.准備MySQL數據庫

我們先需要准備一個MySQl數據庫,大家可以使用現成的MySQL數據庫,也可以參考數據庫容器化的相關章節來進行搭建。

參考命令如下所示:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

注意:MySQL容器創建完成后,需要對root賬號進行設置才能夠通過數據庫連接訪問MySQL,具體見數據庫容器化相關章節。

 

2.跑起來

接下來,我們就可以運行WordPress鏡像了,參考命令如下所示:

docker run `

--name myblog `

--link mysql:wordpressdb `

-e WORDPRESS_DB_HOST=wordpressdb:3306 `

-e WORDPRESS_DB_PASSWORD=123456 `

-e WORDPRESS_DB_NAME=wordpress `

-p 3000:80 `

wordpress

如上述命令,我們基於WordPressWordPress鏡像創建了一個名為myblog的容器,外部端口為3000,容器端口為80。然后使用“--link”參數將該容器和mysql容器(上一步創建的MySQL容器)建立了鏈接,是其能否訪問mysql容器,並且建立了別名wordpressdb。接下來,通過環境變量設置了WordPress的MySQL的一些參數,比如數據庫服務器、密碼、庫名稱。運行結果如下圖所示:

接下來,我們訪問我們的博客網址“http://localhost:3000/”試試:

經過一些簡單設置,我們又為WordPress添加了一個即將關站的博客站:


 

修改PHP的文件上傳大小限制

基於Docker運行PHP應用,經常會遇到文件上傳大小限制的問題。比如剛剛部署的WordPress個人博客站點,如果我們上傳一些個人主題,很容易就突破了PHP的文件上傳大小限制(默認2M,對應設置key為“upload_max_filesize”),這時我們有以下方式進行處理:

1.修改Dockerfile,構建自己的鏡像

使用自己的php配置文件(php.ini)替換默認的php配置文件。如基於wordpress鏡像構建自己的鏡像,添加類似於“COPY ./config/php.ini /usr/local/etc/php/conf.d/”的復制命令。

2.通過“-v”參數將容器內指定路徑映射到主機目錄的自定義的配置文件

例如“-v d:/tmp/php/php.ini:/usr/local/etc/php/conf.d/uploads.ini”。

3.通過“exec”命令進入容器內部修改相關配置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM