资讯专栏INFORMATION COLUMN

Laradock 使用说明 ---- 不是很详细

xiaoqibTn / 2448人阅读

摘要:但是如果是在下使用的话,问题不是很大,体验还是很完美的,也就搞定文件挂载,搞定公网私网,忍受漫长的启动过程。总之,不用那就是和自己过不去。创建项目为什么把创建项目放到第一个来说,是因为可以避免研究时,无项目可用。

前言

我同事告诉我他的windows电脑装不上homestead,我已经有了在windwos下面折腾vagrant+virtual box+homestead的惨痛经验,然后偶然打开百度搜索了一下Laravel docker,嗯,不错,找到了Laradock。搞起来,怕啥!

我的惨痛经验

Vagrant+Virtual box+HomesteadLaravel项目开发中大多数人的标配,或者说是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

相关文章

  • Laradock 使用说明 ---- 不是详细

    摘要:但是如果是在下使用的话,问题不是很大,体验还是很完美的,也就搞定文件挂载,搞定公网私网,忍受漫长的启动过程。总之,不用那就是和自己过不去。创建项目为什么把创建项目放到第一个来说,是因为可以避免研究时,无项目可用。 前言 我同事告诉我他的windows电脑装不上homestead,我已经有了在windwos下面折腾vagrant+virtual box+homestead的惨痛经验,然后...

    dongfangyiyu 评论0 收藏0
  • 翻译了一下Laradock的中文文档

    摘要:中文文档和官方文档不一致的地方为了方便,本中文文档使用构建,并移除了一些自己认为可能很少用得到的内容极少,其余基本上是和官方文档保持一致。 为啥翻译它因为自己在学习并使用Laradock,就想着做一件一劳永逸的事把官方的英文文档拿下了翻译一下,也方便已经或者准备使用Laradock作为开发环境的同学查看。 准确性和完整度目前文档基本完成了75%的翻译工作,源文档取自Laradock官...

    wslongchen 评论0 收藏0
  • 翻译了一下Laradock的中文文档

    摘要:中文文档和官方文档不一致的地方为了方便,本中文文档使用构建,并移除了一些自己认为可能很少用得到的内容极少,其余基本上是和官方文档保持一致。 为啥翻译它因为自己在学习并使用Laradock,就想着做一件一劳永逸的事把官方的英文文档拿下了翻译一下,也方便已经或者准备使用Laradock作为开发环境的同学查看。 准确性和完整度目前文档基本完成了75%的翻译工作,源文档取自Laradock官...

    My_Oh_My 评论0 收藏0

发表评论

0条评论

xiaoqibTn

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<