第一步:安裝Docker
訪問下面地址,根據(jù)你的需要下載安裝docker運(yùn)行環(huán)境。
下載docker desktophttps://www.docker.com/
如果你是Windows、macOS(Intel/M1)、Linux桌面OS,都可以下載到對應(yīng)版本進(jìn)行安裝,相對命令行方式,更加簡單方便。
安裝完成后,運(yùn)行docker desktop,顯示如下界面:
在任務(wù)欄中會顯示docker的logo,這里以windows為例。
使用Windows系統(tǒng)下PowerShell或MacOS下終端.app,在命令行輸入
$ docker -v
如果docker運(yùn)行環(huán)境安裝成功,將顯示當(dāng)前Docker的版本號。
第二步:安裝Nginx
使用docker pull命令,在線拉取nginx鏡像,如果沒有特殊版本需求,可直接輸入nginx:latest
$ docker pull nginx:latest
在docker desktop上,可以點擊images選項進(jìn)行查看,鏡像是否拉取成功。
?
?也可以通過命令行進(jìn)行查看:
$ docker images
?
第三步:安裝PHP
這里我們選擇7.4版本的php,如果沒有版本需求,也可以輸入php:latest
$ docker pull php:7.4-fpm
第四步:啟動PHP容器
$ docker run --name myphp-fpm -v /docker/nginx/www:/www -d ef0ed3bc573e
其中,myphp-fpm是我給php容器起的名字,/docker/nginx/www是我在本地創(chuàng)建的一個文件目錄,用來對應(yīng)docker的www,ef0ed3bc573e是php的鏡像ID。
容器啟動正常,在docker desktop的Containers選項中可以看到如下記錄,Status顯示running,代表容器啟動成功。
也可以使用命令行來查看
$ docker ps
第五步:啟動Nginx容器并關(guān)聯(lián)PHP,這一步很重要。
網(wǎng)上關(guān)于這一方面的介紹很多,但是很多描述的不清晰,對最新版本的兼容也不是很好。
$ docker run --name nginx -p 8080:80 -d -v /docker/nginx/www:/usr/share/nginx/html -v /docker/nginx/conf/conf.d:/etc/nginx/conf.d --link myphp-fpm:php nginx:latest
$ docker run --name nginx -p 8080:80 -d -v /docker/nginx/www:/usr/share/nginx/html -v /docker/nginx/conf/conf.d:/etc/nginx/conf.d --link myphp-fpm:php nginx:latest
這里要說明一下,筆者也是試過很多次才正常運(yùn)行的,如果這一步操作不對,那么PHP就無法真長使用。
其中nginx是我起的nginx容器的名字
8080:80代表,通過瀏覽器訪問8080端口,在docker中對應(yīng)的是80端口
/docker/nginx/www是本地的掛載目錄,windows下也可以c:/docker/...加上盤符,/usr/share/nginx/html是nginx默認(rèn)的網(wǎng)頁root路徑
/docker/nginx/conf/conf.d是本地的掛載目錄,對應(yīng)的nginx路徑是/etc/nginx/conf.d,這個文件夾主要用于存放default.conf配置文件。
--link myphp-fpm:php 這個參數(shù)很重要,代表運(yùn)行nginx的時候要關(guān)聯(lián)php容器。
很多朋友在嘗試該步操作的時候,會出現(xiàn)很多各種各樣的錯誤,例如缺少參數(shù),容器運(yùn)行失敗等等。以上示例,請大家參考。
執(zhí)行結(jié)果:
容器運(yùn)行狀態(tài):
?第六部:復(fù)制配置文件和網(wǎng)頁文件到nginx容器中。
執(zhí)行到這一步,雖然nginx和php容器都已經(jīng)運(yùn)行正常了,但是你通過瀏覽器訪問還是404。
原因在于nginx容器中沒有default.conf和index.php文件。所以,最后一步就是cp這兩個文件到nginx容器的制定目錄下,然后再重啟nginx容器。
$ docker cp /docker/nginx/www/index.php nginx:/usr/share/nginx/html
$ docker cp /docker/nginx/conf/conf.d/default.conf nginx:/etc/nginx/conf.d
這里給出index.php的內(nèi)容:
<?php
echo phpinfo();
?>
和default.conf的內(nèi)容:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#fastcgi_pass 127.0.0.1:9000
location ~ \.php$ {
fastcgi_pass myphp-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
最后通過瀏覽器訪問:
http://localhost:8080或者h(yuǎn)ttp://127.0.0.1:8080
至此,大功告成!文章來源:http://www.zghlxwxcb.cn/news/detail-471488.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-471488.html
到了這里,關(guān)于Docker部署nginx+php環(huán)境,簡單可用!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!