• 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就好了

     

  • 相关阅读:
    android studio debug
    SharePoint 2013 单一页面赋设计权限
    sed实现文件自我复制
    iOS第三方支付集成
    移动端报表JS开发演示样例
    马化腾内部分享:产品经理的必修课
    实战c++中的string系列--string与char*、const char *的转换(data() or c_str())
    【React全家桶入门之十】登录与身份认证
    猜拳游戏案例
    Java JDBC利用反射技术将查询结果封装为对象
  • 原文地址:https://www.cnblogs.com/Dong-Ge/p/9646136.html
Copyright © 2020-2023  润新知