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