天天看点

WSL2配置docker和PHP

WSL2 配置docker和PHP

文章目录

    • WSL2 配置docker和PHP
      • 1.了解PHP
      • 2.WSL升级为WSL2
      • 3.WSL2上搭建docker
        • ①安装docker
        • ②基本使用
          • Ⅰ.开启关闭docker
      • 4.docker搭建PHP环境
        • ①PHP环境准备
          • 拉取`nginx`
        • ②Hello PHP(CLI命令行方式)
          • Ⅰ.拉取PHP镜像
          • Ⅱ.运行容器,端口映射
            • 查看容器
            • 移除容器
          • Ⅲ.进入PHP交互模式
          • Ⅳ.利用Linux的vi编辑器
          • Ⅴ.浏览器实现Hello PHP
            • 可以加入CSS样式
        • ③Hello PHP(HTTP服务器方式)
          • Ⅰ.拉取apache镜像
          • Ⅱ.运行容器,端口映射
          • Ⅲ.创建index.php,访问localhost:8000

1.了解PHP

来自百度百科:

​ PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中

2.WSL升级为WSL2

参考知乎文章:https://zhuanlan.zhihu.com/p/356397851、https://zhuanlan.zhihu.com/p/356396288

​ 可以在Win10家庭中文版安装Hyper-V,看上面文章✌️

3.WSL2上搭建docker

​ 何为docker,截图来自知乎:
WSL2配置docker和PHP

​ 通过此文:https://zhuanlan.zhihu.com/p/23599229了解docker基础知识

​ 还有此文:https://zhuanlan.zhihu.com/p/187505981

​ and this:Docker容器和镜像的区别

①安装docker

​ 具体步骤当时忘记记录了…不过大体上和这篇博客还有这篇上的原生linux安装docker方式差不多

​ 噢噢想起来了,还看了这个:https://www.bilibili.com/video/BV1nt4y1k7Fy?from=search&seid=7494207446618727184

②基本使用

Ⅰ.开启关闭docker

开启docker,一开始网上查的是

systemctl start docker

WSL2配置docker和PHP

查询原因 :博客链接

下面两张图均来自上方那个链接
WSL2配置docker和PHP
WSL2配置docker和PHP
  • 故启动为:
sudo service docker start
           
WSL2配置docker和PHP
  • 关闭为:
service docker stop
           
WSL2配置docker和PHP
  • 查看状态为:
service docker status
           
WSL2配置docker和PHP
WSL2配置docker和PHP
WSL2配置docker和PHP

4.docker搭建PHP环境

①PHP环境准备

sudo apt update
sudo apt install php
sudo apt install libapache2-mod-php
           
WSL2配置docker和PHP
WSL2配置docker和PHP
Apache是啥:
  • 来自百度百科:
    WSL2配置docker和PHP
  • B站上的简介:

    https://www.bilibili.com/video/BV1zE411v7LW?from=search&seid=4016853372192845543&spm_id_from=333.337.0.0

拉取

nginx

参考教程:B站 Windows10开发环境搭建(3)在WSL2里安装Docker

(大概从六分半开始讲

nginx

)

WSL2配置docker和PHP
WSL2配置docker和PHP
WSL2配置docker和PHP

②Hello PHP(CLI命令行方式)

Ⅰ.拉取PHP镜像
​ 我拉了两个

​ 一个是参考👉这个教程拉的

php:7.2.0-cli-alpine3.6

另一个是:

docker pull php:7.4-cli-alpine
           
Ⅱ.运行容器,端口映射

​ 参考:

​ docker的基本命令

​ Linux命令行选项单横线“-”与双横线“–”的区别

docker run -it --name php-7.4-cli -p 80:80 php:7.4-cli-alpine sh
           

docker run

​ 👉关于docker run it 的 it

​ 👉docker run命令参数及使用(含例子)

WSL2配置docker和PHP

根据这些参数的解释,那么上面那个docker run命令的意思大概就是:

使用镜像php:7.4-cli-alpine 以交互模式启动一个容器,将容器的80端口映射到主机的80端口,并将容器命名为php-7.4-cli

