使用docker部署php服務(wù)的詳細(xì)步驟
前言
前期準(zhǔn)備,服務(wù)器需要先安裝好docker、docker-compose,文章內(nèi)容不涉及如何安裝docker的相關(guān)內(nèi)容。
制作的內(nèi)容,使用nginx+php的新基礎(chǔ)鏡像部署php服務(wù),然后使用openresty做反向代理。
nginx+php的新基礎(chǔ)鏡像制作過程,可以參考之前的文章,地址如下:nginx+php的新基礎(chǔ)鏡像制作全過程_nginx_腳本之家 (jb51.net)
一、安裝openresty
1、創(chuàng)建openresty相關(guān)目錄,執(zhí)行如下命令。
mkdir -p /docker/openresty/{conf.d,logs,html,cert}
cd /docker/openresty/2、編寫yaml文件,內(nèi)容如下;version替換成自己的docker-compose版本。
vim docker-compose.yml
version: '2.2.2'
services:
openresty:
image: openresty/openresty
restart: unless-stopped
ports:
- "80:80"
- "443:443"
container_name: openresty
volumes:
- "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"
- "./conf.d:/usr/local/openresty/nginx/conf/conf.d"
- "./html:/usr/local/openresty/nginx/html"
- "./logs:/usr/local/openresty/nginx/logs"
- "./cert:/usr/local/openresty/nginx/cert"
networks:
- mynet
networks:
mynet:
name: mynet
driver: bridge3、編寫nginx配置,內(nèi)容如下。
vim nginx.conf
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 80;
location / {
default_type text/html;
content_by_lua_block {
ngx.say("<p>hello, ayzen!$</p>")
}
}
}
}4、啟動openresty,執(zhí)行如下命令。
docker-compose up -d
5、檢查服務(wù)是否正常運行,執(zhí)行如下命令。
docker-compose ps -a
返回如下內(nèi)容,說明服務(wù)已正常啟動,正在運行。

6、檢查請求是否正常,執(zhí)行如下命令。
curl http://127.0.0.1
請求正常,會返回nginx配置的內(nèi)容,比如下面這樣。

7、至此openresty已部署完成,并且可以正常運行響應(yīng)請求。
二、部署php服務(wù)
1、創(chuàng)建test1項目相關(guān)目錄,執(zhí)行如下命令。
mkdir -p /docker/test1/html cd /docker/test1/
2、編寫index.php文件,內(nèi)容如下。
vim html/index.php <?php echo "hello ayzen!this is test1!\r\n";
3、編寫yaml文件,內(nèi)容如下;version替換成自己的docker-compose版本。
vim docker-compose.yml
version: '2.2.2'
services:
web:
image: ayzen/nginx-php8.3.3
ports:
- "8081:80"
container_name: test1
command: ["/start.sh"]
volumes:
- "./html:/usr/local/nginx/html"
networks:
- mynet
networks:
mynet:
name: mynet
driver: bridge4、啟動test1項目,執(zhí)行如下命令。
docker-compose up -d
5、檢查項目是否正常運行,執(zhí)行如下命令。
docker-compose ps -a
返回如下內(nèi)容,說明項目已正常啟動,正在運行。

6、檢查項目請求是否可以正常響應(yīng),執(zhí)行如下命令。
curl http://127.0.0.1:8081/index.php
請求正常會返回如下內(nèi)容。

7、至此test1項目已正常部署完成。
三、項目配置對外提供服務(wù)
1、前面的test1項目雖然可以正常提供服務(wù)了,但是也只限制與內(nèi)網(wǎng)當(dāng)中;如果需要對外提供服務(wù)需要加上openresty配合。
2、修改nginx配置增加域名請求,在http模塊增加server內(nèi)容如下。
server {
listen 80;
server_name test1.ayzen.cn;
location / {
proxy_pass http://test1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}3、重啟openresty,執(zhí)行如下命令。
docker-compose down && docker-compose up -d
4、域名解析,將test1.ayzen.cn指向服務(wù)器IP;此刻沒有域名的可以通過修改hosts實現(xiàn),執(zhí)行如下命令。
vim /etc/hosts #增加一行內(nèi)容如下 127.0.0.1 test1.ayzen.cn
5、驗證請求是否可以正常代理到test1容器,執(zhí)行如下命令。
curl http://test1.ayzen.cn/index.php
如果請求正常返回如下內(nèi)容,說明配置已生效。

6、至此,代理配置已完成,test1可以正常對外提供服務(wù)了。
總結(jié)
如何使用docker部署php服務(wù),簡單來說只需要三個步驟。
1、使用docker運行openresty容器;
2、部署php服務(wù);
3、配置域名;
因為演示的原因,php項目只有一個index.php文件。在使用過程中可以替換成真正的項目代碼。
到此這篇關(guān)于使用docker部署php服務(wù)的詳細(xì)步驟的文章就介紹到這了,更多相關(guān)docker部署php服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker實現(xiàn)進(jìn)入容器內(nèi)部的方法
這篇文章主要介紹了Docker實現(xiàn)進(jìn)入容器內(nèi)部的方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
Dockerfile中ENTRYPOINT 和 CMD的區(qū)別說明
這篇文章主要介紹了Dockerfile中ENTRYPOINT 和 CMD的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
在Docker中的ubuntu中安裝Python3和Pip的問題
這篇文章主要介紹了在Docker中的ubuntu中安裝Python3和Pip的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
解決Docker Desktop運行一直轉(zhuǎn)問題
遇到Docker啟動報錯、Docker Desktop運行不正常等問題,常見解決方案包括以管理員身份運行CMD,重啟Docker服務(wù),恢復(fù)Docker Desktop出廠設(shè)置,啟用Windows功能等,最終通過運行cmd命令"netsh winsock reset"解決問題,但需注意此操作可能導(dǎo)致Docker鏡像丟失2024-09-09

