最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker搭建PHP運(yùn)行環(huán)境完整步驟(圖文教程)

 更新時(shí)間:2023年09月18日 10:50:40   作者:Super樂(lè)  
PHP是一種廣泛使用的編程語(yǔ)言,被用于Web開(kāi)發(fā)和服務(wù)器管理等各種用途,而Docker則是一種非常流行的容器化平臺(tái),可以方便地管理應(yīng)用程序和環(huán)境,這篇文章主要給大家介紹了關(guān)于Docker搭建PHP運(yùn)行環(huán)境的完整步驟,需要的朋友可以參考下

Docker 安裝 PHP

這里我們拉取官方的鏡像,標(biāo)簽為7.1-fpm 

docker pull php:7.1-fpm

 等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為php,標(biāo)簽為7.1-fpm的鏡像。

Docker 安裝 Nginx 

 訪問(wèn) Nginx 鏡像庫(kù)地址:https://hub.docker.com/_/nginx?tab=tags。

可以通過(guò) Sort by 查看其他版本的 Nginx,默認(rèn)是最新版本 nginx:latest。 

這里我們拉取官方的最新版本的鏡像: 

docker pull nginx:latest

 使用以下命令來(lái)查看是否已安裝了 nginx:

運(yùn)行nginx容器

安裝完成后,我們可以使用以下命令來(lái)運(yùn)行 nginx 容器:

docker run --name nginx-test -p 8080:80 -d nginx

參數(shù)說(shuō)明:

  • --name nginx-test:容器名稱。
  • -p 8080:80: 端口進(jìn)行映射,將本地 8080 端口映射到容器內(nèi)部的 80 端口。
  • -d nginx: 設(shè)置容器在在后臺(tái)一直運(yùn)行

nginx安裝成功

最后我們可以通過(guò)瀏覽器可以直接訪問(wèn) 8080 端口的 nginx 服務(wù): 

Nginx + PHP 部署PHP項(xiàng)目

啟動(dòng) PHP: 

docker run --name  myphp-fpm -p 9000:9000 -v /var/www/blog:/www  -d php:7.1-fpm

命令說(shuō)明:

  • --name myphp-fpm : 將容器命名為 myphp-fpm。

  • -v /var/www/blog:/www : 將主機(jī)中PHP項(xiàng)目目錄掛載到容器的 /www目錄,在容器內(nèi)訪問(wèn) /www 就相當(dāng)于訪問(wèn)宿主機(jī)的 /var/www/blog

  • php:7.1-fpm 鏡像名

創(chuàng)建一個(gè)存放nginx配置文件的目錄。這個(gè)目錄等下要掛載到容器里。

mkdir -p /opt/docker/nginx/conf.d

創(chuàng)建一個(gè)空配置文件

vim testdocker.conf

 在該目錄下添加 /opt/docker/nginx/conf.d/testdocker.conf 文件,內(nèi)容如下:

server {
    # 監(jiān)聽(tīng)端口。此端口不能被占用了
    listen       80;
    # 此站點(diǎn)的域名。直接在宿主機(jī)配置一個(gè)host域名,或者在阿里云等云服務(wù)商那里解析過(guò)來(lái)。
    server_name  www.testdocker.com;
    # 此站點(diǎn)的入口目錄。這里要注意,/www/public/ 路徑是容器內(nèi)的路徑。因?yàn)榈认聲?huì)把宿主機(jī)的項(xiàng)目路徑掛載到容器內(nèi)的 /www 目錄。所以這里訪問(wèn) /www就相當(dāng)于訪問(wèn)宿主機(jī)的項(xiàng)目路徑。
    root  /www/public/;
    #配置url的偽靜態(tài)設(shè)置
    location / {
       autoindex off;
       if (!-e $request_filename){
          rewrite ^/(.*)$ /index.php?/$1 last;        break;
       }
       #偽靜態(tài)設(shè)置
       try_files $uri $uri/ /index.php$is_args$query_string;
       index index.php index.html index.htm;
    }
    #配置url處理及轉(zhuǎn)發(fā)PHP請(qǐng)求
    location ~ \.php(/|$) {
        # 入口文件
        fastcgi_index index.php;
        # PHP項(xiàng)目的IP和端口。這是php-fpm的地址。由于nginx處理不了PHP代碼,所以需要把請(qǐng)求轉(zhuǎn)發(fā)給php-fpm進(jìn)行處理。
        fastcgi_pass  10.10.10.68:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include       fastcgi_params;
    }
    # 用戶的訪問(wèn)日志。注意,這目錄必須存在,否則nginx將啟動(dòng)不了。由于我把宿主機(jī)的項(xiàng)目路徑www掛載到了容器內(nèi)的/www目錄,所以宿主機(jī)的項(xiàng)目路徑www里需要有wwwlogs目錄。
    access_log  /var/log/nginx/docker_nginx_access.log;
    # 錯(cuò)誤日志
    error_log  /var/log/nginx/docker_nginx_error.log;
}

