前言
当我们需要在网站上显示随机图片时,会用到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年丰富的数据沉淀。