安裝swoole
下載swoole原始碼。進行編譯安裝。操作很簡單,就不展示具體的流程。
cd path/swoole_source_code/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-openssl --with-openssl-dir=/usr/bin/openssl
make
make install
這裡的OpenSSL不是必須,因為個人設計到微信小程式,因此需要配置OpenSSL。
編寫PHP程式碼
建立專案目錄
mkdir qiniu_daodao
安裝七牛雲sdk包。
composer require qiniu/php-sdk
建立一個index.php
touch index.php
編寫如下程式碼
<?php
use Qiniu\Auth;
$http = new Swoole\Http\Server("0.0.0.0", 9501);
$http->set([
// 下面的兩個檔案填寫你ssl證照的絕對路徑。
'ssl_cert_file' => '/usr/local/nginx/conf/ssl/1282278_wx.xx.com.pem',
'ssl_key_file' => '/usr/local/nginx/conf/ssl/1282278_wx.xx.com.key',
'daemonize' => 1,
'log_file' => '/home/wwwlogs/xx.xx.xx.log',
]);
$http->on('request', function ($request, $response) {
$redis = new Redis();
// 需要安裝redis擴充套件。
$redis->connect('127.0.0.1', 6379);
$token = $redis->get('qiniu_token');
$message = 'ok';
$code = 200;
if (empty($token)) {
require_once __DIR__ . '/vendor/autoload.php';
try {
$accessKey = 'xx';
$secretKey = 'xx';
$auth = new Auth($accessKey, $secretKey);
$bucket = 'xx';// 七牛雲的空間名稱
$token = $auth->uploadToken($bucket);
$redis->set('qiniu_token', $token, 30);
} catch (\Exception $exceptionn) {
$message = 'error';
$code = 100;
}
}
$data = json_encode(['code' => $code, 'message' => $message, 'data' => ['token' => $token]], JSON_UNESCAPED_UNICODE);
$response->header("Content-Type", "application/json; charset=utf-8");
$response->end($data);
});
$http->on('close', function () {
var_dump("服務關閉");
});
$http->start();
配置服務
server {
listen 443;
server_name xxx.com;
location / {
proxy_pass http://127.0.0.1:9501;
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結