Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vue+tp6 php框架如何快速建立一个前后端分离项目

Vue+tp6 php框架如何快速建立一个前后端分离项目

原创
作者头像
PHP开发工程师
修改于 2021-04-26 06:43:49
修改于 2021-04-26 06:43:49
4.7K02
代码可运行
举报
文章被收录于专栏:thinkphp+vuethinkphp+vue
运行总次数:2
代码可运行

作者主要是写后端的,所以本文主要以后端的角度,讲如何使用Vue+Tp框架结合,快速打通一个前后端分离的项目部署,可以作为后端学习Vue的入门步骤,通过此教程,你可以学到在生产环境和本地环境中,vue+tp 等框架是如何结合以及部署的。

提示:

1、写本文章时,代码环境在Windows 系统下,本地使用PHPstudy集成环境讲解。

2、本文章主要向初学Vue的后端同学讲解Vue与后端基础的结合使用

3、如果有看过Vue的文档,并且学习过基础语法以及使用,会使你更易理解下面的内容。

一:安装 Node 环境

  1. 下载地址为:https://nodejs.org/en/
  2. 终端输入以下命令检查是否安装成功:如果输出版本号,说明环境安装成功。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Users\Administrator>node -v
v12.18.3
C:\Users\Administrator>npm -v
6.14.6

二:安装Vue项目环境

  1. 全局安装 vue-cli
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Users\Administrator>npm install --global vue-cli

2. 进入Web项目目录,创建一个基于 webpack 的Vue项目,例如我这边是集成环境的目录下 D:\phpstudy_pro\WWW>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\phpstudy_pro\WWW>vue init webpack vue-demo2
  //创建一个基于webpack 的Vue项目 vue-demo2 是你自定义的项目名,回车后出现下面选项

? Project name vue-demo2
 //项目名,默认回车
? Project description A Vue.js project
 //默认回车
? Author xxx //默认回车
? Vue build standalone
 // 打包方式 默认回车
? Install vue-router? Yes
 //是否使用vue-router,选Y
? Use ESLint to lint your code? No
 //js语法检测,教程中不需要
? Set up unit tests No
 //单元测试工具,教程不需要
? Setup e2e tests with Nightwatch? No
 // 是否需要 端到端测试工具 教程不需要
? Should we run `npm install` for you after the project has been created? (recommended) no
  //我们选择手动
 vue-cli · Generated "vue-demo2".
# Project initialization finished!
# ========================

To get started:

  cd vue-demo2
  npm install (or if using yarn: yarn)
  npm run dev

Documentation can be found at https://vuejs-templates.github.io/webpack

3. 进入我们安装好的Vue项目目录下,安装依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\phpstudy_pro\WWW>cd vue-demo2

D:\phpstudy_pro\WWW\vue-demo2>npm install
//安装好后 项目中会生成node_modules文件夹

4.启动一下吧

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\phpstudy_pro\WWW\vue-demo2>npm run dev
   
//启动成功后如下
 DONE  Compiled successfully in 3266ms  
                                                                                                                                                                                                                
 I  Your application is running here: http://localhost:8080
//访问 http://localhost:8080

5.项目各目录的讲解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1、build:构建脚本目录
    1)build.js ==> 生产环境构建脚本;
    2)check-versions.js ==> 检查npm,node.js版本;
    3)utils.js ==> 构建相关工具方法;
    4)vue-loader.conf.js ==> 配置了css加载器以及编译css之后自动添加前缀;
    5)webpack.base.conf.js ==> webpack基本配置;
    6)webpack.dev.conf.js ==> webpack开发环境配置;
    7)webpack.prod.conf.js ==> webpack生产环境配置;
2、config:项目配置
    1)dev.env.js ==> 开发环境变量;
    2)index.js ==> 项目配置文件;
    3)prod.env.js ==> 生产环境变量;
