Larave 6.0 从零开始搭工程
feature list
2 用户管理
- 注册 登录
- 权限
- 用户中心
1 首页
- 轮播
2 文章
- 点赞 浏览
- 评论 分享
环境
win10+wsl+laradock.
参考
laravel 6.0:
https://xueyuanjun.com/post/19912.html
工程创建
lbash下使用composer. 切换国内源:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
laravel 6.0安装器:
composer global require laravel/installer
目的是一键生成laravel相关的composer.json:
laravel new blog
cd 到blog,安装依赖:
composer install
自动生成曾autoload相关文件:
composer dump-autoload
尝试lbash运行dev,这是最快的dev方式了吧,很类似yarn serve
php artisan serve --port 10000 --host 0.0.0.0
由于php是跑在docker里的,还需要把端口给暴露出来:
修改laradocker docker-compose.yml
的php-fpm的expose,先添加10000这个端口:
ports: "10000:10000"
xdebug调试准备
上面的php跑在php-fpm这个container里,所以需要改里面的xdebug.ini:
xdebug.remote_host=dockerhost
;xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=0
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
xdebug.remote_log=/var/tmp/xdebug.log
xdebug.remote_autostart=0
xdebug.remote_enable=1
xdebug.cli_color=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1
同时phpstorm配置好:
PHP interpreter 来自docker php-fpm
server:
remote debug设置:
如果想按page调试,也可以设置:
神奇的是一定要在xdebug.ini里配置remotehost为dockerhost.
分析remotehost=dockerhost
listen端口10000是在docker的php-fpm container里打开:
php artisan serve --host 0.0.0.0 --port 10000:
0.0.0.0意味着docker网络内部所有地址都能访问,
这个端口已通过docker-compose.yml配置的ports暴露给主机,因此windows host也可以打开和调试
dockerhost到底多少?
#in docker-compose.yml
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
DOCKER_HOST_IP
定义在.env里即10.0.75.1.
extra_hosts
是给10.0.75.1设置了网络名称,可以在workspace container的/etc/hosts
里看到:
为何是10.0.75.1
?
这涉及windows docker的原理: Docker HyperV vEthernet (DockerNAT)
这个太复杂了,暂时整不明白…涉及到知识有windows hyperV, NAT, 虚拟网卡…
有点像这个: https://blog.csdn.net/u010948569/article/details/80766597
总之10.0.75.1
是Windows host的地址. 访问localhost:10000
和10.0.75.1:10000
是一样的效果.
实际docker 内部还是172.17.x.x
的网络,可以用过docker network inspect
看到.