nginx+php的新基礎(chǔ)鏡像制作全過程
前言
服務(wù)器需要提前安裝好docker;構(gòu)建的新鏡像用于快速部署新項(xiàng)目;
一、運(yùn)行alpine容器
通過如下命令查找鏡像
docker search alpine
如下圖所示,就是命令返回的結(jié)果,OFFICIAL有[OK]的標(biāo)識的是docker官方制作的鏡像
我們通過如下命令拉取鏡像
docker pull alpine
接著我們通過如下命令啟動一個(gè)alpine容器
docker run -it alpine /bin/sh
二、安裝nginx
1、安裝pcre執(zhí)行如下命令,分別為下載源碼、解壓、進(jìn)入相應(yīng)目錄、安裝
cd /root wget http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz tar -xvf pcre-8.45.tar.gz cd pcre-8.45 ./configure make && make install
2、安裝nginx執(zhí)行如下命令,分別為下載源碼、解壓、進(jìn)入相應(yīng)目錄、安裝
cd /root wget https://nginx.org/download/nginx-1.24.0.tar.gz tar -xvf nginx-1.24.0.tar.gz cd nginx-1.24.0 ./configure --prefix=/usr/local/nginx --with-pcre=/root/pcre-8.45 make && make install
3、安裝成功之后驗(yàn)證下nginx是否可以正常執(zhí)行,執(zhí)行如下命令
/usr/local/nginx/sbin/nginx -t
一切正常會返回如下內(nèi)容
至此nginx就已經(jīng)安裝完成了,剩下只是配置問題;接下來就是如何安裝php?
三、安裝php
1、因?yàn)閍lpine鏡像使用的是apk包管理,我們需要更換國內(nèi)源地址,執(zhí)行如下命令更好為阿里云地址
vi /etc/apk/repositories https://mirrors.aliyun.com/alpine/v3.15/main https://mirrors.aliyun.com/alpine/v3.15/community
2、安裝相關(guān)依賴,執(zhí)行如下命令
sudo apk update sudo apk add --no-cache gcc g++ make cmake pkgconf sqlite-dev libxml2-dev openssl openssl-dev libcurl curl-dev oniguruma-dev
3、安裝php執(zhí)行如下命令,分別為下載源碼、解壓、進(jìn)入相應(yīng)目錄、安裝
cd /root wget https://www.php.net/distributions/php-8.3.3.tar.gz tar -xvf php-8.3.3.tar.gz cd php-8.3.3 || exit ./configure --prefix=/usr/local/php \ --with-openssl \ --with-curl \ --with-zlib \ --with-mysqli \ --with-pdo-mysql \ --enable-cli \ --enable-fpm \ --enable-xml \ --enable-mbstring make && make install
4、安裝成功之后驗(yàn)證下php是否可以正常執(zhí)行,執(zhí)行如下命令
/usr/local/php/bin/php -v
一切正常會返回如下內(nèi)容
5、驗(yàn)證php-fpm是否可以正常執(zhí)行,執(zhí)行如下命令
/usr/local/php/sbin/php-fpm -t
一切正常會返回如下內(nèi)容
至此php就已安裝完成,剩下的就是相關(guān)的配置了。
四、刪除相關(guān)依賴
為什么要?jiǎng)h除相關(guān)依賴?主要是減輕后續(xù)生成鏡像時(shí)候的大小。
執(zhí)行如下命令刪除
sudo apk del gcc g++ make cmake pkgconf libxml2-dev openssl openssl-dev libcurl curl-dev
五、默認(rèn)腳本
添加默認(rèn)腳本,用于啟動php-fpm、nginx;
執(zhí)行如下命令
vi /start.sh #!/bin/sh /usr/local/php/sbin/php-fpm /usr/local/nginx/sbin/nginx -g "daemon off;"
六、構(gòu)建新基礎(chǔ)鏡像
在宿主機(jī)執(zhí)行如下命令,根據(jù)之前的容器構(gòu)建成鏡像
docker commit -m"nginx-php8.3.3" 26dfff78bfa1 ayzen/nginx-php8.3.3
-m:提交的描述信息
26dfff78bfa1:第一步運(yùn)行時(shí)的容器id
ayzen/nginx-php8.3.3:要?jiǎng)?chuàng)建的目標(biāo)鏡像名,未帶版本號默認(rèn)為latest
七、驗(yàn)證新鏡像
在宿主機(jī)執(zhí)行如下命令,使用新鏡像運(yùn)行一個(gè)容器
docker run -itd -p 8083:80 --name test ayzen/nginx-php8.3.3 /start.sh
驗(yàn)證服務(wù)是否有啟動,執(zhí)行如下命令
curl http://127.0.0.1:8083
一切正常會返回如下nginx內(nèi)容
總結(jié)
以上就是nginx+php的新基礎(chǔ)鏡像制作全過程的詳細(xì)內(nèi)容,更多關(guān)于nginx php鏡像制作的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
nginx.conf配置文件結(jié)構(gòu)小結(jié)
本文主要介紹了nginx.conf配置文件結(jié)構(gòu)小結(jié),nginx.conf主要由events、http、server、location、upstream等塊配置項(xiàng)和一些行配置項(xiàng)組成,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Nginx日志統(tǒng)計(jì)分析的常用命令總結(jié)
這篇文章主要給大家總結(jié)了關(guān)于Nginx日志統(tǒng)計(jì)分析的一些常用命令,其中包括IP相關(guān)統(tǒng)計(jì)、頁面訪問統(tǒng)計(jì)、性能分析、蜘蛛抓取統(tǒng)計(jì)、TCP連接統(tǒng)計(jì)等相關(guān)命令的總結(jié),相信對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-07-07Nginx服務(wù)器中的模塊編寫及相關(guān)內(nèi)核源碼初探
這篇文章主要介紹了Nginx服務(wù)器中的模塊編寫及相關(guān)源碼初探,文中以一個(gè)簡單的Hello world模塊的編寫來深入分析Nginx內(nèi)核所用到的基礎(chǔ)函數(shù),需要的朋友可以參考下2015-12-12Nginx出現(xiàn)404 Not Found nginx/1.23.4的完美解決方案
在Nginx配置過程中,404 Not Found錯(cuò)誤是一個(gè)常見問題,本文將詳細(xì)解析Nginx 404 Not Found的原因及解決方案,確保您能夠輕松解決這一問題,需要的小伙伴跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧2024-07-07Nginx Location指令URI匹配規(guī)則詳解小結(jié)
這篇文章主要介紹了Nginx Location指令URI匹配規(guī)則詳解小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04