php实例实践作业,2020系统综合实践 第3次实践作业

完成Docker-compose的安装

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

docker-compose --version

8d9218a040f2ed70e9aa7456c1b2de9b.png

Dockerfile编写

使用docker pull 下载各自的镜像(nginx 与mysql已经下载了)

5d431cda9a742ba7acb4d2f9314b1386.png

创建如下各个文件

8849af126001d707412615a0f4b3aef9.png

html

#index.html

welcome to lyhnginx

#index.php

mysql

#Dockerfile

#基础镜像

FROM mysql:5.7

#维护者信息

MAINTAINER lyh

nginx

#Dockerfile

# Base images 基础镜像

FROM nginx:latest

#MAINTAINER 维护者信息

MAINTAINER lyh

#default.conf

server {

listen 80;

server_name localhost;

location / {

root /var/www/html;

index index.html index.htm index.php; # 增加index.php

}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /var/www/html;

}

location ~ \.php$ {

root /var/www/html; # 代码目录

fastcgi_pass phpfpm:9000; # 修改为phpfpm容器

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 修改为$document_root

include fastcgi_params;

}

}

phpfpm

#Dockerfile

FROM php:5.6-fpm

RUN apt-get update && apt-get install -y \

libfreetype6-dev \

libjpeg62-turbo-dev \

libpng12*-dev \

vim \

&& docker-php-ext-install pdo_mysql \

&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \

&& docker-php-ext-install gd \

使用Compose实现多容器运行机制

docker-compose.yml

version: "3"

services:

nginx:

build: ./nginx

ports:

- "80:80"

links:

- "phpfpm"

volumes:

- ./html/:/var/www/html/

- ./nginx/conf/default.conf:/etc/nginx/conf.d/default.conf

phpfpm:

build: ./phpfpm

ports:

- "9000:9000"

volumes:

- ./html/:/var/www/html/

links:

- "mysql"

mysql:

build: ./mysql

ports:

- "3306:3306"

volumes:

- ./mysql/data/:/var/lib/mysql/

environment:

MYSQL_ROOT_PASSWORD : 123456

在compose文件夹打开终端

sudo su

docker-compose up -d

75d993de7834debccb991037ad92c50b.png

构建成功如下

7de0b85725c56d84376ff35db9ce9fab.png

服务测试

参考资料:菜鸟教程

测试访问index.html和index.php,

e4e59b7d893c2f5f370021a31ab438ae.png

3b0174fd712a8dc1e7941f599db4b13c.png

我装的PHP有PDO,所以采用PDO去连接数据库并进行操作

5df50562138f18f9cea2d9758ed4afc2.png

尝试连接mysql

servername我采用本地的IP地址

eca861380ef0c2767df07201ccd83507.png

在web显示

1427a65aa0a2dcd6723f612c1ca21e7c.png

创建数据库

编辑index.php

f0bced0eb2e3c80bf6df6b091d7b490d.png

web显示

f15492402699e96add55e537807a4e65.png

用终端进入mysql容器,查看数据库是否创建成功

17812d30b93a90d53f25bb7eb7b7dfe8.png

c46a398dd5420fd3b6b3925b8c4065b4.png

在数据库内建表

32843838da39b860bdb2e940b935de4f.png

web显示

a701ca28a78c390e82cb58a419a30e26.png

在容器中查看建表是否成功

21249168ea5f63adf5262a1daafdf1a7.png

插入数据

2adb2770ec588b951b939e35525cc0a8.png

web显示

3c80a1aea3926306cfea86a60bbf8979.png

在容器中查看插入数据是否成功

92dc0b2e6d6b4f2c232ee3a65f17cdae.png

修改数据

53f64181889ef4fb243a84be2c121a11.png

web显示

dc8a4857d6d4053fa6082ab804ec9c68.png

在容器中查看修改数据是否成功

e7b1daefe315a28ecaa30061984a223a.png

删除数据

d5ffd91b62e5f2fd4c9e9707053ebf5e.png

web显示

566dcc4501590f10e88a6f6a7c5b51ae.png

在容器中查看删除数据是否成功

16d2c3ffed491b4de903d364aaf6b359.png

增加phpmyadmin

pull phpmyadmin

bedf94bc26f0b8f2811bdcee03aa6c46.png

在文件夹compose中创建如下文件

878892300689cff07f57adecd6681d9e.png

Dockerfile

#Dockerfile

FROM phpmyadmin/phpmyadmin:latest

在docker-compose.yml文件末端加上

phpmyadmin:

build: ./phpmyadmin

container_name: "phpmyadmin"

ports:

- "9090:80"

links:

- "mysql"

environment:

- PMA_ARBITRARY=1

在web端使用phpmyadmin

cf86ab855a288c52766012e797a97094.png

用自己数据库的账号密码进入

0611a92387dcb772fe99b89068b8c084.png

之前建的数据库

906e99c5b6043ae3687fa5d87f13aad5.png

使用phpmyadmin插入数据

c53f497b4f8309fc4a5e58c139f89049.png

使用phpmyadmin查看结果

e49c79fa913841ee3b29b8987499e2da.png

使用终端查看

6eb82a6180c6b0c12c6752d096051a77.png

遇到的困难

创建LNMP环境时nginx报错。

我的default文件文件名打错了,害我百度了半天,所以还是要注意这些细节

使用php连接MySQL失败

使用localhost作为servername时出现下列错误

e7ddf647065912a96eb23bdfe11c4af2.png

使用127.0.0.1作为servername时出现下列错误

7d20f241563c52b9043c7cee5178154c.png

最终我直接使用本机的IP地址才成功

可以使用ifconfig -a查看IP地址

6fa8e2ee67676e74669336af1891654b.png

这次作业大约用了我12个小时左右吧,对于这些镜像的了解更深了,也了解了docker compose的一些使用,但是还是有许多坑啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值