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

目錄

  • 官方鏡像 php

  • 編寫簡單的Hello world!mysql

1. 編寫Hello world! sql

2. 編寫Dockerfile docker

3. 構建並運行 數據庫

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

  • 構建本身的WordPress鏡像用於搭建我的博客站點 服務器

1. 準備MySQL數據庫 app

2. 跑起來 編程語言

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

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」命令進入容器內部修改相關配置

相關文章
相關標籤/搜索