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
相关推荐
qdqht00 2020-05-09
王志龙 2020-06-14
wys 2020-06-10
80327065 2020-06-08
林大鹏 2020-05-29
itmale 2020-03-03
Skyline 2020-02-21
stoneechogx 2020-02-17
happinessaflower 2020-02-14
逆时针 2020-02-10
wintershii 2020-02-02
wensonlee 2019-12-30
byourb 2019-12-29
全文使用的环境如题,主机使用的是腾讯云主机。内容应该会是linux和apache这些所有部分都有一点,因为是遇见一个问题就记录一个。 尝试清除浏览器缓存/换一个浏览器验证/重启服务器的apache服务
登峰小蚁 2019-12-26
85590296 2019-12-16
JF0 2019-12-14