欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Docker 安裝 PHP

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

docker pull php:7.1-fpm

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

Docker 安裝 Nginx 

 訪問 Nginx 鏡像庫地址:https://hub.docker.com/_/nginx?tab=tags。

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

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

docker pull nginx:latest

 使用以下命令來查看是否已安裝了 nginx:

運行nginx容器

安裝完成后,我們可以使用以下命令來運行 nginx 容器:

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

參數(shù)說明:

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

nginx安裝成功

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

Nginx + PHP 部署PHP項目

啟動 PHP: 

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

命令說明:

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

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

  • php:7.1-fpm 鏡像名

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

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

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

vim testdocker.conf

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

server {
    # 監(jiān)聽端口。此端口不能被占用了
    listen       80;
    # 此站點的域名。直接在宿主機配置一個host域名,或者在阿里云等云服務(wù)商那里解析過來。
    server_name  www.testdocker.com;
    # 此站點的入口目錄。這里要注意,/www/public/ 路徑是容器內(nèi)的路徑。因為等下會把宿主機的項目路徑掛載到容器內(nèi)的 /www 目錄。所以這里訪問 /www就相當(dā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請求
    location ~ \.php(/|$) {
        # 入口文件
        fastcgi_index index.php;
        # PHP項目的IP和端口。這是php-fpm的地址。由于nginx處理不了PHP代碼,所以需要把請求轉(zhuǎn)發(fā)給php-fpm進行處理。
        fastcgi_pass  10.10.10.68:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include       fastcgi_params;
    }
    # 用戶的訪問日志。注意,這目錄必須存在,否則nginx將啟動不了。由于我把宿主機的項目路徑www掛載到了容器內(nèi)的/www目錄,所以宿主機的項目路徑www里需要有wwwlogs目錄。
    access_log  /var/log/nginx/docker_nginx_access.log;
    # 錯誤日志
    error_log  /var/log/nginx/docker_nginx_error.log;
}

配置文件說明:

  • 10.10.10.68:9000:表示 php-fpm 服務(wù)的 URL,下面我們會具體說明。
  • root  /www/public/:項目的根目錄,這里之所以寫成( /www/public),是因為在啟動PHP時,已經(jīng)將項目的根目錄(/var/www/blog)掛載到容器內(nèi)的/www目錄了

啟動 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 把宿主機的項目目錄 /var/www/blog 掛載到容器內(nèi)的 /www 目錄。容器內(nèi)訪問 /www 就相當(dāng)于訪問 /var/www/blog
  • -v /opt/docker/nginx/conf.d:/etc/nginx/conf.d 把宿主機的配置目錄,掛載到容器內(nèi)nginx的配置目錄。nginx 會自動去加載這目錄內(nèi)所有的配置文件。/opt/docker/nginx/conf.d 里建議每個站點對應(yīng)一個配置文件。
  • -d 后臺靜默運行

查看正在運行的容器: 

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

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

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

圖一端口(9000)生效,圖二端口(9000)沒生效,如果php-fpm沒有端口,最后導(dǎo)致的結(jié)果就是,客戶端通過域名訪問項目,在通過nginx請求php-fpm時會提示:502

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

訪問域名測試搭建結(jié)果

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

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

總結(jié) 

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

相關(guān)文章

  • SQL?Server?簡介與?Docker?Compose?部署SQL?Server?容器

    SQL?Server?簡介與?Docker?Compose?部署SQL?Server?容器

    SQL?Server?是一個功能強大的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),適用于各種規(guī)模的應(yīng)用程序和數(shù)據(jù)存儲需求,在本文中,我將簡要介紹?SQL?Server?的基本概念,并詳細(xì)闡述如何使用?Docker?Compose?部署?SQL?Server?容器,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Docker Swarm集群管理的使用及原理解析

    Docker Swarm集群管理的使用及原理解析

    這篇文章主要介紹了Docker Swarm集群管理的使用及原理解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • docker 容器自定義 hosts 網(wǎng)絡(luò)訪問操作

    docker 容器自定義 hosts 網(wǎng)絡(luò)訪問操作

    這篇文章主要介紹了docker 容器自定義 hosts 網(wǎng)絡(luò)訪問操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 備份Docker容器中的PostgreSQL數(shù)據(jù)的圖文實操教程

    備份Docker容器中的PostgreSQL數(shù)據(jù)的圖文實操教程

    現(xiàn)在docker容器很方便,可以一鍵部署項目,但是方便部署的同時,也給運維帶來了麻煩,docker中的pgsql數(shù)據(jù),如何進行備份呢,本文小編給大家就介紹了備份Docker容器中的PostgreSQL數(shù)據(jù)的圖文實操教程,需要的朋友可以參考下
    2024-09-09
  • docker容器啟動后如何修改或添加端口

    docker容器啟動后如何修改或添加端口

    這篇文章主要介紹了docker容器啟動后如何修改或添加端口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 詳解Docker使用Linux iptables 和 Interfaces管理容器網(wǎng)絡(luò)

    詳解Docker使用Linux iptables 和 Interfaces管理容器網(wǎng)絡(luò)

    這篇文章主要介紹了詳解Docker使用Linux iptables 和 Interfaces管理容器網(wǎng)絡(luò)的相關(guān)內(nèi)容,涉及Linux 網(wǎng)橋接口,iptables等,內(nèi)容豐富,需要的朋友可以了解下。
    2017-09-09
  • 從0開始了解Docker入門(小結(jié))

    從0開始了解Docker入門(小結(jié))

    本篇文章主要介紹了從0開始了解Docker(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • docker?掛載、修改文件的步驟

    docker?掛載、修改文件的步驟

    這篇文章主要介紹了docker?掛載、修改文件的步驟,咱們使用的是docker的 copy 命令從容器中 copy 出來相關(guān)的配置文件,在本地修改,修改完畢在使用docker的 copy 命令從本地 copy 到容器中,重啟容器生效的,需要的朋友可以參考下
    2023-03-03
  • Docker綁定端口后仍無法遠(yuǎn)程直接訪問的解決方法

    Docker綁定端口后仍無法遠(yuǎn)程直接訪問的解決方法

    在Docker中,如果容器的端口綁定錯誤或只綁定到了容器的內(nèi)部IP地址,將導(dǎo)致外部主機無法訪問該端口,所以本文小編給大家介紹了Docker綁定端口后仍無法遠(yuǎn)程直接訪問的解決方法,需要的朋友可以參考下
    2024-09-09
  • docker安裝opengauss數(shù)據(jù)庫配置過程詳解

    docker安裝opengauss數(shù)據(jù)庫配置過程詳解

    這篇文章主要為大家介紹了docker安裝opengauss數(shù)據(jù)庫配置過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09

最新評論