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項目中app\Http\Controllers\下創建一個控制器UserController.php,並在routes\web.php中創建一個路由

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

指向剛創建的控制器UserController.php,測試訪問http://laravel.test/User,結果提示:

 查閱相關資料,才發現是數據庫的ip對不上,然后把數據庫的host改成當前機器的ip就好了

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM