在CentOS上使用Laravel构建API涉及几个步骤,包括安装必要的软件、设置Web服务器、配置数据库以及编写API代码。以下是一个基本的指南:
首先,确保你的CentOS系统是最新的,并且已经安装了PHP和Composer。
sudo yum update -y
sudo yum install -y epel-release
sudo yum install -y httpd php php-mysqlnd php-pdo php-gd php-mbstring php-xml php-pear php-bcmath
使用Composer安装Laravel。
composer global require laravel/installer
确保将Composer的全局bin目录添加到你的系统PATH中。编辑你的~/.bashrc或~/.bash_profile文件,添加以下行:
export PATH="$HOME/.composer/vendor/bin:$PATH"
然后运行:
source ~/.bashrc
使用Laravel安装器创建一个新的Laravel项目。
laravel new myapi
cd myapi
编辑.env文件以配置你的数据库连接。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=myapi
DB_USERNAME=root
DB_PASSWORD=yourpassword
然后运行迁移以创建数据库表:
php artisan migrate
使用Artisan命令创建一个新的控制器。
php artisan make:controller API/ApiController --api
编辑app/Http/Controllers/API/ApiController.php文件,添加你的API逻辑。例如:
namespace App\Http\Controllers\API;
use Illuminate\Http\Request;
use App\Models\User;
class ApiController extends Controller
{
    public function index()
    {
        return User::all();
    }
    public function show($id)
    {
        return User::findOrFail($id);
    }
    public function store(Request $request)
    {
        $user = User::create($request->all());
        return response()->json($user, 201);
    }
    public function update(Request $request, $id)
    {
        $user = User::findOrFail($id);
        $user->update($request->all());
        return response()->json($user);
    }
    public function destroy($id)
    {
        $user = User::findOrFail($id);
        $user->delete();
        return response()->json(null, 204);
    }
}
编辑routes/api.php文件,定义你的API路由。
use App\Http\Controllers\API\ApiController;
Route::get('/users', [ApiController::class, 'index']);
Route::get('/users/{id}', [ApiController::class, 'show']);
Route::post('/users', [ApiController::class, 'store']);
Route::put('/users/{id}', [ApiController::class, 'update']);
Route::delete('/users/{id}', [ApiController::class, 'destroy']);
使用Apache或Nginx作为Web服务器。以下是Apache的配置示例:
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
创建一个新的Apache配置文件:
sudo vi /etc/httpd/conf.d/myapi.conf
添加以下内容:
<VirtualHost *:80>
    ServerName myapi.local
    DocumentRoot /path/to/your/laravel/project/public
    <Directory /path/to/your/laravel/project/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/myapi_error.log
    CustomLog ${APACHE_LOG_DIR}/myapi_access.log combined
</VirtualHost>
重启Apache:
sudo systemctl restart httpd
现在你可以通过浏览器或API测试工具(如Postman)访问你的API。例如:
GET http://myapi.local/api/usersGET http://myapi.local/api/users/1POST http://myapi.local/api/users(带有JSON数据)PUT http://myapi.local/api/users/1(带有JSON数据)DELETE http://myapi.local/api/users/1这样,你就可以在CentOS上使用Laravel构建一个基本的API了。根据需要,你可以进一步扩展和优化你的API。