WSL2配置docker和PHP
WSL2 配置docker和PHP
文章目錄
- WSL2 配置docker和PHP
- 1.了解PHP
- 2.WSL升級(jí)為WSL2
- 3.WSL2上搭建docker
- ①安裝docker
- ②基本使用
- Ⅰ.開啟關(guān)閉docker
- 4.docker搭建PHP環(huán)境
- ①PHP環(huán)境準(zhǔn)備
- 拉取`nginx`
- ②Hello PHP(CLI命令行方式)
- Ⅰ.拉取PHP鏡像
- Ⅱ.運(yùn)行容器,端口映射
- 查看容器
- 移除容器
- Ⅲ.進(jìn)入PHP交互模式
- Ⅳ.利用Linux的vi編輯器
- Ⅴ.瀏覽器實(shí)現(xiàn)Hello PHP
- 可以加入CSS樣式
- ③Hello PHP(HTTP服務(wù)器方式)
- Ⅰ.拉取apache鏡像
- Ⅱ.運(yùn)行容器,端口映射
- Ⅲ.創(chuàng)建index.php,訪問localhost:8000
1.了解PHP
來自百度百科:
? PHP(PHP: Hypertext Preprocessor)即“超文本預(yù)處理器”,是在服務(wù)器端執(zhí)行的腳本語言,尤其適用于Web開發(fā)并可嵌入HTML中
2.WSL升級(jí)為WSL2
參考知乎文章:https://zhuanlan.zhihu.com/p/356397851、https://zhuanlan.zhihu.com/p/356396288
? 可以在Win10家庭中文版安裝Hyper-V,看上面文章??
3.WSL2上搭建docker
? 何為docker,截圖來自知乎:
? 通過此文:https://zhuanlan.zhihu.com/p/23599229了解docker基礎(chǔ)知識(shí)
? 還有此文:https://zhuanlan.zhihu.com/p/187505981
? and this:Docker容器和鏡像的區(qū)別
①安裝docker
? 具體步驟當(dāng)時(shí)忘記記錄了…不過大體上和這篇博客還有這篇上的原生linux安裝docker方式差不多
? 噢噢想起來了,還看了這個(gè):https://www.bilibili.com/video/BV1nt4y1k7Fy?from=search&seid=7494207446618727184
②基本使用
Ⅰ.開啟關(guān)閉docker
開啟docker,一開始網(wǎng)上查的是systemctl start docker
查詢?cè)?:博客鏈接
下面兩張圖均來自上方那個(gè)鏈接
?
- 故啟動(dòng)為:
- 關(guān)閉為:
- 查看狀態(tài)為:
4.docker搭建PHP環(huán)境
①PHP環(huán)境準(zhǔn)備
sudo apt update sudo apt install php sudo apt install libapache2-mod-phpApache是啥:
-
來自百度百科:
-
B站上的簡(jiǎn)介:
https://www.bilibili.com/video/BV1zE411v7LW?from=search&seid=4016853372192845543&spm_id_from=333.337.0.0
拉取nginx
參考教程:B站 Windows10開發(fā)環(huán)境搭建(3)在WSL2里安裝Docker
(大概從六分半開始講nginx)
②Hello PHP(CLI命令行方式)
Ⅰ.拉取PHP鏡像
? 我拉了兩個(gè)
? 一個(gè)是參考👉這個(gè)教程拉的php:7.2.0-cli-alpine3.6
另一個(gè)是:
docker pull php:7.4-cli-alpineⅡ.運(yùn)行容器,端口映射
? 參考:
? docker的基本命令
? Linux命令行選項(xiàng)單橫線“-”與雙橫線“–”的區(qū)別
docker run -it --name php-7.4-cli -p 80:80 php:7.4-cli-alpine sh? docker run
? 👉關(guān)于docker run it 的 it
? 👉docker run命令參數(shù)及使用(含例子)
根據(jù)這些參數(shù)的解釋,那么上面那個(gè)docker run命令的意思大概就是:
使用鏡像php:7.4-cli-alpine 以交互模式啟動(dòng)一個(gè)容器,將容器的80端口映射到主機(jī)的80端口,并將容器命名為php-7.4-cli
至于上面的sh,是指linux的sh命令嗎?我還沒確定,不過我瞎查了一通…感覺和bash差不多
?
? 簡(jiǎn)書文章:/bin/bash和/bin/sh的區(qū)別
?
?
查看容器
參考文章:創(chuàng)建新Docker容器時(shí)出現(xiàn)“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,就會(huì)拋出already in use 的錯(cuò)誤
- 查看鏡像
-
查看容器
-
查看所有容器(包括停止?fàn)顟B(tài)的)
docker-ps-a? exited是指非運(yùn)行狀態(tài)
-
查看當(dāng)前運(yùn)行的容器
docker ps
-
移除容器
? 移除容器之前要先停止正在運(yùn)行的容器,參考:You cannot remove a running container
docker stop 容器的ID docker rm 所要移除容器的ID(CONTAINER ID)此時(shí)再次使用docker ps -a就能看到對(duì)應(yīng)的容器已經(jīng)被移除
Ⅲ.進(jìn)入PHP交互模式
? 啊突然發(fā)現(xiàn)之前好多次沒反應(yīng)是因?yàn)椤瓫]加分號(hào)
Ⅳ.利用Linux的vi編輯器
-
先退出剛剛的php交互環(huán)境
-
然后按照這個(gè)步驟來:
? 鏈接:Linux cd命令cd、 cd ~、cd /、cd…/、cd /home講解
? Linux vi命令(vi編輯器)30分鐘入門教程
Ⅴ.瀏覽器實(shí)現(xiàn)Hello PHP
- 輸入指令
-
在瀏覽器中訪問虛擬機(jī)IP
輸入localhost或者127.0.0.1或者127.0.0.1:80
-
或者重新打開一個(gè)WSL2窗口,使用curl命令
? 不要把php -S那個(gè)中斷掉,否則訪問不了
?
? 關(guān)于curl命令
? 會(huì)有記錄:
可以加入CSS樣式
-
進(jìn)入頁面
-
進(jìn)行修改,按i進(jìn)入插入模式
<?php echo "<h1 style='color:red'>hello PHP!</h1>";?> -
按esc,輸入:wq回車退出并保存
-
重新開啟服務(wù)
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-kJpjbSA2-1630650398145)(https://cdn.jsdelivr.net/gh/xin007-kong/picture_new/img/20210903114838.png)]
- 重新訪問
③Hello PHP(HTTP服務(wù)器方式)
? 參考:Windows訪問WSL里的Apache服務(wù)
Ⅰ.拉取apache鏡像
docker pull php:7.4-apacheⅡ.運(yùn)行容器,端口映射
mkdir html #在虛擬機(jī)里新建一個(gè)html文件夾 cd html docker run -d --name php-7.4-apache -p 8000:80 -v "$PWD":/var/www/html php:7.4-apacheⅢ.創(chuàng)建index.php,訪問localhost:8000
在沒有創(chuàng)建index.php之前就去訪問,會(huì)出現(xiàn)這個(gè):
? 我查了好多資料說去修改apache的配置文件,但我在WSL2上一直找不到網(wǎng)上那些在Linux系統(tǒng)里說的路徑,差點(diǎn)以為沒救了…
? 然后創(chuàng)建了個(gè)php文件…發(fā)現(xiàn)可以訪問!
- 這時(shí)我用docker stop +這個(gè)容器的ID,就可以停止,這時(shí)候訪問localhost:8000
- 再使用docker start,就又可以訪問了
總結(jié)
以上是生活随笔為你收集整理的WSL2配置docker和PHP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用友U9 SOA引领企业IT架构全面升级
- 下一篇: 织梦php数据库修改密码,如何使用php