IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 开发工具-Docker搭建LNMP -> 正文阅读

[PHP知识库]开发工具-Docker搭建LNMP

git

完整文章地址

命令行搭建

安装mysql

1.mysql镜像拉取

从仓库中拉取对应的mysql镜像,注意如果不标注tag(版本号等),会默认使用lastest(最新版)这个版本

docekr pull mysql:5.6

2.创建mysql容器

docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=xy123456 --name xy_mysql mysql:5.6

参数说明:

  • -d 让容器在后台运行,如果没有这个条件,会在终端展示mysql加载过程,而且无法进行操作(在另一个终端查看,会发现mysql的容器正在运行中,关闭原来的终端,该容器并不会随之关闭)
  • -p 添加主机到容器的端口映射,3306是容器内mysql默认使用的端口号
  • -e 设置环境变量,这里是设置mysql的root用户的初始密码,这个必须设置,如果没有设置容器会被自动关停
  • –name 容器的名字,容器名必须唯一

3.进入mysql容器

容器启动后,我们可以进入运行中的容器查看mysql的相关文件

docker exec -ti xy_mysql /bin/bash

参数说明:

  • -t 在容器里生产一个伪终端
  • -i 对容器内的标准输入 (STDIN) 进行交互
  • exit命令是离开并关闭容器,但是由于容器还有任务所以不会关停

安装PHP

1.PHP镜像拉取

docker pull php:7.0-fpm

2.创建PHP容器

docker run -d -v /var/nginx/www/html:/var/www/html -p 9000:9000 --link xy_mysql:mysql --name xy_phpfpm php:fpm 

参数说明:

  • -p 添加主机到容器的端口映射,设定php使用9000端口
  • -v 添加目录映射,即主机上的/var/nginx/www/html和容器中/var/www/html目录是同步的,主机上的路径如果不存在,也会自动生成
  • –link 与另外一个容器建立起联系,这样我们就可以在当前容器中去使用另一个容器里的服务

3.创建文件

这时我们可以不进入容器内增加文件,而是可以在主机的挂载目录下添加文件

在/var/nginx/www/html目录下新建index.php文件

vim index.php

写入内容作为测试

因为docker需要在最高权限下运行,所有在主机上创建的目录需要最高权限访问

<?php phpinfo() ?>

安装nignx

1.nginx镜像拉取

这里拉取的就是最新版

docker pull nginx

2.创建nginx工具人容器

docker run -d -p 80:80 \
--link xy_phpfpm:phpfpm --name xy_nginx nginx

参数说明:

创建一个无挂载的容器,方便下一步提取出配置文件(如果挂载了,会导致复制配置文件时,一直与容器同步)

3.复制配置文件

容器的挂载只限于目录,如果直接挂载文件,其仍作为目录被处理

要实现文件同步,我们必须要先从容器中复制出一份配置文件(如果是直接新建一个,挂载时主机上的空白文件会同步到容器中)

 docker cp xy_nginx:/etc/nginx/nginx.conf /var/nginx/nginx.conf
 docker cp xy_nginx:/etc/nginx/conf.d/default.conf /var/nginx/conf.d/

参数说明:

  • docker cp 原路径:转移路径
  • 容器的路径用: 容器名:容器内文件路径表示
  • cp时路径上的目录必须存在(而挂载时,主机会自动创建不存在的目录)

4.创建nginx挂载容器

先把充当工具人的nginx容器删除

docker rm -f xy_nginx

重新创建一个带挂载的nginx容器

docker run -d -p 80:80 \
-v /var/nginx/nginx.conf:/ect/nginx/nginx.conf\
-v /var/nginx/conf.d/default.conf:/ect/nginx/conf.d/default.conf\
-v /var/nginx/www/html:/var/www/html\
--link xy_phpfpm:phpfpm --name xy_nginx nginx

参数说明:

  • -p 添加主机到容器的端口映射,nginx默认使用80端口,也是网页范围默认使用的端口
  • -v 挂载了三个文件到本地,其中/var/nginx/nginx.conf/var/nginx/conf.d/default.conf在本地同步了nginx两个重要的配置文件,/var/www/html则同步了nginx网页展示文件
  • 挂载时应该要保持最后一个文件相同

5.修改配置文件

修改nginx的配置文件让其监听php,这里可以直接在主机修改配置文件

主机:/var/nginx/conf.d/default.conf 容器:/ect/nginx/conf.d/default.conf

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        root           /var/www/html;
        fastcgi_pass   172.17.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

内容解析:

  • root为文件php根目录,所以修改为 /var/www/html
  • fastcgi_pass 修改为本地ip地址:php端口,注意使用回环地址也是不允许的
  • fastcgi_index为默认访问的页面
  • fastcgi_param应该改为 d o c u m e n t r o o t document_root documentr?ootfastcgi_script_name才能准确找到位置

6.配置出错处理方法

当配置文件出错时,容器将无法运行

  • 先查看日志,查找出错的地方
docker logs xy_nginx
  • 由于容器没有启动,我们无法直接进入容器修改,所以需要用docker cp下载出问题的文件,然后再通过cp覆盖问题文件
  • 如果该出错文件有挂载,在本地修改即可
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 10:38:00  更:2021-09-10 10:40:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:43:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码