Docker nginx + php7.3 + mysql 环境搭建笔记

【下载nginx镜像】

docker pull nginx

【下载 PHP 镜像】

docker pull php:7.3.5-fpm

linux创建目录:

mkdir -p ~/nginx/www ~/nginx/conf/conf.d  ~/data/mysql

【创建并运行 php 容器】

docker run --name myphp -v ~/nginx/www:/www -d php:7.3-fpm

【Nginx配置文件】
在该目录下添加 ~/nginx/conf/conf.d/test.conf 文件,内容如下:

sudo vi ~/nginx/conf/conf.d/test.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   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

配置文件说明:
php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明。
/www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录。


【创建并运行 nginx 容器】

docker run --name mynginx -p 80:80 -d \
-v ~/nginx/www:/user/share/nginx/html:ro \
-v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
--link myphp:php \
nginx

【下载 mariadb 镜像】

docker pull mariadb

【创建并运行 mysql 容器】

docker run -v ~/data/mysql/:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 \
--privileged=true --restart unless-stopped   --name mariadbs -d mariadb:latest

注:MYSQL_ROOT_PASSWORD=123456  设置数据库用户root的初始密码为123456

【tp5 网站配置】

server {
    listen       80;
    server_name  test.com;
    #/tp/ 为thinkphp站点
    #/usr/share/nginx/html/tp/public 为网站根目录
    location / {
        root   /usr/share/nginx/html/tp/public;
        index  index.php index.html index.htm;
    if (!-e $request_filename) {
           rewrite  ^(.*)$  /index.php?s=/$1  last;
    }
    }

    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;
        #/www/tp/public/ 为网站根目录
        fastcgi_param  SCRIPT_FILENAME  /www/tp/public/$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }
}

 

你可能感兴趣的:(docker)