利用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服務。