Docker 安裝 PHP并與Nginx的部署實(shí)例講解
安裝 PHP 鏡像
查找 Docker Hub 上的 php 鏡像:

此外,我們還可以用 docker search php 命令來(lái)查看可用版本:

這里我們拉取官方的鏡像,標(biāo)簽為7.3.24-fpm-stretch
docker pull php:7.3.24-fpm-stretch

等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為php,標(biāo)簽為7.3.24-fpm-stretch的鏡像。

Nginx + PHP 部署
Nginx 部署可以查看本人博客中:Docker 安裝 Nginx,一些 Nginx 的配置參考這篇文章。
啟動(dòng) PHP:
docker run -d -v /root/nginx/www:/var/www/html -p 9000:9000 --name xy_phpfpm php:7.3.24-fpm-stretch
參數(shù)說(shuō)明
-d 讓容器在后臺(tái)運(yùn)行
-p 添加主機(jī)到容器的端口映射
-v 添加目錄映射,即主機(jī)上的 /root/nginx/www和容器中/var/www/html目錄是同步的
-v /root/nginx/www:/var/www/html : 將主機(jī)中項(xiàng)目的目錄 /root/nginx/www 掛載到容器的/var/www/html
–name myphp-fpm : 將容器命名為 my_phpfpm
查看PHPfpm端口9000是否啟動(dòng)
這步很重要,沒(méi)啟動(dòng)的話需要重裝php鏡像
netstat -tunlp |grep 9000

netstat
netstat -tunlp 用于顯示 tcp,udp 的端口和進(jìn)程等相關(guān)情況。
netstat 查看端口占用語(yǔ)法格式:
netstat -tunlp | grep 端口號(hào)
-t (tcp) 僅顯示tcp相關(guān)選項(xiàng)
-u (udp)僅顯示udp相關(guān)選項(xiàng)
-n 拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)化為數(shù)字
-l 僅列出在Listen(監(jiān)聽(tīng))的服務(wù)狀態(tài)
-p 顯示建立相關(guān)鏈接的程序名
宿主機(jī)創(chuàng)建掛在目錄
創(chuàng)建 ~/nginx/conf/conf.d 目錄:
mkdir ~/nginx/conf/conf.d

在該目錄下添加 ~/nginx/conf/conf.d/runoob-test-php.conf 文件,內(nèi)容如下:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
include fastcgi_params;
}
}
配置文件說(shuō)明:
php:9000: 表示 php-fpm 服務(wù)的 URL,下面我們會(huì)具體說(shuō)明。 /var/www/html/: 是 xy_phpfpm容器 中 php 文件的存儲(chǔ)路徑,映射到本地的 ~/nginx/www 目錄。
啟動(dòng) nginx:
docker run --name ngixn -p 80:80 -d \ -v /root/nginx/www:/usr/share/nginx/html:ro \ -v /root/nginx/conf/conf.d:/etc/nginx/conf.d:ro \ --link xy_phpfpm:php \ nginx
參數(shù)說(shuō)明
-p 80:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。 ~/nginx/www: 是本地 html 文件的存儲(chǔ)目錄,/usr/share/nginx/html 是容器內(nèi) html 文件的存儲(chǔ)目錄。 ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存儲(chǔ)目錄,/etc/nginx/conf.d 是容器內(nèi) nginx 配置文件的存儲(chǔ)目錄。 --link xy_phpfpm:php: 把 xy_phpfpm 的網(wǎng)絡(luò)并入 nginx,并通過(guò)修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,讓 nginx 通過(guò) php:9000 訪問(wèn) php-fpm。
接下來(lái)我們?cè)?~/nginx/www 目錄下創(chuàng)建 index.php,代碼如下:
<?php echo phpinfo(); ?>
瀏覽器打開(kāi) http://106.52.36.65:8083/index.php,顯示如下:

說(shuō)明
凡是修改了nginx配置都需要重啟nginx服務(wù)
docker stop ngixn docker start ngixn
到此這篇關(guān)于Docker 安裝 PHP并與Nginx的部署實(shí)例講解的文章就介紹到這了,更多相關(guān)Docker 安裝 PHP并與Nginx的部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
php的$_FILES的臨時(shí)儲(chǔ)存文件與回收機(jī)制實(shí)測(cè)過(guò)程
上傳文件是怎么個(gè)原理,大概的想了下,應(yīng)該是一種回收機(jī)制:點(diǎn)擊了臨時(shí)文件空間,那么,php自身應(yīng)該自己維護(hù)這塊空間的回收,具體的測(cè)試過(guò)程如下,感興趣的朋友可以參考下哈2013-07-07
php實(shí)現(xiàn)向javascript傳遞數(shù)組的方法
這篇文章主要介紹了php實(shí)現(xiàn)向javascript傳遞數(shù)組的方法,涉及php數(shù)組轉(zhuǎn)json傳遞到j(luò)avascript的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
通過(guò)chrome瀏覽器控制臺(tái)(Console)進(jìn)行PHP Debug的方法
這篇文章主要介紹了利用chrome瀏覽器控制臺(tái)(Console)進(jìn)行PHP Debug,需要的朋友可以參考下2016-10-10
php實(shí)現(xiàn)Mysql簡(jiǎn)易操作類(lèi)
這個(gè)PHP實(shí)現(xiàn)的mysql的操作類(lèi)完整版已經(jīng)使用過(guò)了,而這個(gè)簡(jiǎn)化版是經(jīng)過(guò)修改完整版后的簡(jiǎn)化版,適用在一般的 PHP 應(yīng)用中,功能上可以實(shí)現(xiàn)基本的增刪改查的操作,以及打印 MYSQL 錯(cuò)誤,自我感覺(jué)不錯(cuò),如果網(wǎng)站應(yīng)用不是很強(qiáng)大,應(yīng)用這個(gè) MYSQL 的操作類(lèi)已經(jīng)足夠了,2015-10-10
PHP調(diào)用Linux命令權(quán)限不足問(wèn)題解決方法
這篇文章主要介紹了PHP調(diào)用Linux命令權(quán)限不足問(wèn)題解決方法,本文是解決項(xiàng)目問(wèn)題總結(jié)而來(lái),通過(guò)修改sudo配置文件解決無(wú)權(quán)限執(zhí)行命令問(wèn)題,需要的朋友可以參考下2015-02-02
PHP回調(diào)函數(shù)與匿名函數(shù)實(shí)例詳解
這篇文章主要介紹了PHP回調(diào)函數(shù)與匿名函數(shù),結(jié)合實(shí)例形式分析了php回調(diào)函數(shù)與匿名函數(shù)的具體功能、用法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-08-08
php7連接MySQL實(shí)現(xiàn)簡(jiǎn)易查詢(xún)程序的方法
這篇文章主要給大家介紹了關(guān)于php7連接MySQL實(shí)現(xiàn)簡(jiǎn)易查詢(xún)程序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

