1. 项目环境

  vagrant + laradock  (因为 自己手动搭建环境太麻烦了 自己弄了一下 感觉还是有些漏洞 所以采用 laradock)

2. Vagrantfile

  备注 : box  ubuntu1604 (因为 网速太慢 自己下载之后再 add 的 网速不够可以 参考 ttps://c4ys.com/archives/1230 ) 可以改写为 ubuntu/xenial64 ( https://app.vagrantup.com/ubuntu/boxes/xenial64 )

# -*- mode: ruby -*-

# vi: set ft=ruby :

Vagrant.require_version ">= 1.6.0"

boxes = [

{

:name=>"docker-host",

:eth1=>"192.168.205.11",

:mem=>"3072",

:cpu=>"1",

:port=>"8888"

}

]

Vagrant.configure(2) do |config|

config.vm.box = "ubuntu1604"

boxes.each do |opts|

config.vm.define opts[:name] do |config|

config.vm.hostname = opts[:name]

config.vm.network "forwarded_port", guest: 80, host: opts[:port]

config.vm.provider "vmware_fusion" do |v|

v.vmx["memsize"] = opts[:mem]

v.vmx["numvcpus"] = opts[:cpu]

end

config.vm.provider "virtualbox" do |v|

v.customize ["modifyvm", :id, "--memory", opts[:mem]]

v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]

end

config.vm.network :private_network, ip: opts[:eth1]

end

end

config.vm.synced_folder "./labs", "/home/ubuntu/labs"

config.vm.provision "shell", privileged: true, path: "./setup.sh"

end

3. 创建 labs

  mkdir labs

4. 编写 setup.sh

#setup.sh

# change apt-get source

sudo su

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo tee >>/etc/apt/sources.list<<EOF

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted

deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties

deb http://mirrors.aliyun.com/ubuntu/ xenial universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties

deb http://archive.canonical.com/ubuntu xenial partner

deb-src http://archive.canonical.com/ubuntu xenial partner

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties

deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

EOF

sudo apt-get update

# install docker

sudo apt-get remove docker docker-engine docker.io

sudo apt-get update

sudo apt-get install -y \

linux-image-extra-$(uname -r) \

linux-image-extra-virtual

sudo apt-get install -y \

apt-transport-https \

ca-certificates \

curl \

software-properties-common

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88

sudo add-apt-repository \

"deb [arch=amd64] https://download.docker.com/linux/ubuntu \

$(lsb_release -cs) \

stable"

sudo apt-get update

sudo apt-get install -y docker-ce

sudo docker version

# create docker user and auth

sudo groupadd docker

sudo usermod -aG docker ubuntu

sudo systemctl restart docker

# change docker source

mkdir /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://v2ltjwbg.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

sudo docker info

# install docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

5. 启动 vagrant 并 进入 容器

  vagrant up

  vagrant ssh docker-host

6. 因 mac/windows 的 labs 挂载 到了 虚拟机的 /home/ubuntu/labs 下 , 所以 在 labs 目录下使用 mac/windows 的 git 复制 laradock 到本地

  在 labs 下 (git 请自行下载)

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

7. 在 laradock 下 部署 nginx + php-fpm + rabbitmq + elasticseach + redis 的 环境

  cp env-example .env

  docker-compose up -d elasticsearch mysql rabbitmq nginx php-fpm redis

  注意  如果 elasticseach 报错

    max virtual memory areas vm.maxmapcount [65530] is too low

  请在 虚拟机 上运行

    sudo sysctl -w vm.max_map_count=262144

  然后重新 build elasticseach  即可

    docker-compose build elasticsearch

    docker-compose restart elasticsearch

8. 查看各个项目 启动情况

  docker-compose ps

9. 部署项目

  想一个域名  (eg : laravel-demo.com) 配置到 host 文件  保存退出

    sudo vim /etc/host (mac host , window 的话自己查一下咯)

    192.168.205.11  laravel-demo.com

  在 labs 下 创建 一个 laravel 5.5 的项目

    # 全局 安装 composer (php 的话 自己解决一下)

    # curl --silent -o /tmp/composer-setup.php https://getcomposer.org/installer

    # php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

    composer create-project --prefer-dist laravel/laravel=5.5.* laravel

  在 laradock 下 nginx  下 sites 复制 default.conf 一个 相同的 conf 做 稍许修改 (eg: laravel-demo.conf)

server {

listen 80;

listen [::]:80;

# 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 laravel-demo.com;

root /var/www/laravel-demo/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-upstream;

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;

}

}

  重新 build nginx

    docker-compose build nginx

    docker-compose restart nginx

