win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境

win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成

本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实安装跟easyswoole有点类似:

1、先配置nginx,

详细代码如下

server {

    listen 80;
    listen [::]:80;

    server_name laravel.test;
    root /var/www/locallaravel/public;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ .php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php-fpm:9000;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt/;
        log_not_found off;
    }

    error_log /var/log/nginx/locallaravel_error.log;
    access_log /var/log/nginx/locallaravel_access.log;
}

2、宿主机本机目录上新建一个sh脚本文件,用于运行安装laravel,并命名为laravel_install.sh详细代码如下:

#!/bin/sh

# swoole image must contain php composer
swoole_img="swoole:4.1.2"
container_code_path="/app"
work_dir="/www"
docker_compose_file_path="/www/dnmp"

cur_dir=$(pwd)

if [ -d ${work_dir}/locallaravel ]; then
    sudo rm -rf ${work_dir}/locallaravel
fi

Init_Easyswoole()
{
    docker run --rm --net=host -v ${work_dir}:${container_code_path}:rw composer sh -c "composer config -g repo.packagist composer https://packagist.laravel-china.org && cd ${container_code_path} && composer create-project --prefer-dist laravel/laravel locallaravel"
}

Init_Easyswoole
cd ${docker_compose_file_path}
docker-compose up -d
docker-compose ps

以上的word_dir为宿主机的工作目录,/www/dnmp为dnmp环境中的docker-compose.yml目录;

使用xshell进行连接docker虚拟机,进入到lavarel_install.sh所在目录,运行:

./laravel_install.sh

laravel安装成功后,打开Docker Quickstart Terminal.exe

进入到dnmp目录,运行

docker-compose down

再运行

docker-compose up -d

然后查看容器是否全部启动

docker-compse ps

发现已经全部启动,在win7宿主机进行访问http://localhost:9501/,已经可以正常使用了

接下来就可以开始使用laravel了,不过呢还需要再安装mysql作为数据库

3、安装mysql

将docker-compose.yml的mysql配置注释去掉

记得开启一下mysql声明卷,不然的话就会报一下错误

并修改.env中mysql配置

接下来,还是老样子,先将镜像dnmp停止

然后安装mysql,因为之前没有安装过mysql,所以需要先build

docker-compose build mysql

build成功之后,重新启动镜像

docker-compose up -d

然后查看下已启动的镜像

docker-compose ps

发现mysql已正常启动

 PS,如果刚开始安装的mysql版本是8的话,用navicat连接就会出现以下错误:

 

 解决方案是,将.env中mysql版本改为5.7(暂时没必要用最新版的),然后用xshell连接docker,删除mysql的存储卷volume(这一步没有做的话可能会导致mysql无法正常启动)

docker volume ls

docker volume rm laradock_mysql

再在Docker Quickstart Terminal.exe软件中进行如下操作,mysql5.7正常启动

docker-compose build mysql
docker-compose up -d

记得端口要做映射

再用navicat进行连接

 

哇塞,mysql也可以使用了,真开心~~

 4、lavarel配置mysql

创建数据库locallaravel和表user,并插入一条数据;

locallavarel项目下的.env配置文件,修改下:

在locallavarel项目中appHttpControllers下创建一个控制器UserController.php,并在routesweb.php中创建一个路由

Route::get('User','UserController@index');

指向刚创建的控制器UserController.php,测试访问http://laravel.test/User,结果提示:

 查阅相关资料,才发现是数据库的ip对不上,然后把数据库的host改成当前机器的ip就好了

 

原文地址:https://www.cnblogs.com/Dong-Ge/p/9646136.html