制作个人图片api接口


前言

当我们需要在网站上显示随机图片时,会用到api接口,这时可以自己做一个图片api接口,就不用担心使用别人的api接口不稳定或对图片不满意等情况了
本篇文章是基于jsDeliver + github制作图片api接口

准备工作

  • 一台配置好域名&证书的服务器
  • 服务器安装好基本的lnmp环境,需要php-fpm,新版php已集成(这里mysql用不上)
  • 一个github账号(需要科学上网)

    过程介绍

  • 上传图片到github仓库中
  • 在github中进行项目的发布
  • 编写php文件,引用jsDeliver上的文件
  • 将php文件上传到服务器中
  • 在nginx配置文件中配置好php-fpm相关配置

    操作过程

    上传图片到github仓库中

    在本地建一个放图片的文件夹,图片需为jpg格式,名称用数字排好序,注意该勾的勾上
    在这里插入图片描述

下载GitHub Desktop,登录账号
在GitHub Desktop中克隆自己已存在的仓库(要有README.md文件,仓库是公开的
ps:可以专门弄一个放图片的仓库
在这里插入图片描述
选择已有的库,选择本地需要克隆的路径
在这里插入图片描述

没有仓库就新建一个,该勾的勾上
在这里插入图片描述
在这里插入图片描述

同步操作
①写好说明②提交③更新到github
在这里插入图片描述

如果是在GitHub Desktop上新创建的仓库,第三步会有一个提示框,注意把勾去掉,那勾相当于代码私密,我们需要公开代码
在这里插入图片描述

在github中进行项目的发布

仓库管理中点击release
在这里插入图片描述
①填写版本号②描述说明③发布
在这里插入图片描述
到这里就可以引用资源了

https://cdn.jsdelivr.net/gh/你的github用户名/你的仓库名@发布的版本号/文件名
例:https://cdn.jsdelivr.net/gh/bananaYH/images@0.33/img/2.jpg

不加版本号等同于默认访问https://cdn.jsdelivr.net/gh/bananaYH/images@master/img/2.jpg
现github默认分支名是main,若要不加@版本号访问则将main重命名为master
不加@,好像jsDeliver那边不能及时更新过来,建议还是加上@,能够及时更新

编写php文件,引用jsDeliver上的文件

<?php
$rand = rand(1,3);
$url = 'https://cdn.jsdelivr.net/gh/bananaYH/images@0.33/img/'.$rand.'.jpg';
$img = file_get_contents($url,true);
header("Content-Type: image/jpeg;");
echo $img;
?>

rang随机产生数字,按图片编号填写
填写好url

编辑好,用FTP上传该php文件到域名根目录下

在nginx配置文件中配置好php-fpm相关配置

编辑nginx.conf文件

vim /www/server/nginx/conf/nginx.conf

在配置了443和ssl的server中加上以下代码

location ~ \.php$ {
        root           /www/wwwroot;
        fastcgi_pass   unix:/tmp/php-cgi-74.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/wwwroot$fastcgi_script_name;
        include        fastcgi_params;
}

root 指定php的根目录,自行更改
fastcgi_pass 监听端口(两种形式tcp:127.0.0.1:9000或unix)tcp注意要开防火墙,下面详细解释
fastcgi_indexnginx 默认首页文件
fastcgi_param 脚本文件请求的路径,更改/www/wwwroot为根目录路径
include 引入fastcgi的配置文件

参考
在这里插入图片描述
使用unix
查看php-fpm.conf文件,不知道在哪输查找命令

find / -name php-fpm.conf

在这里插入图片描述
将.sock的路径复制到nginx.conf中的fastcgi_pass即可

使用tcp方式
在php-fpm.conf中将.sock路径更改为127.0.0.1:9000即可

注意事项!!!
php-fpm.conf和nginx.conf文件中的user是一致的,不一致会出现权限问题
当两边user不为root时,根目录最好不要再/root下面,会有权限问题

重启Nginx服务

service nginx restart

测试

测试php配置

创建编辑index.php文件

<?php 
    phpinfo(); 
?>

将index.php文件放到网页根目录下

https://域名/index.php 访问

出现php页面即为nginx配置php成功
在这里插入图片描述

测试图片api接口

访问并运行php文件,这里假设php文件名为images.php

https://域名/images.php

正常情况是和引用jsDeliver的资源一样,会显示一张图片
在这里插入图片描述

ip地址离线库

介绍一个好用的ipv4地址离线库。纯真(CZ88.NET)自2005年起一直为广大社区用户提供社区版IP地址库,只要获得纯真的授权就能免费使用,并不断获取后续更新的版本。如果有需要免费版IP库的朋友可以前往纯真的官网进行申请。


纯真除了免费的社区版IP库外,还提供数据更加准确、服务更加周全的商业版IP地址查询数据。纯真围绕IP地址,基于 网络空间拓扑测绘 + 移动位置大数据 方案,对IP地址定位、IP网络风险、IP使用场景、IP网络类型、秒拨侦测、VPN侦测、代理侦测、爬虫侦测、真人度等均有近20年丰富的数据沉淀。


文章作者: BananaYH
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BananaYH !
评论
  目录