使用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ǔ)鏡像制作過(guò)程,可以參考之前的文章,地址如下:nginx+php的新基礎(chǔ)鏡像制作全過(guò)程_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: bridge
3、編寫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、啟動(dòng)openresty,執(zhí)行如下命令。
docker-compose up -d
5、檢查服務(wù)是否正常運(yùn)行,執(zhí)行如下命令。
docker-compose ps -a
返回如下內(nèi)容,說(shuō)明服務(wù)已正常啟動(dòng),正在運(yùn)行。
6、檢查請(qǐng)求是否正常,執(zhí)行如下命令。
curl http://127.0.0.1
請(qǐng)求正常,會(huì)返回nginx配置的內(nèi)容,比如下面這樣。
7、至此openresty已部署完成,并且可以正常運(yùn)行響應(yīng)請(qǐng)求。
二、部署php服務(wù)
1、創(chuàng)建test1項(xiàng)目相關(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: bridge
4、啟動(dòng)test1項(xiàng)目,執(zhí)行如下命令。
docker-compose up -d
5、檢查項(xiàng)目是否正常運(yùn)行,執(zhí)行如下命令。
docker-compose ps -a
返回如下內(nèi)容,說(shuō)明項(xiàng)目已正常啟動(dòng),正在運(yùn)行。
6、檢查項(xiàng)目請(qǐng)求是否可以正常響應(yīng),執(zhí)行如下命令。
curl http://127.0.0.1:8081/index.php
請(qǐng)求正常會(huì)返回如下內(nèi)容。
7、至此test1項(xiàng)目已正常部署完成。
三、項(xiàng)目配置對(duì)外提供服務(wù)
1、前面的test1項(xiàng)目雖然可以正常提供服務(wù)了,但是也只限制與內(nèi)網(wǎng)當(dāng)中;如果需要對(duì)外提供服務(wù)需要加上openresty配合。
2、修改nginx配置增加域名請(qǐng)求,在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;此刻沒(méi)有域名的可以通過(guò)修改hosts實(shí)現(xiàn),執(zhí)行如下命令。
vim /etc/hosts #增加一行內(nèi)容如下 127.0.0.1 test1.ayzen.cn
5、驗(yàn)證請(qǐng)求是否可以正常代理到test1容器,執(zhí)行如下命令。
curl http://test1.ayzen.cn/index.php
如果請(qǐng)求正常返回如下內(nèi)容,說(shuō)明配置已生效。
6、至此,代理配置已完成,test1可以正常對(duì)外提供服務(wù)了。
總結(jié)
如何使用docker部署php服務(wù),簡(jiǎn)單來(lái)說(shuō)只需要三個(gè)步驟。
1、使用docker運(yùn)行openresty容器;
2、部署php服務(wù);
3、配置域名;
因?yàn)檠菔镜脑?,php項(xiàng)目只有一個(gè)index.php文件。在使用過(guò)程中可以替換成真正的項(xiàng)目代碼。
到此這篇關(guān)于使用docker部署php服務(wù)的詳細(xì)步驟的文章就介紹到這了,更多相關(guān)docker部署php服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker使用dockercompose編排一個(gè)Hadoop集群方式
這篇文章主要介紹了docker使用dockercompose編排一個(gè)Hadoop集群方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01docker部署Nestjs的簡(jiǎn)單配置實(shí)現(xiàn)
使用Docker部署NestJS應(yīng)用程序可以確保在不同的環(huán)境中運(yùn)行一致,并且避免了由于依賴關(guān)系或配置問(wèn)題導(dǎo)致的部署錯(cuò)誤,本文主要介紹了docker來(lái)部署Nestjs的簡(jiǎn)單配置,感興趣的可以了解一下2024-02-02使用Dockerfile構(gòu)建java web環(huán)境
用dockerfile構(gòu)建一個(gè)Java的web環(huán)境,主要分為2步,第一步是在鏡像中安裝jdk并配置環(huán)境變量,第二步是安裝tomcat,下面分步驟給大家詳細(xì)介紹,一起看看吧2016-12-12docker如何動(dòng)態(tài)查看日志最后100行
這篇文章主要介紹了docker如何動(dòng)態(tài)查看日志最后100行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教<BR>2024-01-01詳解如何用docker安裝laravel開(kāi)發(fā)環(huán)境
本篇文章主要介紹了詳解如何用docker安裝laravel開(kāi)發(fā)環(huán)境,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02pod污點(diǎn)taint?與容忍度tolerations詳解
這篇文章主要為大家介紹了pod污點(diǎn)taint與容忍度tolerations示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Docker網(wǎng)絡(luò)配置(橋接網(wǎng)絡(luò)和自定義網(wǎng)絡(luò))自定義網(wǎng)絡(luò)設(shè)置ip方式
這篇文章主要介紹了Docker網(wǎng)絡(luò)配置(橋接網(wǎng)絡(luò)和自定義網(wǎng)絡(luò))自定義網(wǎng)絡(luò)設(shè)置ip方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01