怎么搭建Laravel和Vue的开发环境

发布时间:2022-12-07 09:27:04 作者:iii
来源:亿速云 阅读:120

这篇文章主要介绍“怎么搭建Laravel和Vue的开发环境”,在日常操作中,相信很多人在怎么搭建Laravel和Vue的开发环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么搭建Laravel和Vue的开发环境”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

开始前你需要先去安装一个docker客户端,docker的官网中有详细的安装方法。

第一步:获取laravel的源码包

因为我们电脑上不安装composer,所以就不能使用composer来创建laravel项目了, 这里我使用curl直接从github上下载了最新的laravel源码包,你也可以使用wget或者git clone 来获取源码包。

curl -l -o https://github.com/laravel/laravel/archive/v5.5.0.tar.gz /
&& tar -zxvf v5.5.0.tar.gz /
&& rm v5.5.0.tar.gz

上面的命令在curl下载完源码包后会解压源码压缩包,解压完成后在把源码压缩包v5.5.0.tar.gz删掉,执行完后你会看到一个laravel-5.5.0的项目目录。

第二步:添加docker-compose.yml

在项目中创建docker-compose.yml文件。

compose 项目是 docker 官方的开源项目,负责实现对 docker 容器集群的快速编排。我们知道使用一个 dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器。在这里我们会用到四个容器分别将phpmysqlnginx放在四个不同的容器中,通过compose`将四个应用容器关联到一起组成项目。

编排文件的开头如下:

version: '2'
services:
  # our services will go here

在编排文件中,把每个容器叫做一个服务,services下定义整个应用中用到的所有服务(即容器)。

app服务

app服务的容器将执行我们项目中的代码。

app:
 build:
  context: ./
  dockerfile: app.dockerfile
 working_dir: /var/www
 volumes:
  - ./:/var/www
 environment:
  - "db_port=3306"
  - "db_host=database"

notes:

现在我们需要创建上面build环节中提到的app.dockerfile这个文件了,具体内容如下:

from php:7.1.22-fpm

# update packages
run apt-get update

# install php and composer dependencies
run apt-get install -qq git curl libmcrypt-dev libjpeg-dev libpng-dev libfreetype6-dev libbz2-dev

# clear out the local repository of retrieved package files
# run apt-get clean

# install needed extensions
# here you can install any other extension that you need during the test and deployment process
run apt-get clean; docker-php-ext-install pdo pdo_mysql mcrypt zip gd pcntl opcache bcmath


# installs composer to easily manage your php dependencies.
run curl --silent --show-error https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# install node
run apt-get update &&\
  apt-get install -y --no-install-recommends gnupg &&\
  curl -sl https://deb.nodesource.com/setup_10.x | bash - &&\
  apt-get update &&\
  apt-get install -y --no-install-recommends nodejs &&\
  npm config set registry https://registry.npm.taobao.org --global &&\
  npm install --global gulp-cli

cmd php-fpm

notes:

我在这里先将npm和composer装到了app容器中,因为在开发时经常需要执行他们,如果发布到生产环境,一般是使用单独的composer对项目代码进行构建而不是放在运行应用的容器里,容器的核心思想之一就是保持单一,这样才能做到快速增加相同角色的容器。

web服务

接下来,我们需要配置一个web服务器用,我们把这个容器在编排文件中命名成web

web:
 build:
  context: ./
  dockerfile: web.dockerfile
 working_dir: /var/www
 volumes_from:
  - app
 ports:
  - 8080:80

notes:

web服务器选用nginx,所以我们需要用一个nginx镜像文件来构建这个容器,在这之前我们需要在nginx镜像的基础上再设置一下项目中用到的vhost,所以我们需要一个web.dockerfile文件,它的定义如下:

from nginx:1.10

add vhost.conf /etc/nginx/conf.d/default.conf

根据镜像文件的定义,我们把项目中的vhost.conf复制到了容器的/etc/nginx/conf.d/default.conf中,这样基本的nginx配置就配置好了,vhost.conf中的定义如下:

server {
  listen 80;
  index index.php index.html;
  root /var/www/public;

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

  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass app:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param script_filename $document_root$fastcgi_script_name;
    fastcgi_param path_info $fastcgi_path_info;
  }
}

notes:

mysql服务

接下来我们将配置mysql服务,与上面两个服务有点不一样的是,在php-fpm和nginx的容器中,我们配置本地电脑的文件可以同步到容器中供容器访问,这让我们开发时对文件作的更改能够快速的在容器中得到反馈加快我们的开发过程。但是在数据库容器中我们希望容器中创建的文件能够持久化(默认容器销毁时,容器内创建的文件也会被销毁),我们可以通过docker的数据卷来实现上述功能,只不过这次不用再把本地电脑的文件挂在到数据卷上了,docker客户端会管理创建的数据卷的在本地电脑上具体存储的位置。

下面是编排文件中对database服务的设置

version: '2'
services:

 database:
  image: mysql:5.7
  volumes:
   - dbdata:/var/lib/mysql
  environment:
   - "mysql_database=homestead"
   - "mysql_user=homestead"
   - "mysql_password=secret"
   - "mysql_root_password=secret"
  ports:
    - "33061:3306"

volumes:
 dbdata:

notes:

将所有服务编排到一起

下面是完整的docker-compose.yml文件,通过编排文件我们将三个应用容器关联在一起组成了项目的服务端

version: '2'
services:

 # the application
 app:
  build:
   context: ./
   dockerfile: app.dockerfile
  working_dir: /var/www
  volumes:
   - ./:/var/www
  environment:
   - "db_port=3306"
   - "db_host=database"

 # the web server
 web:
  build:
   context: ./
   dockerfile: web.dockerfile
  working_dir: /var/www
  volumes_from:
   - app
  ports:
   - 8080:80

 # the database
 database:
  image: mysql:5.6
  volumes:
   - dbdata:/var/lib/mysql
  environment:
   - "mysql_database=homestead"
   - "mysql_user=homestead"
   - "mysql_password=secret"
   - "mysql_root_password=secret"
  ports:
    - "33061:3306"

volumes:
 dbdata:

启动服务

按照上面的步骤配置好编排文件还有指定的docker镜像文件后,我们就可以通过下面的命令启动服务了,执行完后会启动上面文件里定义的三个服务。

docker-compose up -d

第一次启动时,由于docker客户端要下载上面提到的三个镜像并且构建服务所以启动速度会慢一些,等到下载完镜像并构建完成后,以后的启动都会非常快。

初始化laravel项目

启动完服务后我们可以初始化laravel项目了,步骤跟官方文档里介绍的一样,但是需要在启动的app服务的容器里执行:

docker-compose exec app composer install
docker-compose exec app npm install // 如果包含前端项目的话再执行相关命令
docker-compose exec app cp .env.example .env
docker-compose exec app php artisan key:generate
docker-compose exec app php artisan optimize
docker-compose exec app php artisan migrate --seed
docker-compose exec app php artisan make:controller mycontroller

notes:

查看nginx日志的方法:

执行完上面的命令后你就能通过http://127.0.0.1:8080/访问到项目啦。

怎么搭建Laravel和Vue的开发环境

vue是什么

Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区别是,使用Vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用Vue可以采用单文件组件和Vue生态系统支持的库开发复杂的单页应用。

到此,关于“怎么搭建Laravel和Vue的开发环境”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. Laravel的容器Vagrant+Homestead+Composer+Yaml开发环境搭建正确步骤
  2. 怎么搭建vue.js的开发环境

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue laravel

上一篇:怎么搭建Laravel本地环境

下一篇:Laravel如何获取上一篇和下一篇文章数据

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》