使用docker-compsoe構建一個簡單nginx+php環境

OrangBus發表於2022-01-15

目錄結構

➜  Study tree
├── conf
├── docker-compose.yaml
├── nginx
│   ├── conf
│   │   └── laravel.conf
│   └── html
│       └── index.php

index.php

<?php
/**
 * Created by OrangBus
 * User email: orangbus40400@gmail.com
 * website: orangbus.cn
 * blog: doc.orangbus.cn
 * github: github.com/orangbus
 */echo phpinfo();

nginx.conf

server {
 listen       80;
 server_name  localhost;location / {
 root   /usr/share/nginx/html;
 index  index.html index.htm index.php;
 }error_page   500 502 503 504  /50x.html;
 location = /50x.html {
 root   /usr/share/nginx/html;
 }location ~ \.php$ {
 fastcgi_pass   php8:9000;
 fastcgi_index  index.php;
 fastcgi_param  SCRIPT_FILENAME  /html$fastcgi_script_name;
 include        fastcgi_params;
 }
}

重點說明

fastcgi_pass   php8:9000;

php8: php容器的名稱,如果你想配置多個php版本,只需要將php的配置複製一份就可以,填寫對應的php容器名稱

 php8: # php的容器名稱
 image: php:8.0-fpm
 restart: always
 volumes:
 - ./nginx/html:/html
--------------------------------
 php74: # 對應的nginx配置檔案為:fastcgi_pass   php74:9000;
 image: php:8.0-fpm
 restart: always
 volumes:
 - ./nginx/html:/html
fastcgi_param  SCRIPT_FILENAME  /html$fastcgi_script_name;

/html :php專案對映到 【php 容器的目錄】(紅色)

docker-compose

version: '3.5'
services:
 nginx:
 image: nginx:latest
 restart: always
 ports:
 - 8010:80
 volumes:
 - ./nginx/html/:/usr/share/nginx/html # 注意點一
 - ./nginx/conf/:/etc/nginx/conf.d/
 links:
 - php8
​
 php8:
 image: php:8.0-fpm
 restart: always
 volumes:
 - ./nginx/html:/html #注意點二

注意點一:

./nginx/html :本機你的php專案地址

/usr/share/nginx/html: nginx預設的訪問地址

注意點二:

./nginx/html :本機你的php專案地址

/html: 這裡地址是將你本地的php程式碼對映到php的容器當中,一般是和你nginx配置的地址是一致的 (紅色)

Tip:請留意兩處紅色的區域的關聯,這樣一個簡單的nginx+php關聯的環境就配置成功了。

踩坑指南:

當使用-link 時,連線容器的自定義埠將失效,舉例

version: '3.5'
services:
 php8:
 image: php:8.0-fpm
 restart: always
 volumes:
 - ./nginx/html:/html
 links: # 如果使用 links ,當我們php程式中填寫mysql埠的時候應該是 3306 而不是 3307,但是我們外部是需要用3307埠去連線mysql的
 - mysql

 mysql:
 image: mysql:latest
 ports:
 - 3307:3306
本作品採用《CC 協議》,轉載必須註明作者和本文連結
保持勇敢,堅持有趣,生命不息,折騰不止。

相關文章