win7环境下使用docker运行laravel

win7环境下使用docker运行laravel

       继上一篇完成了在win7环境下docker的安装,这一篇跟大家分享如何在win7下使用docker进行运行laravel项目,在这里我们需要参考之前写的两篇运行docker的教程,分别是Mac环境下Docker运行Laravel项目Docker Compose运行Laravel项目

       一、部署本地代码以及nginx配置

       我在F盘下创建了一个word目录,并且放了两个laravel项目,同样还是在F盘下创建了nginx\conf\conf.d目录,并且创建了default.conf文件用于nginx配置。

       二、分享本地目录

       win环境下我们需要打开Oracle VM VirtualBox在设置里分享我们的F盘,不然等会挂载本地目录到容器会失败,截图如下

1.png

这样就把我们的F盘共享到虚拟机上,然后重启完成配置的更新。

      三、编写nginx配置

      我们在刚刚创建的nginx配置目录下,编辑nginx配置,路径是F:\nginx\conf\conf.d,配置如下

server {
    listen       80;
    server_name  dpp.test.com;

    #charset koi8-r;
   
    location / {
       root   /var/www/html/dpp/public;
       index  index.php index.html index.htm;

       # 如果没有以下4行,laravel将只能访问首页,其他页面都是404
       try_files $uri $uri/ /index.php?$query_string;
       if (!-e $request_filename){  
           rewrite ^/(.*) /index.php last;  
       }
       # 如果没有以上4行,laravel将只能访问首页,其他页面都是404

    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.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$ {
        root           /var/www/html/dpp/public;
        index          index.php index.html;
        # 坑在这里,需将原有的127.0.0.1:9000替换成phpfpm:9000
        fastcgi_pass   php_compose:9000;      
        # 坑在这里,需将原有的127.0.0.1:9000替换成phpfpm:9000
        fastcgi_index  index.php;
        # 下面这行也改了  中间的$document_root
        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;
    #}
}

server {
    listen       80;
    server_name  portal.test.com;

    #charset koi8-r;
   
    location / {
       root   /var/www/html/portal/public;
       index  index.php index.html index.htm;

       # 如果没有以下4行,laravel将只能访问首页,其他页面都是404
       try_files $uri $uri/ /index.php?$query_string;
       if (!-e $request_filename){  
           rewrite ^/(.*) /index.php last;  
       }
       # 如果没有以上4行,laravel将只能访问首页,其他页面都是404

    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.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$ {
        root           /var/www/html/portal/public;
        index          index.php index.html;
        # 坑在这里,需将原有的127.0.0.1:9000替换成phpfpm:9000
        fastcgi_pass   php_compose:9000;      
        # 坑在这里,需将原有的127.0.0.1:9000替换成phpfpm:9000
        fastcgi_index  index.php;
        # 下面这行也改了  中间的$document_root
        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;
    #}
}

以上配置,我配置了两个项目,访问地址分别是dpp.test.com、portal.test.com。

       四、编写docker-compose

       我们同样在F盘下新建一个目录docker,用于存放我们的docker-compose文件,并新建一个文件,命名为docker-compose,配置如下:

version: "3"
services:
  redis:
    image: redis:latest
    container_name: redis_compose
    ports:
    - 6379:6379
  mysql:
    image: mysql:latest
    container_name: mysql_compose
    ports:
    - 3306:3306
    environment:
    - MYSQL_ROOT_PASSWORD=123456
  php:
    image: php:7.3-fpm
    container_name: php_compose
    ports:
    - 9000:9000
    volumes:
    - /f/word:/var/www/html
    links:
    - mysql
  nginx:
    image: nginx:latest
    container_name: nginx_compose
    ports:
    - 9191:80
    volumes:
    - /f/nginx/conf/conf.d:/etc/nginx/conf.d
    - /f/word:/var/www/html
    links:
    - php
    - redis

运行docker-compose会分别开启mysql、php、redis、nginx。

      五,修改host

      我们在nginx配置文件中配置了dpp.test.com、portal.test.com来访问不同的域名,我们需要打开C:\Windows\System32\drivers\etc,并且往host中添加两条规则,我们需要先查看虚拟机分配的ip,大家可以在启动界面查看

1.png

然后添加的两条规则如下

192.168.99.100 portal.test.com
192.168.99.100 dpp.test.com

然后进入cmd命令行,运行以下命令重刷配置,让他生效

ipconfig /flushdns

       六、运行docker-compose

       完成以上所有操作,我们就可以运行docker-compose来检验我们的成果,直接进去到docker-compose文件所在目录,我们在这里的路径是F:\docker,运行以下命令

docker-compose up -d

如果下次开机要运行我们就输入这个命令来运行

docker-compose restart

如果4个都运行成果效果是这样的

1.png

我们直接在浏览器访问:dpp.test.com:9191,如果显示我们的项目就可以了。

0条评论

发表评论