温馨提示×

ubuntu怎么用thinkphp写接口

小樊
36
2026-10-01 15:33:22
栏目: 编程语言

下面我按**在 Ubuntu 上使用 ThinkPHP 写接口(API)**的完整思路给你讲,从环境到示例,适合新手。


一、Ubuntu 环境准备

1. 安装 PHP(推荐 PHP 8.1+)

sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl

查看版本:

php -v

2. 安装 Composer(ThinkPHP 依赖管理)

sudo apt install composer

或官方方式:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

3. 安装 Nginx(或 Apache)

sudo apt install nginx

二、创建 ThinkPHP 项目

1. 使用 Composer 创建

composer create-project topthink/think api

目录结构:

api/
├── app/
│   ├── controller/
│   ├── model/
│   └── ...
├── public/
├── config/
└── ...

三、配置接口环境

1. 配置 Nginx

编辑:

sudo nano /etc/nginx/sites-available/api

示例配置:

server {
    listen 80;
    server_name api.test;

    root /var/www/api/public;
    index index.php;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }
}

启用:

sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-enabled/
sudo systemctl restart nginx

四、写一个简单接口

1. 创建控制器

php think make:controller User

文件:app/controller/User.php

<?php
namespace app\controller;

use think\facade\Request;
use think\facade\Response;

class User
{
    public function index()
    {
        return json([
            'code' => 200,
            'msg' => 'success',
            'data' => ['name' => 'Tom']
        ]);
    }

    public function login()
    {
        $username = Request::post('username');
        $password = Request::post('password');

        if ($username === 'admin' && $password === '123456') {
            return json(['code' => 200, 'msg' => '登录成功']);
        }

        return json(['code' => 401, 'msg' => '账号或密码错误']);
    }
}

2. 配置路由(推荐 API 模式)

route/app.php

use think\facade\Route;

Route::get('user', 'User/index');
Route::post('login', 'User/login');

五、测试接口

本地访问

curl http://api.test/user

返回:

{
  "code": 200,
  "msg": "success",
  "data": {
    "name": "Tom"
  }
}

六、常见接口功能

  • 数据库操作(MySQL)
  • JWT / Token 鉴权
  • 跨域(CORS)
  • 统一返回格式
  • 接口版本(/api/v1)

如果你愿意,我可以: ✅ 给你一个 完整 API 示例(含数据库) ✅ 教你 ThinkPHP + JWT ✅ 教你 前后端分离接口规范

你现在是 初学者 / 有 PHP 基础 / 要做项目 哪种?

0 踩