使用Docker搭建PHP環境

一、docker環境搭建

使用docker搭建PHP開發環境是目前比較流行的做法,因為這樣可以避免開發環境之間的衝突問題,也不會影響到本地機器的配置。在開始搭建之前,需要先安裝docker。官方的docker安裝文檔提供了詳細說明,這裡就不再贅述。

二、使用docker搭建環境

在啟動docker之前,需要先創建一個目錄,在這個目錄中,創建一個名為Dockerfile的文件,可以通過編寫這個文件來定義並配置docker鏡像。下面是一個簡單的Dockerfile示例:

FROM php:7.3-fpm
WORKDIR /var/www/html

這個Dockerfile使用了php官方的鏡像,並設置工作目錄為/var/www/html。接下來,我們可以使用docker build命令來構建這個鏡像:

docker build -t my-php-app .

這個命令將使用當前目錄下的Dockerfile文件來構建鏡像,並將其命名為my-php-app。

三、docker搭建ftp伺服器

Docker還可以用來搭建ftp伺服器。下面是一個簡單的Dockerfile示例:

FROM stilliard/pure-ftpd:latest
RUN echo "no" > /etc/pure-ftpd/conf/TLS

這個Dockerfile使用了stilliard/pure-ftpd鏡像,並在容器啟動時禁用了TLS。(根據需求配置不盡相同)

接下來,運行以下命令啟動ftp伺服器:

docker run -d \
    -p 21:21 \
    -p 30000-30009:30000-30009 \
    -e "PUBLICHOST=localhost" \
    -v /path/to/ftp:/home/ftpusers \
    stilliard/pure-ftpd:latest

這個命令將容器的21號埠映射到主機的21號埠,並將容器的30000-30009號埠映射到主機的30000-30009號埠。同時,通過環境變數PUBLICHOST,設置FTP伺服器的公網訪問地址。最後,使用-v參數將本地目錄掛載到容器的/home/ftpusers目錄中,使得容器與主機共享FTP文件。

四、docker搭建pwn環境

PWN環境是CTF比賽中常見的環境,用於測試二進位漏洞與利用。使用docker可以方便地搭建PWN環境,並提供一些常用的PWN工具。下面是一個PWN環境的Dockerfile示例:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
    build-essential \
    gdb \
    nasm \
    netcat \
    vim \
    strace \
    ltrace

這個Dockerfile使用了最新版的Ubuntu鏡像,並安裝了一些PWN環境必備的工具,包括構建工具、調試器、反彙編工具等。可以根據實際需要安裝更多的工具。

構建鏡像之後,可以使用以下命令來啟動容器:

docker run -it \
    -v /path/to/pwn:/pwn \
    my-pwn-env

這個命令將啟動一個互動式的容器,同時將本地的/path/to/pwn目錄掛載到容器中的/pwn目錄中,使得容器與主機共享PWN文件。

五、docker搭建測試環境

使用docker可以快速地搭建測試環境,方便進行測試和調試。下面是一個簡單的測試環境的Dockerfile示例:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
    mysql-client \
    curl \
    wget

這個Dockerfile使用了最新版的Ubuntu鏡像,並安裝了一些常用的測試工具,包括mysql客戶端、curl、wget等。可以根據實際需要安裝更多的工具。

構建鏡像之後,可以使用以下命令來啟動容器:

docker run -it \
    my-test-env

這個命令將啟動一個互動式的容器,可以在其中進行測試和調試工作。

六、docker搭建php

使用docker可以快速地搭建PHP開發環境,方便進行開發和測試。下面是一個簡單的PHP環境的Dockerfile示例:

FROM php:7.3-fpm
RUN apt-get update && apt-get install -y \
    libpng-dev \
    libjpeg-dev \
    libpq-dev \
    libzip-dev \
    zip \
    git
RUN pecl install xdebug \
    && docker-php-ext-enable xdebug
RUN docker-php-ext-configure gd \
    --with-jpeg-dir=/usr/lib \
    && docker-php-ext-install \
    gd \
    mysqli \
    pdo \
    pdo_pgsql \
    zip \
    opcache
WORKDIR /var/www/html

這個Dockerfile使用了php官方的鏡像,並安裝了一些常用的PHP擴展,包括gd、mysqli、pdo、pdo_pgsql等。同時,使用pecl安裝了xdebug調試工具,並且啟用了opcache加速。可以根據實際需要安裝更多的擴展。

