安裝 PHP 鏡像
查找 Docker Hub 上的 php 鏡像:

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

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

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

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

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

在該目錄下添加 ~/nginx/conf/conf.d/runoob-test-php.conf 文件,內容如下:
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;
}
}
配置文件說明:
php:9000: 表示 php-fpm 服務的 URL,下面我們會具體說明。
/var/www/html/: 是 xy_phpfpm容器 中 php 文件的存儲路徑,映射到本地的 ~/nginx/www 目錄。
啟動 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
參數說明
-p 80:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。
~/nginx/www: 是本地 html 文件的存儲目錄,/usr/share/nginx/html 是容器內 html 文件的存儲目錄。
~/nginx/conf/conf.d: 是本地 nginx 配置文件的存儲目錄,/etc/nginx/conf.d 是容器內 nginx 配置文件的存儲目錄。
--link xy_phpfpm:php: 把 xy_phpfpm 的網絡并入 nginx,并通過修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,讓 nginx 通過 php:9000 訪問 php-fpm。
接下來我們在 ~/nginx/www 目錄下創建 index.php,代碼如下:
瀏覽器打開 http://106.52.36.65:8083/index.php,顯示如下:

說明
凡是修改了nginx配置都需要重啟nginx服務
docker stop ngixn
docker start ngixn
到此這篇關于Docker 安裝 PHP并與Nginx的部署實例講解的文章就介紹到這了,更多相關Docker 安裝 PHP并與Nginx的部署內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 如何在Mac上通過docker配置PHP開發環境
- docker中實現安裝php拓展步驟講解
- Docker搭建OpenLDAP+phpLDAPadmin統一用戶認證的方法
- Docker搭建php環境教程詳解
- docker 安裝 php-fpm 服務 / 擴展 / 配置的示例教程詳解
- docker靈活的構建PHP環境的實現
- docker部署LNMP&phpMyAdmin的方法步驟
- php之使用docker運行workerman案例講解