下面我按**在 Ubuntu 上使用 ThinkPHP 写接口(API)**的完整思路给你讲,从环境到示例,适合新手。
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl
查看版本:
php -v
sudo apt install composer
或官方方式:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo apt install nginx
composer create-project topthink/think api
目录结构:
api/
├── app/
│ ├── controller/
│ ├── model/
│ └── ...
├── public/
├── config/
└── ...
编辑:
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
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' => '账号或密码错误']);
}
}
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"
}
}
如果你愿意,我可以: ✅ 给你一个 完整 API 示例(含数据库) ✅ 教你 ThinkPHP + JWT ✅ 教你 前后端分离接口规范
你现在是 初学者 / 有 PHP 基础 / 要做项目 哪种?