docker 搭建nginx+php+mysql环境 docker-compose

创建 docker-compose.yml

我是在Window环境下创建的。

在E盘docker文件夹下创建docker-compose.yml文件,内容如下:

version: '3'
services:
  mysql: 
    restart: always
    image: mysql
    container_name: mysql
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: noway
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
    volumes:
      - e:/docker/mysql:/var/lib/mysql
    ports:
      - 3306:3306

  php:
    restart: always
    image: php:7.4.4-fpm
    container_name: php
    depends_on:
      - mysql
    volumes:
      - e:/docker/php:/var/www/html
    ports:
      - 9000:9000

  nginx:
    restart: always
    image: nginx
    container_name: nginx
    depends_on:
      - php
    volumes:
      - e:/docker/nginx/logs:/var/log/nginx
      - e:/docker/nginx/conf:/etc/nginx/conf.d
    ports:
      - 80:80
      - 443:443

进入这个文件,执行命令: docker-compose up -d

进入mysql的docker的bash环境:

docker exec -it mysql /bin/bash

因为是mysql8,所以需要修改MySQL密码:

use mysql;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'noway';

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'noway';

FLUSH PRIVILEGES;

Nginx配置

修改 E:\docker\nginx\conf\test.conf 文件内容如下:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    # location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    # }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        #php 容器的网站根目录
        root           /var/www/html;
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
       deny  all;
    }
}

php配置

E:\docker\php\index.php 文件内容为:

<?php phpinfo(); ?>

访问

http://localhost:80

这个工程的git地址:

https://gitee.com/misoag/docker-nginx-php-mysql-compose.git

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容