ThinkPHP初步搭建API服务(详细步骤)

发布时间 - 2021-12-20 00:00:00    点击率:

本篇文章整理了thinkphp6从头开始部署的详细操作步骤,希望能够帮助大家节省探索的时间,对大家有帮助。

1 下载Composer

Composer是 PHP 用来管理依赖(dependency)关系的工具。

1.1 windows版本

下载地址:getcomposer.org/

如果报错:

Program Output: 
PHP Deprecated:  Directive 'track_errors' is deprecated in Unknown on line 0

则修改php.ini:

;track_errors = On (On改为Off) 
track_errors = Off

重启HTTP服务后,安装通过。

1.2 macOS版本

执行:

curl -sS https://getcomposer.org/installer | php

如果报错以下信息,或者迟迟下载不完:

Failed to decode zlib stream

就直接去官网(getcomposer.org/download/)下载最新版的composer.phar

下载后,在存放composer.phar的目录下执行:

mv composer.phar /usr/local/bin/composer

然后就可以全局使用composer了,执行以下命令查看版本号:

composer -v

2 安装/升级ThinkPHP6

执行以下命令,切换为阿里云镜像加速下载:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

选好目录,执行:

composer create-project topthink/think projectName

安装好后,进入项目目录,执行:

php think run

浏览器访问:

http://localhost:8000/

如果改变端口,则执行:

php think run -p 80

升级ThinkPHP6,进入项目根目录,执行:

composer update

实际部署中,应该是绑定域名访问到public目录,确保其它目录不在WEB目录下面。

3 配置调试模式

根目录下的.example.env重命名为.env,设置以下代码:

APP_DEBUG = true

4 多应用部署

目录结构

/www  WEB部署目录(或者子目录) 
├─ /app                  应用目录 
│  ├─ /myApp             子应用目录 
│  │  ├─common.php       子应用函数文件 
│  │  ├─/controller      子应用控制器目录 
│  │    ├─Index.php     子应用控制器 
│  │  ├─/model           子应用模型目录 
│  │  ├─/view            子应用视图目录 
│  │  ├─/config          子应用配置目录 
│  │  ├─/route           子应用路由目录 
│  │  └─ ...             子应用更多类库目录 
│  │ |  ├─BaseController.php  默认基础控制器类 
│  ├─common.php          公共函数文件 
│  ├─event.php           事件定义文件
 |  ├─ExceptionHandle.php 应用异常定义文件(一定要保留这个!否则ERROR 500)
 |  |─middleware.php      全局中间件定义文件
 │  ├─provider.php        服务提供定义文件
 |  └─Request.php         应用请求对象(一定要保留这个!否则ERROR 500)

多应用模式扩展think-multi-app

要使用多应用模式,需要安装think-multi-app,在项目根目录执行以下命令安装:

composer require topthink/think-multi-app

修改控制器的路径

打开app/myApp/controller/Index.php,调整namespace

-   namespace app\controller; 
+   namespace app\myApp\controller; 
    use app\BaseController;

然后通过http服务即可访问:

http://127.0.0.1/thinkphp6/public/index.php/myApp

URL重写

如果想省略index.php,即通过以下方式访问

http://127.0.0.1/thinkphp6/public/myApp

在public/.htaccess添加:

   
Options +FollowSymlinks -Multiviews   
RewriteEngine On   RewriteCond %{REQUEST_FILENAME} !-d   
RewriteCond %{REQUEST_FILENAME} !-f  
 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 

通过官方composer默认安装已经完成了URL重写,这里仅做备忘。

5 多级控制器

目录结构如下:

├─ /app                  应用目录 
│  ├─ /myApp             子应用目录 
│  │  ├─/controller      子应用控制器目录
 │  │    ├─/api           二级控制器目录 
│  │      ├─/Login.php   二级控制器

Login.php代码:

设置之后就可以通过以下URL访问了:

http://127.0.0.1/thinkphp6/public/myApp/api/login

自动创建API控制器

也可以通过命令行自动生成控制器,新生成的控制器包含了预设代码。在根目录执行:

php think make:controller app\myApp\controller\api\Login --api

通过以上设置,基本完成了ThinkPHP6的最基础部署。

(推荐学习:thinkphp5)


# 重写  # 报错  # 就可以  # 完成了  # 下载地址  # 可以通过  # 镜像  # 重启  # 不完  # 命名为 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何生成腾讯云建站专用兑换码?  Laravel如何使用Telescope进行调试?(安装和使用教程)  焦点电影公司作品,电影焦点结局是什么?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Laravel模型事件有哪些_Laravel Model Event生命周期详解  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何快速重置建站主机并恢复默认配置?  Python文件操作最佳实践_稳定性说明【指导】  如何在云指建站中生成FTP站点?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  Android滚轮选择时间控件使用详解  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  在Oracle关闭情况下如何修改spfile的参数  如何在橙子建站上传落地页?操作指南详解  深圳网站制作培训,深圳哪些招聘网站比较好?  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  JavaScript如何实现错误处理_try...catch如何捕获异常?  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  如何在腾讯云免费申请建站?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  如何在VPS电脑上快速搭建网站?  如何用IIS7快速搭建并优化网站站点?  详解jQuery中基本的动画方法  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  如何在宝塔面板中修改默认建站目录?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  免费网站制作appp,免费制作app哪个平台好?  如何做网站制作流程,*游戏网站怎么搭建?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  JavaScript Ajax实现异步通信  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  简历在线制作网站免费版,如何创建个人简历?  如何在阿里云香港服务器快速搭建网站?  如何利用DOS批处理实现定时关机操作详解  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  佛山企业网站制作公司有哪些,沟通100网上服务官网?