3、node_modules:npm 加载的项目依赖模块
4、src:开发源码的目录:
    1)assets:资源目录,放置一些图片或者公共js、公共css。这里的资源会被webpack构建;
    2)components:组件目录;
    3)router:前端路由;
    4)App.vue:根组件;
    5)main.js:入口js文件;
5static:静态资源目录,如图片、字体等。不会被webpack构建
6、index.html:首页入口文件,可以添加一些 meta 信息等
7package.json:npm包配置文件,定义了项目的npm脚本,依赖包等信息

三:安装axios和Vue-axios

1、安装axiosvue-axios

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install axios
npm install vue-axios

2、在main.js中导入并全局使用axosvue-axios

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import axios from 'axios'
import VueAxios from "vue-axios";

Vue.config.productionTip = false
Vue.prototype.$axios= axios
Vue.use(VueAxios,axios);

四:通过 axios 访问后端接口地址

1、默认已经开启好后端框架,并且写好了一个测试接口

(我这边是通过PHP+nginx 环境在本地运行的虚拟地址 http://www.apipay.local/ 项目是tp6 ,使用路由模式 接口路径为: vue/:id/:name)

2、创建一个组件,并访问后端测试接口获取数据

1、在components目录下新建一个views目

2、在views目录下新建User.vue

  3、在router目录下的index.js里面配置路由路径

4、在User.vue中,实现简单的页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
 <div class="user-app">
   {{data.msg}}
   <button>获取用户</button>
 </div>
</template>

<script>
  var data = {
   msg :'',
  };
    export default {
        name: "User",
        components: {

        },
      data(){
        return{
           data
          };
        }
    }
</script>

<style scoped>

</style>

5、配置api和跨域问题 ,修改 config/index.js 文件

之后我们就可以使用 /api 代替我们的接口地址了, 回到我们的 User.vue 文件,写我们的 axios

在页面中,我们点击 获取用户 按钮, 应该看到了变化

我们后端的测试接口,返回给了前端用参数处理过的数据

5.打包vue项目

1、我们在开发完成后,正式部署并不是用开发环境 的 npm run dev ,通常是会使用打包命令,将项目打包部署

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\phpstudy_pro\WWW\vue-demo>npm run build
> node build/build.js

Hash: f6e6dd08cd436d9bd752
Version: webpack 3.12.0
Time: 20095ms
                                                  Asset       Size  Chunks             Chunk Names
               static/js/vendor.57afaceb9157d9a5a1db.js     139 kB       0  [emitted]  vendor
                  static/js/app.ff0968066b123c084c9c.js    12.3 kB       1  [emitted]  app
             static/js/manifest.2ae2e69a05c33dfc65f8.js  857 bytes       2  [emitted]  manifest
    static/css/app.2f3da4cc8383bdb00c956e7a1fb6d6f0.css  432 bytes       1  [emitted]  app
static/css/app.2f3da4cc8383bdb00c956e7a1fb6d6f0.css.map  873 bytes          [emitted]
           static/js/vendor.57afaceb9157d9a5a1db.js.map     694 kB       0  [emitted]  vendor
              static/js/app.ff0968066b123c084c9c.js.map    26.9 kB       1  [emitted]  app
         static/js/manifest.2ae2e69a05c33dfc65f8.js.map    4.97 kB       2  [emitted]  manifest
                                             index.html  510 bytes          [emitted]

  Build complete.

  Tip: built files are meant to be served over an HTTP server.
  Opening index.html over file:// won't work.

2、打包好后,可以在项目文件夹中,看到一个 dist 文件夹,这就是打包好的项目文件夹了,我们可以使用 nginx 配置web 项目入口为 dist

Nginx 配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
        listen        8082;
 //端口,因为都在本地环境,为了不和dev冲突
        server_name  www.vuedemo.local;
 //前端页面域名
        root   "D:/phpstudy_pro/WWW/vue-demo/dist";
 //绑定的是dist
        location / {
            index index.php index.html error/index.html;
    
            autoindex  off;
        }
        location ~ /api/ {
   //反向代理 /api/ 很重要的步骤
            rewrite /api/(.*)$ /$1 break;
            proxy_pass http://www.apipay.local;
        }
}