至于上面的sh,是指linux的sh命令吗?我还没确定,不过我瞎查了一通…感觉和bash差不多

WSL2配置docker和PHP
WSL2配置docker和PHP
WSL2配置docker和PHP
​ 简书文章:/bin/bash和/bin/sh的区别
WSL2配置docker和PHP
WSL2配置docker和PHP

查看容器

参考文章:创建新Docker容器时出现“The container name “/xxx” is already in use by container xxxxxxxxxxx…”问题的解决办法
​ 如果在容器没有移除之前,使用两次这种命令:

docker run -it --name php-7.4-cli -p 80:80 php:7.4-cli-alpine sh

,就会抛出already in use 的错误
  • 查看镜像
docker images
           
WSL2配置docker和PHP
  • 查看容器
    • 查看所有容器(包括停止状态的)
      docker-ps-a
                 
      WSL2配置docker和PHP
      ​ exited是指非运行状态
    • 查看当前运行的容器

移除容器

​ 移除容器之前要先停止正在运行的容器,参考:You cannot remove a running container
docker stop 容器的ID
           
WSL2配置docker和PHP

此时再次使用docker ps -a就能看到对应的容器已经被移除

Ⅲ.进入PHP交互模式
WSL2配置docker和PHP
​ 啊突然发现之前好多次没反应是因为…没加分号
Ⅳ.利用Linux的vi编辑器
  • 先退出刚刚的php交互环境
  • 然后按照这个步骤来:
WSL2配置docker和PHP

​ 链接:Linux cd命令cd、 cd ~、cd /、cd…/、cd /home讲解

​ Linux vi命令(vi编辑器)30分钟入门教程

WSL2配置docker和PHP
WSL2配置docker和PHP
Ⅴ.浏览器实现Hello PHP
  • 输入指令
php -S 0.0.0.0:80
           
WSL2配置docker和PHP
  • 在浏览器中访问虚拟机IP

    输入

    localhost

    或者

    127.0.0.1

    或者

    127.0.0.1:80

WSL2配置docker和PHP
  • 或者重新打开一个WSL2窗口,使用curl命令

    ​ 不要把php -S那个中断掉,否则访问不了

    WSL2配置docker和PHP
    ​ 关于

    curl

    命令
WSL2配置docker和PHP
​ 会有记录:
WSL2配置docker和PHP

可以加入CSS样式

vi index.php
           
  • 进入页面
    WSL2配置docker和PHP
  • 进行修改,按

    i

    进入插入模式
    <?php echo "<h1 style='color:red'>hello PHP!</h1>";?>
               
  • esc

    ,输入

    :wq

    回车退出并保存
  • 重新开启服务
php -S 0.0.0.0:80
           

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJpjbSA2-1630650398145)(https://cdn.jsdelivr.net/gh/xin007-kong/picture_new/img/20210903114838.png)]

  • 重新访问
WSL2配置docker和PHP
WSL2配置docker和PHP

③Hello PHP(HTTP服务器方式)

​ 参考:Windows访问WSL里的Apache服务
Ⅰ.拉取apache镜像
docker pull php:7.4-apache
           
WSL2配置docker和PHP
Ⅱ.运行容器,端口映射
mkdir html #在虚拟机里新建一个html文件夹
cd html
docker run -d --name php-7.4-apache -p 8000:80 -v "$PWD":/var/www/html php:7.4-apache
           
WSL2配置docker和PHP
Ⅲ.创建index.php,访问localhost:8000

在没有创建index.php之前就去访问,会出现这个:

WSL2配置docker和PHP
​ 我查了好多资料说去修改apache的配置文件,但我在WSL2上一直找不到网上那些在Linux系统里说的路径,差点以为没救了…
​ 然后创建了个php文件…发现可以访问!
WSL2配置docker和PHP
WSL2配置docker和PHP
  • 这时我用docker stop +这个容器的ID,就可以停止,这时候访问

    localhost:8000

WSL2配置docker和PHP
  • 再使用docker start,就又可以访问了