laradock搭建基于docker的laravel环境 (Mac)

前言:我是根据学院派的教程操作,搭建laravel的环境,中途遇到一些问题,所以记录下来,希望能帮到一些人。

这里结构就用学院派的啦~

安装 docker

这一步,根据菜鸟教程就可以安装。

快速上手

1、克隆 Laradock 项目到本地。(新建一个文件夹,名字自定义,将 Laradock 项目克隆到文件夹下。)

git clone https://github.com/Laradock/laradock.git

2、进入 Laradock 项目,拷贝一份 env-example.env。这个是容器的配置文件。

cp env-example .env

3、 运行容器。

运行前需要做的事:

  • 先修改 workspaceDockerfile 文件,因为其中一个 install.sh 需要翻墙。修改位置:/laradock/workspace/Dockerfile,587 行。为了方便也可以修改成我的 http://lunes.gitee.io/source/install.sh 或者去github下载放到自己的服务器上。

    RUN if [ ${INSTALL_NODE} = true ]; then \
        # Install nvm (A Node Version Manager)
        mkdir -p $NVM_DIR && \
        curl -o- http://lunes.gitee.io/source/install.sh | bash \
            && . $NVM_DIR/nvm.sh \
            && nvm install ${NODE_VERSION} \
            
            ...
    
  • 如果使用了 Valetnginx,需要先关闭,否则会端口占用。

    // nginx
    nginx -s quit (mac)
    // Valet
    valet stop
    
  • 如果想使用mysql 5版本,可以在 .env 文件修改 MYSQL_VERSION=5.7 ,改成你需要的版本。否则默认是最新版本。

// 运行容器
docker-compose up -d nginx mysql

运行完成后,执行 docker-compose ps查看是否容器运行正常,StateUp即运行正常。若有问题就去查看是否端口被占用了。
docker-compose ps
(此处,我在容器运行时更新了docker,导致nginx启动失败。解决办法:把docker关闭,再开启解决问题。)

4、创建一个 laravel 项目。
在刚才创建的文件夹下,即和 laradock 同级的位置创建一个文件夹 wwwroot,进入 wwwroot 创建项目。

没有 composer 的需要安装 一下。建议用 composer 创建项目。

也可以进入容器内安装,容器里已经有composer了。会提示 Do not run Composer as root/super user! See https://getcomposer.org/root for details ,需要创建用户、改权限,我没有弄成功。但是虽然提示不可以用用 root 运行 Composer,也可以成功创建项目。就在本机下载 composer 创建项目了。

composer create-project laravel/laravel demo "5.2.*"

创建项目后,目录结构是这样的:

.
├── laradock
└── wwwroot
    └── demo

进入 laravel 项目(即 demo),修改 .env 文件,如下。

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=demodb
DB_USERNAME=root
DB_PASSWORD=root

不连数据库的话,暂时用不到,如果连数据库的话,是以上配置。DB_DATABASE 是你容器里的数据库。

在容器里创建数据库:在 laradock 下执行 docker-compose exec mysql bash 进入容器,执行 mysql -uroot -proot进入数据库,create database demodb;创建数据库,demodb 可以换成你的数据库名称。

如果是线上拉下来的项目还需要修改 APP_KEY。在 laravel 项目下执行 php artisan key:generate,复制方括号中的内容,粘贴到 APP_KEY=后面。新建的项目则不需要。

// 举例, '$' 表示在命令行执行,不要复制这个符号。'>' 表示输出。
$ php artisan key:generate
> Application key [base64:YRIbiyoRGhrzvmqLgGD1FJKwqcmy3XvMivKzW4B4S3o=] set successfully.

// .env
APP_KEY=base64:YRIbiyoRGhrzvmqLgGD1FJKwqcmy3XvMivKzW4B4S3o=

5、 修改 laradock 项目中的 .env
(1)docker workspace 容器映射的位置。(个人见解,如有错误还请指正。)

APP_CODE_PATH_HOST=../wwwroot

相当于本地 wwwroot 文件夹映射到容器的 www/var

(2)修改 nginx 容器的映射关系:文件位置:/laradock/nginx/sites/default.conf, 13 行 改成对应 laravel 项目名字下的public

server {

    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    # For https
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server ipv6only=on;
    # ssl_certificate /etc/nginx/ssl/default.crt;
    # ssl_certificate_key /etc/nginx/ssl/default.key;

    server_name localhost;
    root /var/www/demo/public;
    index index.php index.html index.htm;

    ...

修改了容器配置,需要重启该容器。

docker-compose up -d nginx

容器的操作都在 laradock 项目下。

浏览 http://localhost,可以看到 Laravel 5,环境配置完成。
localhost 截图
如不成功,修改文件的权限。进入 laravel 项目

chmod a+w storage/logs
chmod a+w bootstrap/cache

如果有不对的地方,还请指正,感谢。😄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值