配置文件說(shuō)明:

  • 10.10.10.68:9000:表示 php-fpm 服務(wù)的 URL,下面我們會(huì)具體說(shuō)明。
  • root  /www/public/:項(xiàng)目的根目錄,這里之所以寫(xiě)成( /www/public),是因?yàn)樵趩?dòng)PHP時(shí),已經(jīng)將項(xiàng)目的根目錄(/var/www/blog)掛載到容器內(nèi)的/www目錄了

啟動(dòng) nginx:

docker run --name my-nginx -p 80:80 -d -v /var/www/blog:/www -v /opt/docker/nginx/conf.d:/etc/nginx/conf.d nginx
  • -v /var/www/blog:/www 把宿主機(jī)的項(xiàng)目目錄 /var/www/blog 掛載到容器內(nèi)的 /www 目錄。容器內(nèi)訪問(wèn) /www 就相當(dāng)于訪問(wèn) /var/www/blog
  • -v /opt/docker/nginx/conf.d:/etc/nginx/conf.d 把宿主機(jī)的配置目錄,掛載到容器內(nèi)nginx的配置目錄。nginx 會(huì)自動(dòng)去加載這目錄內(nèi)所有的配置文件。/opt/docker/nginx/conf.d 里建議每個(gè)站點(diǎn)對(duì)應(yīng)一個(gè)配置文件。
  • -d 后臺(tái)靜默運(yùn)行

查看正在運(yùn)行的容器: 

真確的結(jié)果如下圖(圖一):

錯(cuò)誤的結(jié)果如下圖(圖二):

圖一和圖二的區(qū)別:

圖一端口(9000)生效,圖二端口(9000)沒(méi)生效,如果php-fpm沒(méi)有端口,最后導(dǎo)致的結(jié)果就是,客戶端通過(guò)域名訪問(wèn)項(xiàng)目,在通過(guò)nginx請(qǐng)求php-fpm時(shí)會(huì)提示:502

nginx錯(cuò)誤提示是:connect() failed (111: Connection refused) while connecting to upstream

訪問(wèn)域名測(cè)試搭建結(jié)果

Docker相關(guān)命令描述

docker container attach     附加到正在運(yùn)行的容器
docker container commit     從容器的更改創(chuàng)建一個(gè)新的映像
docker container cp         在容器和本地文件系統(tǒng)之間復(fù)制文件/文件夾
docker container create     創(chuàng)建一個(gè)新的容器
docker container diff       檢查容器文件系統(tǒng)上文件或目錄的更改
docker container exec       在運(yùn)行容器中運(yùn)行命令
docker container export     將容器的文件系統(tǒng)導(dǎo)出為tar存檔
docker container inspect    顯示一個(gè)或多個(gè)容器的詳細(xì)信息
docker container kill       殺死一個(gè)或多個(gè)運(yùn)行容器
docker container logs       獲取容器的日志
docker container ls         列出容器
docker container pause      暫停一個(gè)或多個(gè)容器內(nèi)的所有進(jìn)程
docker container port       列出端口映射或容器的特定映射
docker container prune      取出所有停止的容器
docker container rename     重命名容器
docker container restart    重新啟動(dòng)一個(gè)或多個(gè)容器
docker container rm         刪除(移除)一個(gè)或多個(gè)容器
docker container run        在新容器中運(yùn)行命令
docker container start      啟動(dòng)一個(gè)或多個(gè)停止的容器
docker container stats      顯示容器的實(shí)時(shí)流資源使用統(tǒng)計(jì)信息
docker container stop       停止一個(gè)或多個(gè)運(yùn)行容器
docker container top        顯示容器的正在運(yùn)行的進(jìn)程
docker container unpause    取消暫停一個(gè)或多個(gè)容器內(nèi)的所有流程
docker container update     更新一個(gè)或多個(gè)容器的配置
docker container wait       阻止一個(gè)或多個(gè)容器停止,然后打印退出代碼
以上命令中的 container 可以省略不寫(xiě),
例如命令:docker container stop 容器ID/容器名稱 等同 docker stop 容器ID/容器名稱

