码迷,mamicode.com
首页 > 其他好文 > 详细

Docker Compose搭建LAMP环境

时间:2020-02-13 14:44:31      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:工作   html   ati   image   index   The   chown   代码安全   自带   

最近买了《代码审计 企业级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

Docker Compose搭建LAMP环境

标签:工作   html   ati   image   index   The   chown   代码安全   自带   

原文地址:https://www.cnblogs.com/rpish/p/12303343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!