zoukankan      html  css  js  c++  java
  • Docker Compose搭建LAMP环境

    最近买了《代码审计 企业级WEB代码安全架构》这本书,想要测试一下里面的一些漏洞,但是又不想弄脏我的工作环境,于是便学习了一下怎样用Docker来搭建LAMP环境。

    先建个文件夹,用来存我们接下来的文件。

    mkdir lamp
    cd lamp/
    

    然后写php-apache的dockerfile。
    自己写,不直接用image的原因是直接用image没装mysqli插件,连不上数据库。

    touch Dockerfile
    vi Dockerfile
    
    FROM php:apache
    RUN docker-php-ext-install mysqli
    EXPOSE 80
    

    接着就可以开始写docker-compse了(有的装docker会自带,没有的话手动装下就好)。

    touch docker-compose.yml
    vi docker-copmose.yml
    
    version: '3'
    services:
        web:
            build: 
                context: ./
                dockerfile: Dockerfile
            volumes: 
                - ./php:/var/www/html
            ports: 
                - 80:80
            depends_on:
                - db
        db:
            image: mysql
            command: --default-authentication-plugin=mysql_native_password
            restart: alawys
            environment: 
                MYSQL_ROOT_PASSWORD: root
            ports: 
                - 3306:3306
    

    检查一下有没有问题。

    docker-compose config
    

    然后就可以运行了。

    docker-compose up
    

    也可以加上-d参数让它在后台运行。

    docker-compose up -d
    

    接着就可以到php目录下写我们的php代码了。
    (php目录的owner是root,所以得先切换下owner,否则没有权限进行写操作。)

    chown username:usergroup php/
    

    测试下能不能正常连接到数据库。

    touch index.php
    vi index.php
    
    <?php
    $host = 'db';
    $user = 'root';
    $pass = 'root';
    $conn = new mysqli($db,$user,$pass);
    if($conn->connection_error)
    {
        echo $conn->connection_error;
    }
    else
    {  
        echo "Connected to Database Successfully.";
    }
    ?>
    

    访问localhost,成功。

    最后记一下我遇到的一个问题,就是连接docker的守护进程需要权限,所以每次都要加上sudo才能执行命令。
    解决办法就是把用户加进docker组.

    sudo useradd -aG docker $USER
    newgrp docker
    
  • 相关阅读:
    PHP SOAP
    PHP 笔记
    IIS PHP
    思途CMS
    HTML系列(2)基本的HTML标签(一)
    HTML系列(1)简介
    Python学习进程(14)异常处理
    Python学习进程(13)文件与IO
    Python学习进程(12)模块
    Python学习进程(11)日期和时间
  • 原文地址:https://www.cnblogs.com/rpish/p/12303343.html
Copyright © 2011-2022 走看看