構建鏡像之後,可以使用以下命令來啟動容器:

docker run -it \
    -v /path/to/php:/var/www/html \
    -p 8000:8000 \
    my-php-env

這個命令將啟動一個互動式的容器,同時將本地的/path/to/php目錄掛載到容器中的/var/www/html目錄中,使得容器與主機共享PHP文件。並將容器的8000埠映射到主機的8000埠。啟動容器後,在主機的瀏覽器中訪問http://localhost:8000,即可訪問容器中的PHP應用程序。

七、docker搭建itop

iTop是一款開源的IT服務管理軟體,可以幫助企業有效地管理服務請求、故障、變更和資產等信息。使用docker可以方便地搭建iTop環境。下面是一個iTop環境的Dockerfile示例:

FROM php:5.6-apache
RUN apt-get update && apt-get install -y \
    libxml2-dev \
    libpng12-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libmcrypt-dev \
    libldap2-dev \
    wget \
    unzip \
    cron \
    && docker-php-ext-install \
    soap \
    gd \
    mcrypt \
    ldap \
    mysql \
    && rm -rf /var/lib/apt/lists/*
RUN a2enmod rewrite
WORKDIR /var/www/html
RUN wget -O iTop.tar.gz https://sourceforge.net/projects/itop/files/latest/download \
    && tar zxvf iTop.tar.gz \
    && chown -R www-data:www-data /var/www/html/itop
COPY config-itop.php /var/www/html/itop/conf/config-itop.php

這個Dockerfile使用了php官方的鏡像,並安裝了一些iTop需要的PHP擴展,包括soap、gd、mcrypt、ldap、mysql等。同時,安裝了Apache伺服器,並啟用了rewrite模塊。以及下載了iTop的最新版本,並修改了iTop的配置文件。可以根據實際需要安裝更多的擴展。

構建鏡像之後,可以使用以下命令來啟動容器:

docker run -d \
    -v /path/to/itop:/var/www/html \
    -p 8080:80 \
    my-itop-env

這個命令將啟動一個後台運行的容器,同時將本地的/path/to/itop目錄掛載到容器中的/var/www/html目錄中,使得容器與主機共享iTop文件。並將容器的80埠映射到主機的8080埠。啟動容器後,在主機的瀏覽器中訪問http://localhost:8080,即可進入iTop。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230461.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 18:16
下一篇 2024-12-10 18:17

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和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
  • 如何部署一個服務到一個環境

    本文將從多個方面對如何部署一個服務到一個環境進行詳細的闡述,包括環境準備、代碼編寫、打包部署等。 一、環境準備 1、確定部署環境的操作系統版本、運行時環境(如JDK、Node.js…

    編程 2025-04-29
  • Python開發環境包括

    Python作為一門高效、易讀易學的語言,已經被越來越多的開發者使用。而Python的開發環境也發展得越來越完善。本文將會從以下幾個方面對Python開發環境包括做詳細的闡述: 一…

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

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

    編程 2025-04-29
  • 內核驅動編譯環境代價分析

    內核驅動編譯環境是在Linux系統中編譯內核模塊的過程。本文通過分析內核驅動編譯環境的各個方面,包括編譯工具的選擇、編譯速度、編譯器選項等,來探討其代價所在,並提供一些優化的建議。…

    編程 2025-04-29
  • 如何使用cmd激活python虛擬環境

    Python虛擬環境是Python用來隔離項目所需包和依賴庫的工具,以免不同項目之間的依賴關係衝突。下面將從安裝虛擬環境、創建虛擬環境、激活虛擬環境這3個方面來詳細講解如何在cmd…

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

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

    編程 2025-04-28
  • Apache配置Python環境

    Apache是一款流行的Web伺服器軟體,事實上,很多時候我們需要在Web伺服器上使用Python程序做為數據處理和前端網頁開發語言,這時候,我們就需要在Apache中配置Pyth…

    編程 2025-04-28
  • Ubuntu系統激活Python環境

    本文將從以下幾個方面詳細介紹在Ubuntu系統中如何激活Python環境: 一、安裝Python 在Ubuntu系統中默認已經預裝了Python解釋器,可以通過以下命令來檢查: $…

    編程 2025-04-28

發表回復

登錄後才能評論