10 访问部署网站

  laravel-demo.com

1. laravel 学习 环境搭建的更多相关文章

  1. Laravel 开发环境搭建 - Windows

    Laravel 开发环境搭建 - Windows  :   https://laravel-china.org/docs/laravel-development-environment/5.5/dev ...

  2. 深度学习环境搭建:Tensorflow1.4.0+Ubuntu16.04+Python3.5+Cuda8.0+Cudnn6.0

    目录 深度学习环境搭建:Tensorflow1.4.0+Ubuntu16.04+Python3.5+Cuda8.0+Cudnn6.0 Reference 硬件说明: 软件准备: 1. 安装Ubuntu ...

  3. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  4. Linux学习环境搭建流程

    Linux学习环境搭建 Vmware安装 VMware下载:https://www.vmware.com/go/getworkstation-win 运行安装程序,该重启安装驱动就重启,不需要就下一步 ...

  5. VS2013中Python学习环境搭建

    VS2013中Python学习笔记[环境搭建] 前言 Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的设计具有很强的可读性,相比其他语言经常使用英文关键字, ...

  6. 《UNIX网络编程 卷1》之"学习环境搭建"(CentOS 7)

    <UNIX网络编程 卷1>的源码可以从www.unpbook.com下载得到.解压之后的目录为unpv13e. 详细步骤 编译 进入unpv13e目录,按如下步骤编译: ./configu ...

  7. [AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建

    这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产.本人现在非常熟练linux(Ubuntu/centOS/openSUSE).wind ...

  8. 大数据学习环境搭建(CentOS6.9+Hadoop2.7.3+Hive1.2.1+Hbase1.3.1+Spark2.1.1)

    node1 192.168.1.11 node2 192.168.1.12 node3 192.168.1.13 备注 NameNode Hadoop Y Y 高可用 DateNode Y Y Y R ...

  9. Python学习环境搭建——VMware,Ubuntu,Anaconda,Pycharm

    1.安装VMware虚拟机,版本是14.1.2(含注册码) 链接:https://pan.baidu.com/s/1ffNLONDjEMYDAenE36gRpA 密码:yazx 注:我的电脑分辨率较高 ...

随机推荐

  1. UVA - 12166 Equilibrium Mobile (修改天平)(dfs字符串表示的二叉树)

    题意:问使天平平衡需要改动的最少的叶子结点重量的个数. 分析:天平达到平衡总会有个重量,这个重量可以由某个叶子结点的重量和深度直接决定. 如下例子: 假设根结点深度为0,结点6深度为1,若以该结点为基 ...

  2. MySQL每日执行

    drop event if exists upload_deadline; DELIMITER $$ create event upload_deadline day starts timestamp ...

  3. jar包学习

    jar: java的压缩包,主要用于存储类文件,或者配置文件等. 命令格式: jar -cf 包名.jar 包目录 解压缩: jar -xvf 包名.jar 将jar包目录列表重定向到一个文件中: j ...

  4. 实验吧-杂项-啦啦啦(数据包http导出、图片拼接)

    比较综合的一道题. 1.数据包数据提取 首先下载数据包,一般数据包都是抓取的一些数据,需要对数据进行分析. 用wireshark打开数据包,筛选出http协议的数据,发现有两个是上传的数据: 我们就看 ...

  5. 超级简单 一分钟实现react-native屏幕适配

    今天因为react-native的style只能给width和height设置数字 没有react上的vw和vh 因为之前经常用vh vw 感觉不适应 找到了一个新的方法 使用Demension模块 ...

  6. SecureCRT打开文件中文乱码

    1.菜单:option(选项): 2.选择session options(会话选项): 3.打开的窗口中,点击Appearance(外观): 4.页面上:character encoding(字符编码 ...

  7. Python 内置类型 dict, list,线程安全吗

    近段时间发现一个 Python 连接数据库的连接是线程不安全的,结果惹得我哪哪儿都怀疑变量的多线程是否安全的问题,今天终于找到了正确答案,那就是 Python 内置类型 dict,list ,tupl ...

  8. POJ - 1321 棋盘问题(简单搜索)

    题意:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方 ...

  9. hibernate注解 笔记

    1.hibernate使用@where实现条件过滤功能 其里面只有一个参数clause,完整用法是: @Where(clause = "VALID_FLAG=1") 可以加在实体类 ...

  10. java课程之团队开发冲刺阶段2.6

    总结昨天进度: 1.总体的思路已经完成,代码也差不多了,只剩下对闹钟activity的设置 遇到的困难: 1.在设置震动的时候,对方法有点不太理解,所以使用的时候产生了错误,没有达到预期的效果 今天的 ...