總結(jié) 

到此這篇關(guān)于Docker搭建PHP運(yùn)行環(huán)境的文章就介紹到這了,更多相關(guān)Docker搭建PHP運(yùn)行環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux環(huán)境下使用Docker搭建Jenkins容器的方法步驟

    Linux環(huán)境下使用Docker搭建Jenkins容器的方法步驟

    本文主要介紹了Linux環(huán)境下使用Docker搭建Jenkins容器的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • pod污點(diǎn)taint?與容忍度tolerations詳解

    pod污點(diǎn)taint?與容忍度tolerations詳解

    這篇文章主要為大家介紹了pod污點(diǎn)taint與容忍度tolerations示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 詳解Docker退出容器不關(guān)閉容器的方法

    詳解Docker退出容器不關(guān)閉容器的方法

    進(jìn)入docker容器后如果退出容器,容器就會(huì)變成Exited的狀態(tài),那么如何退出容器讓容器不關(guān)閉呢?現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Docker Desktop啟用Kubernetes 1.25 的過(guò)程記錄

    Docker Desktop啟用Kubernetes 1.25 的過(guò)程記錄

    這篇文章主要介紹了Docker Desktop啟用Kubernetes 1.25 的過(guò)程記錄,安裝 Docker 之前需要你在 BIOS 中開(kāi)啟虛擬化,同時(shí)基于你的宿主程序的選擇,你還需要執(zhí)行相關(guān)的操作,需要的朋友可以參考下
    2022-10-10
  • docker run -e傳遞環(huán)境變量的過(guò)程

    docker run -e傳遞環(huán)境變量的過(guò)程

    這篇文章主要介紹了docker run -e傳遞環(huán)境變量的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • Docker掛載/etc/timezone報(bào)錯(cuò)問(wèn)題

    Docker掛載/etc/timezone報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了Docker掛載/etc/timezone報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker容器磁盤(pán)占滿的一些情況匯總

    Docker容器磁盤(pán)占滿的一些情況匯總

    這篇文章主要給大家介紹了關(guān)于Docker容器磁盤(pán)占滿的一些情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • docker容器中文亂碼的解決方法

    docker容器中文亂碼的解決方法

    Docker默認(rèn)不支持中文,在docker中部署Java運(yùn)行環(huán)境,查看日志時(shí)都是亂碼,下面這篇文章主要給大家介紹了關(guān)于docker容器中文亂碼的解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 使用docker-tc對(duì)host容器進(jìn)行限流的操作方法

    使用docker-tc對(duì)host容器進(jìn)行限流的操作方法

    docker-tc是一個(gè)github開(kāi)源項(xiàng)目,這篇文章主要介紹了使用docker-tc對(duì)host容器進(jìn)行限流,需要的朋友可以參考下
    2024-04-04
  • supervisor下的Dockerfile的多服務(wù)鏡像封裝操作

    supervisor下的Dockerfile的多服務(wù)鏡像封裝操作

    這篇文章主要介紹了supervisor下的Dockerfile的多服務(wù)鏡像封裝操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11

最新評(píng)論

柳州市| 封丘县| 伊吾县| 岢岚县| 苏尼特右旗| 东至县| 南平市| 聂荣县| 光泽县| 民勤县| 武陟县| 鹤庆县| 永嘉县| 鲁甸县| 塘沽区| 宣城市| 普定县| 阳城县| 吉水县| 定陶县| 凤翔县| 舒兰市| 会东县| 丘北县| 三江| 射阳县| 五华县| 阿坝| 利津县| 久治县| 布尔津县| 郯城县| 固始县| 怀集县| 泌阳县| 苍山县| 德清县| 四子王旗| 蓬安县| 大埔县| 苍溪县|