利用LNMP(Linux, Nginx, MySQL, PHP)搭建API服务是一个常见的做法,以下是一个基本的步骤指南:
安装Nginx:
sudo apt update
sudo apt install nginx
配置Nginx:
编辑Nginx配置文件,通常位于 /etc/nginx/sites-available/default
或创建一个新的配置文件。
server {
listen 80;
server_name your_domain.com;
location /api/ {
proxy_pass http://localhost:3000; # 假设你的PHP-FPM运行在3000端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
确保启用配置:
sudo ln -s /etc/nginx/sites-available/your_config /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
安装MySQL:
sudo apt update
sudo apt install mysql-server
安全配置MySQL: 运行安全脚本:
sudo mysql_secure_installation
创建数据库和用户: 登录MySQL并创建数据库和用户:
sudo mysql -u root -p
在MySQL shell中:
CREATE DATABASE your_database;
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
安装PHP及其扩展:
sudo apt update
sudo apt install php-fpm php-mysql
配置PHP-FPM:
编辑PHP-FPM配置文件,通常位于 /etc/php/7.4/fpm/pool.d/www.conf
(根据你的PHP版本调整路径)。
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
重启PHP-FPM:
sudo systemctl restart php7.4-fpm
创建项目目录:
sudo mkdir -p /var/www/your_project
sudo chown -R www-data:www-data /var/www/your_project
cd /var/www/your_project
安装Composer(如果需要):
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
初始化项目:
composer init
创建API控制器:
创建一个简单的PHP文件来处理API请求,例如 index.php
:
<?php
require 'vendor/autoload.php';
use Slim\Factory\AppFactory;
$app = AppFactory::create();
$app->get('/api/data', function ($request, $response, $args) {
$data = [
'message' => 'Hello, World!',
'status' => 200
];
return $response->withHeader('Content-Type', 'application/json')->write(json_encode($data));
});
$app->run();
安装Slim框架(如果使用Slim):
composer require slim/slim "^3.0"
配置Nginx以支持PHP:
确保Nginx配置文件中的 location
块正确指向PHP-FPM套接字:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
启动PHP-FPM:
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm
启动Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
现在,你的API服务应该可以通过浏览器或API客户端访问了。例如,访问 http://your_domain.com/api/data
应该返回JSON响应。
通过以上步骤,你应该能够成功搭建一个基本的LNMP API服务。