访问一下打包好的页面吧!

可以看到,访问带域名的8082端口的web 项目,也就是打包好的生产环境了,访问接口也成功。

至此,已经完成了 一个 简单的Vue+TP6框架的 前后端分离项目搭建,作为后端同学学习Vue+PHP 项目搭建的入门第一步已经完成,还有更多的细节内容,和优化方法在这里就不不一一写出

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mysql图形化工具使用教程_mysql图形化管理工具介绍
MySQL 有许多图形化的管理工具,我们在此介绍二个官方的工具「MySQL Administrator」及「MySQL Query Browser」。MySQL Administrator 是用来管理 MySQL Server 用的,您可以查看目前系统状态、新增使用者等。而 MySQL Query Browser 可以用来查看数据库内容。
全栈程序员站长
2022/09/12
3.2K0
mysql图形化工具使用教程_mysql图形化管理工具介绍
关于FTP搭建问题
1. 匿名服务器的连接(独立的服务器) 在/etc/vsftpd.conf(或在/etc/vsftpd/vsftpd.conf)配置文件中添加如下几项: Anonymous_enable=yes (允许匿名登陆) Dirmessage_enable=yes (切换目录时,显示目录下.message的内容) Local_umask=022 (FTP上本地的文件权限,默认是077) Connect_form_port_20=yes (启用FTP数据端口的数据连接)* Xferlog_enable=yes (激活上传和下载的日志) Xferlog_std_format=yes (使用标准的日志格式) Ftpd_banner=XXXXX (欢迎信息) Pam_service_name=vsftpd (验证方式)* Listen=yes (独立的VSFTPD服务器)* 注释:以上配置只能连接FTP服务器,不能上传和下载 注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
云知识Online
2018/05/03
2.6K0
vsftpd如何用PAM去认证用户
vsftpd可能是世界上最好的ftpd。它在linux世界非常流行,安全,性能高。 本文的目的是让PgSQL存储你的vsftp的虚拟用户和密码,通过一个叫做pam的来认证。 零、简述PAM原理。 如果你已经对pam有所了解,请跳过,我知道的可能还不如你多。你不感兴趣也请跳过,因为不看这个也可配置。 代码: 用户 vsftpd PAM模块 用户和密码数据库 vsftpd用了一种很聪明同时也是unix/linux规范的方法来认证用户,就是PAM。大家对于PAM,也许有些陌生,但是一直在用。所谓PAM,英文是:Pluggable Authentication Modules,可拔插认证模块(不知道这样翻译对不对)。看见plug这个关键字,就知道是很灵活的。 现在几乎所有daemon程序一般都是用PAM来进行认证的,包括telnet/sshd/imapd,甚至你的login,都是用PAM。在 fbsd 4上的朋友,你可以打ps -ax|grep pam,你会发现login了多少个控制台,就会有多少个写着pam的进程。 PAM的最大好处是灵活。它不管你的用户和密码用什么数据格式存储(数据库也好,通常用的密码文件也好),只要有相应的PAM模块就可以存储。比如说,大家不仅可以用vsftpd + PgSQL做用户登陆验证,只要你喜欢你还可以用MySQL,Oracle,LDAP数据库存储用户数据,只要有相应的PAM就可以。所有的daemon 都可以用一个后台数据库来做用户验证登陆,包括telnet/sshd等等。 pam的配置机制在不同版本的freebsd上有差异。 freebsd-4放在/etc/pam.conf,一个文件记录所有pam服务。 freebsd-5放在/etc/pam.d,/usr/local/etc/pam.d。每个pam服务由一个独立的文件记录。 本文不打算详细叙述PAM的配置。PAM的配置不是很难,毕竟,只是要你配置一些参数,不是叫你开发一个pam模块出来。而且本文的篇幅所限,偶刚刚知道的一点东西希望能够起到抛砖引玉的作用。等偶对pam再玩得深入和熟一点的时候,再写一篇关于深入一点关于pam的东东? 准备开始:提要 简单讲讲要用到的配置文件的作用。 引用: /etc/pam.conf #pam服务的配置 /etc/pam_pgsql.conf #pam_pgsql.so的配置 /usr/local/etc/vsftpd.conf #vsftpd的配置 一、安装vsftpd,PostgreSQL,pam_pgsql。 我都是使用port来安装的,请大家用port/package来安装,不要自己下载源码来编译,否则可能根据本文的方法可能无法正常使用。其中vsftpd和pam-pgsql一定要用port/package来安装。 以下是他们的port目录: 引用: /usr/ports/ftp/vsftpd /usr/ports/databases/postgresql7 /usr/ports/security/pam-pgsql 安装:只要cd进去,然后make install就OK了。 二、PostgreSQL安装(如果你已经有了PostgreSQL,不需要看这一节) 简单提提用port来装PostgreSQL的过程,因为BSD版上的装PgSQL的方法都是自己下载源码编译的。我是用port来编译安装,因为这是fbsd推荐的安装方法,而且安装的软件会根据bsd的hier(目录结构)来安装,比较便于管理。 当用port来安装好PostgreSQL,默认的数据库管理用户是pgsql(port里头的安装程序自动添加的),其他系统默认的是postgres。初始化PostgreSQL的程序如下: 1、初始数据库。请先用root登陆或者su到root。然后,打命令: 代码: # su pgsql # initdb 正常初始化的应该有以下提示: 引用:
会长君
2023/04/25
1.3K0
SELinux的基本使用
从进入了 CentOS 5.x 之后的 CentOS 版本中 (当然包括 CentOS 7),SELinux 已经是个非常完备的核心模块了!尤其 CentOS 提供了很多管理 SELinux 的指令与机制,因此在整体架构上面是单纯且容易操作管理的!所以,在没有自行开发网络服务软件以及使用其他第三方协力软件的情况下,也就是全部使用 CentOS 官方提供的软件来使用我们服务器的情况下,建议大家不要关闭 SELinux ! 让我们来仔细的玩玩这家伙吧!
小柒吃地瓜
2020/04/23
3K0
vsftpd简介及搭建配置
FTP(文件传输协议)全称是:Very Secure FTP Server。  Vsftpd是linux类操作系统上运行的ftp服务器软件。
星哥玩云
2022/07/14
5.5K0
centos部署ftp服务_文件服务器搭建
vsftpd配置文件的默认路径是 /etc/vsftpd/vsftpd.conf。
全栈程序员站长
2022/10/01
1.7K0
使用hyper backup与rsync将数据备份到unraid
整理自: https://forums.unraid.net/topic/2100-rsync/
超级大猪
2021/11/22
3.9K1
使用hyper backup与rsync将数据备份到unraid
Linux上安装配置Nginx与ftp服务
首先在Nginx官网下载稳定版本的Nginx安装包,并将安装包上传到Linux。 使用 tar -zxvf nginx-1.16.0.tar.gz 将压缩包解压。
Java阿呆
2020/11/04
4.7K0
Linux上安装配置Nginx与ftp服务
FTP文件服务器
FTP (File transfer protocol) 是TCP/IP 协议组中的协议之一。他最主要的功能是在服务器与客户端之间进行文件的传输。FTP就是实现两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载 (download)”文件。将文件从自己计算机中拷贝至远程计算机上,则称之为“上传(upload)”文件。这个古老的协议使用的是明码传输方式,且过去有相当多的安全危机历史。为了更安全的使用 FTP 协议,我们主要介绍较为安全但功能较少的 vsftpd(very secure File transfer protocol ) 这个软件。FTP是一个C/S类型的软件,FTP监听TCP端口号为21,数据端口为20。
星哥玩云
2022/09/15
22.6K0
vsftp服务器常规参数配置大全(二)
4. IP监听与连接控制      vsftpd工作在独立模式(standalone)下的启动参数有两项:
会长君
2023/04/25
2.6K0
Apache的httpd.conf文件配置详解
Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现。下面让我们来看看httpd.conf的内容,它主要分成3大部分: Section 1:Global Environment Section 2:'Main' server configurationphpma.com Section 3:Virtual Hosts 【第一部分】 ·ServerType standalone 这表示Apache是以standalone启动
wangxl
2018/03/07
2.7K0
RHEL6.4 搭建FTP服务器
[root@ftp-server ~]# vim /etc/vsftpd/vsftpd
星哥玩云
2022/07/01
3720
如何增强Linux和Unix服务器的安全性
操作系统内部的记录文件是检测是否有网络入侵的重要线索。如果您的系统是直接连到internet,您发现有很多人对您的系统做telnet/ftp登录尝试,可以运行"#more /var/log/secure grep refused"来检查系统所受到的攻击,以便采取相应的对策,如使用ssh来替换telnet/rlogin等。
会长君
2023/04/26
9400
vsftp配置文件详解
-vsftpd.user_list文件需要与vsftpd.conf文件中的配置项结合来实现对于vsftpd.user_list文件中指定用户账号的访问控制:
孤鸿
2022/09/23
4.2K0
sshd_config详解
# 1. 关于 SSH Server 的整体设定,包含使用的 port 啦,以及使用的密码演算方式
呆呆
2021/05/26
2K0
Linux下使用Nginx+vsftpd搭建图片服务器
传统项目中,可以在web项目中添加一个文件夹,来存放上传的图片。例如在工程的根目录WebRoot下创建一个images文件夹。把图片存放在此文件夹中就可以直接使用在工程中引用。
星哥玩云
2022/07/27
1.2K0
Linux下使用Nginx+vsftpd搭建图片服务器
ubuntu 16.04 搭建ftp服务器
如果登录后出现如下错误,则在/etc/vsftpd.conf文件内添加allow_writeable_chroot=YES
全栈程序员站长
2022/09/14
1.6K0
【Linux】《how linux work》第十章 网络应用和服务(1)
This chapter explores basic network applications—the clients and servers running in user space that reside at the application layer. Because this layer is at the top of the stack, close to end users, you may find this material more accessible than the material in Chapter 9. Indeed, you interact with network client applications such as web browsers and email readers every day.
阿东
2024/04/27
1750
【Linux】《how linux work》第十章 网络应用和服务(1)
解决Centos下vsftp无法上传文件的问题,附vsftp配置详解
重量网络最近买了一个腾讯云的 VPS,一直在折腾着,偶然请我帮忙敲几行命令解决一些小问题。 这不,今天他通过 yum 在线安装了一个 vsftp 后,发现不太会用,就按照网上的教程东搞西搞。最后发现无法上传文件了,就给我操作了一把。 用 SecureCRT 远程登录后,我做了如下检查: ①、打开了 vsftp 配置文件(/etc/vsftpd/vsftpd.conf)检查 write_enable 状态,发现正常: [root@VM_72_108_centos /]# cat /etc/vsftpd/vsf
张戈
2018/03/23
6.3K0
红帽子linux 架设ftp,RedHatLinux9架设FTP服务器方法[通俗易懂]
vsftpd是目前Linux最好的FTP服务器工具之一,其中的vs就是“VerySecure”(很安全)的缩写,可见它的最大优点就是安全,除此之外,它还具有体积小,可定制强,效率高的优点。
全栈程序员站长
2022/09/14
2K0
相关推荐
mysql图形化工具使用教程_mysql图形化管理工具介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验