摘要:但是如果是在下使用的话,问题不是很大,体验还是很完美的,也就搞定文件挂载,搞定公网私网,忍受漫长的启动过程。总之,不用那就是和自己过不去。创建项目为什么把创建项目放到第一个来说,是因为可以避免研究时,无项目可用。
前言
我同事告诉我他的windows电脑装不上homestead,我已经有了在windwos下面折腾vagrant+virtual box+homestead的惨痛经验,然后偶然打开百度搜索了一下Laravel docker,嗯,不错,找到了Laradock。搞起来,怕啥!
我的惨痛经验Vagrant+Virtual box+Homestead是Laravel项目开发中大多数人的标配,或者说是Web开发本地环境的标配(还在使用XAMPP, Phpstudy等等,诸如此类的开发环境的人,请认真看:-D)。
但是如果是在Linux下使用的话,问题不是很大,体验还是很完美的,也就搞定文件挂载,搞定公网私网IP,忍受漫长的启动过程。
但是在Windows下面,简直不要太难受,具体怎么难受,我大概是忘记了,但是依稀还记得,怎么装也装不上,怎么启动也报错,肯定是有的。再或者需要安装个其他的软件,比如,ElasticSearch 还需要手动安装。
被这些事情搞到放弃的人,我也相信是有的。废话少说,下面我们来看看如何使用Laradock。
这个问题问得好,首先,你不觉得这年头不懂Docker就像乡下来的?其次,自己百度一下什么是Docker,Docker都有哪些优点。总之,不用Laradock那就是和自己过不去。
Laradock 基本情况Github地址:laradock/laradock
文档地址:Laradock
安装自行解决Docker安装,此处给个文档:Install
Linux:
git clone https://github.com/Laradock/laradock.git
cd laradock
cp env-example .env
docker-compose up -d nginx mysql phpmyadmin redis workspace
到这先停一停
Windows:
和Linux差不多
注:Windows用户可能会遇到一个执行startup.sh这个文件失败的问题,导致nginx容器启动不了,不要怕,我已经遇到过了。Github Issue
解决办法如下:
vim nginx/Dockerfile # 把下面这两行注释掉 ADD ./startup.sh /opt/startup.sh CMD ["/bin/bash", "/opt/startup.sh"] # 改成 CMD ["nginx"] # 暂时关闭 `Nginx SSl` 功能使用
官网介绍了三种使用方式,我们呢只考虑最后一种,多个项目共用一个Laradock,但是,我会把整个安装遇到的问题都给你说明白。
假设:我们有一台刚刚装好系统,Docker,Git的电脑。
为什么把创建项目放到第一个来说,是因为可以避免研究时,无项目可用。
cd laradock
docker-compose exec --user=laradock workspace bash (为什么要加--user = laradock,是因为权限问题)
composer create-project --prefer-dist laravel/laravel blog 文档:安装Laravel,推荐使用 composer安装
注:composer config -g repo.packagist composer https://packagist.phpcomposer.com Composer 中国镜像
内容比较多,看下面的shell
# 此时在workspace bash中 cd blog vim .env # 修改Mysql && Redis链接 DB_HOST=mysql REDIS_HOST=redis # 修改数据库和用户名:因为我们如果看一下 laradock/.env 文件,我们就会知道默认如下所示: MYSQL_VERSION=latest MYSQL_DATABASE=default MYSQL_USER=default MYSQL_PASSWORD=secret MYSQL_PORT=3306 # 至于如何修改成Homestead:Homestead,或者说,改了没效果(我不会告诉你,我改了N多次也没用)等等这些问题,我们多带带讨论运行项目
Nginx 配置
# 重新开一个终端,也可以先退出workspace bash cd nginx/sites/ cp laravel.conf.example xxx.conf vim blog.conf # 修改Server name && root && Log Path :这个你自己应该能搞定 server_name blog.com; root /var/www/blog/public; ... error_log /var/log/nginx/blog_error.log; access_log /var/log/nginx/blog_access.log; # 注意root只修改/var/www/blog/public
让你的Nginx容器加载你的配置
# 在Laradock目录下 docker-compose exec nginx nginx -t docker-compose exec nginx nginx -s reload
绑定Host
sudo vim etc/hosts # ADD 127.0.0.1 blog.com
打开浏览器,访问 blog.com
测试数据库链接,
进入 docker-compose exec --user=laradock workspace bash
cd blog
php artisan make:auth
php artisan migrate
报错了,GitHub Issue,解决办法如下:GitHub Issue
cd laradock # 打开mysql/my.cnf vim mysql/my.cnf # 增加如下内容: # default_authentication_plugin=mysql_native_password # 执行如下命令 docker-compose down # 删除 laradock/.env 文件中 `DATA_PATH_HOST` 变量指定的目录下的文件(不删除,如何build都不起作用) sudo rm -rf ~/.laradock/data docker-compose up -d nginx mysql phpmyadmin redis workspace docker-compose exec --user=laradock workspace bash cd xxxx php artisan migrate
测试 Redis 链接 Laravel Redis
composer require predis/predis
在Home控制器添加Redis set方法
# use IlluminateSupportFacadesRedis; public function index() { Redis::set("test", "test"); return view("home"); }
完成注册,查看Redis 记录
OK,至此,我们就已经搞定运行项目了。
Laradock Mysql的一些事
如何修改默认用户名,默认数据库
cd laradock vim .env # 修改 `MYSQL_DATABASE` && `MYSQL_USER` 如 图 1 # 删除 laradock/.env 文件中 `DATA_PATH_HOST` 变量指定的目录下的文件 docker-compose down sudo rm -rf ~/.laradock/data docker-compose up -d nginx mysql phpmyadmin redis workspace
如何创建数据库
# 手动 (一般是这种方式) cd laradock/mysql/docker-entrypoint-initdb.d cp createdb.sql.example createdb.sql vim createdb.sql # 删除注释 CREATE DATABASE IF NOT EXISTS `blog` COLLATE "utf8_general_ci" ; GRANT ALL ON `blog`.* TO "homestead"@"%" ; FLUSH PRIVILEGES ; cd laradock docker-compose exec mysql bash mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql # 自动是有条件的,条件如下: # this sql script will auto run when the mysql container starts and the $DATA_PATH_HOST/mysql not found. (试过了,不删除`DATA_PATH_HOST`是不会执行滴)可能会遇到的问题
Ubuntu elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
# 切换到root用户修改配置sysctl.conf vi /etc/sysctl.conf # 添加下面配置: vm.max_map_count=655360 # 执行命令 sysctl -p 重新启动elasticsearch
至此,就差不多了,遇到问题,欢迎留言!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29735.html
摘要:但是如果是在下使用的话,问题不是很大,体验还是很完美的,也就搞定文件挂载,搞定公网私网,忍受漫长的启动过程。总之,不用那就是和自己过不去。创建项目为什么把创建项目放到第一个来说,是因为可以避免研究时,无项目可用。 前言 我同事告诉我他的windows电脑装不上homestead,我已经有了在windwos下面折腾vagrant+virtual box+homestead的惨痛经验,然后...
摘要:中文文档和官方文档不一致的地方为了方便,本中文文档使用构建,并移除了一些自己认为可能很少用得到的内容极少,其余基本上是和官方文档保持一致。 为啥翻译它因为自己在学习并使用Laradock,就想着做一件一劳永逸的事把官方的英文文档拿下了翻译一下,也方便已经或者准备使用Laradock作为开发环境的同学查看。 准确性和完整度目前文档基本完成了75%的翻译工作,源文档取自Laradock官...
摘要:中文文档和官方文档不一致的地方为了方便,本中文文档使用构建,并移除了一些自己认为可能很少用得到的内容极少,其余基本上是和官方文档保持一致。 为啥翻译它因为自己在学习并使用Laradock,就想着做一件一劳永逸的事把官方的英文文档拿下了翻译一下,也方便已经或者准备使用Laradock作为开发环境的同学查看。 准确性和完整度目前文档基本完成了75%的翻译工作,源文档取自Laradock官...
阅读 2136·2023-04-25 18:49
阅读 1839·2019-08-30 14:02
阅读 2642·2019-08-29 17:24
阅读 3323·2019-08-28 18:10
阅读 2925·2019-08-28 18:03
阅读 488·2019-08-26 12:01
阅读 3308·2019-08-26 11:31
阅读 1408·2019-08-26 10:29