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盘,不然等会挂载本地目录到容器会失败,截图如下
这样就把我们的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,大家可以在启动界面查看
然后添加的两条规则如下
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个都运行成果效果是这样的
我们直接在浏览器访问:dpp.test.com:9191,如果显示我们的项目就可以了。
0条评论