制作个人图片api接口

2023-11-11

前言

当我们需要在网站上显示随机图片时,会用到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的资源一样,会显示一张图片
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

制作个人图片api接口 的相关文章

随机推荐

  • 二等分计算机打印机尺寸,电脑打印纸三种等分是什么尺寸

    满意答案 kimwk 2015 11 10 采纳率 55 等级 8 已帮助 6710人 打印纸一般规格有宽度为241mm的和381mm的 三等分就是341 381 3 而长边这边尺寸也是固定的 是280mm 一般长边长度可以分等分 有不分等
  • Movidius神经计算棒3-完整配置开发环境

    上面是我的微信和QQ群 欢迎新朋友的加入 cd ncsdk make install 这里有个题外话 英特尔这个玩意搞得不太友好 很多软件都有版本限制 高了或或者低了都要不得 这倒也没啥事 但是有个受影响的是 官方提供的make insta
  • 【Linux】系统下各个文件目录的作用

    目录名 作用 bin 普通用户的可执行文件 二进制 boot linux内核和系统启动文件 dev 设备文件 etc 系统配置文件 home 用户主目录 initrd 启动时挂在initrdimg映像文件 lib 共享库文件 lost fo
  • MySQL必知必会——第六章过滤数据

    过滤数据 本章将讲授如何使用SELECT语句的WHERE子句指定搜索条件 使用WHERE子句 数据库一般包含大量的数据 很少需要检索表中所有的行 通常只会根据需求来提取部分表数据 只检索所需数据需要指定搜索条件 search criteri
  • hdf5 简介、中文文档、中英对照文档 下载

    hdf5 文档 下载链接 含jar包 源码 pom 组件名称 中文 文档 下载链接 中英对照 文档 下载链接 hdf5 1 12 0 1 5 5 jar hdf5 1 12 0 1 5 5 API文档 中文版 zip hdf5 1 12 0
  • Android应用开发 一课一得

    Android是一种基于Linux平台开发的操作系统 Android应用开发这一门课 以项目为载体 以实做为手段 我通过学习和实践 对Android的开发流程 核心概念和常见技术有了基本的理解 在本学期的Android课程中 我首先学习了A
  • windows编译zookeeker动态库供C++链接使用以及遇到的错误处理方法

    windows下面C 链接zookeeper资料不多 特此记录一下 编译环境VS 2015 一 相关安装包安装下载 1 zookeeper zookeeper3 6 4 下载zip包解压即可 2 ant apache ant 1 9 16
  • 【实践5】Python pandas正则替换Excel表中单元格的标点符号等特殊符号

    简单介绍 这里举例替换特殊符号 有时在进行网页爬虫的时候会获取到一些含有特殊格式或符号的内容 但其中的符号像逗号 百分号这些并不是我们需要的 可以使用正则或是pandas将其替换掉 这个用例是使用正则的规则 通过pandas的apply函数
  • Unity3D_touch事件和点击事件

    现在要实现鼠标点击在哪个位置 物体就朝向哪里运动 所以是将两个部分融合到一起 1 物体的运动 2 鼠标的点击 if Input GetMouseButtonDown 0 0在PC上表示鼠标的左键 在手机上表示落下的第一个手指头 以此类推 好
  • WebLogic Server 远程代码执行漏洞复现 (CVE-2023-21839)

    1 产品简介 Oracle WebLogic Server是一个统一的可扩展平台 用于在本地和云端开发 部署和运行企业应用程序 例如 Java WebLogic Server提供了Java Enterprise Edition EE 和Ja
  • simunlink的“Three-Phase V-I Measurement”所测线电压次序问题

    simunlink的 Three Phase V I Measurement 所测线电压次序问题 仿真实例 很多同学在使用simulink进行仿真时可能会用到 Three Phase V I Measurement 这个模块 在该模块par
  • np.random.normal()函数

    np random normal 的意思是一个正态分布 normal这里是正态的意思 numpy random normal loc 0 scale 1 0 size shape 参数loc float 正态分布的均值 对应着这个分布的中心
  • osg 的warning C4003: “max”宏的实参不足 error C2589: “(” : “::”右边的非法标记

    原来是需要把max用括号括起来避免和windows定义的宏混淆 std numeric limits max 或者 std max 因为Windef h中定义了 ifndef max define max a b a gt b a b en
  • Oracle中的数据类型——NUMBER

    NUMBER类型概述 NUMBER类型可以用来存储0 正数 负数 数据范围是1 10 130 1 10126 不能等于或者大于1 10126 否则Oracle会报错 算数表达式的结果同理 NUMBER类型的定义 NUMBER precisi
  • 计算机e盘丢失了,电脑E盘突然不见了怎么找回_电脑的E盘突然不见了的解决方法...

    电脑一般会有C D E F等多个磁盘 用于储存不同的程序 方便管理 近期 有用户说自己准备打开E盘安装软件 结果发现E盘突然不见了 这样就没办法把软件安装在E盘上 有什么办法能让E盘恢复 方法有的 现在整理具体操作教程给大家 具体方法如下
  • C++强制类型转换

    C 类型转换 C风格的强制转换 在C 基本的数据类型中 可以分为四类 整型 浮点型 字符型 布尔型 其中数值型包括 整型与浮点型 字符型即为char 1 将浮点型数据赋值给整型变量时 舍弃其小数部分 2 将整型数据赋值给浮点型变量时 数值不
  • 手机网站支付宝支付

    1 支付宝开放平台 支付宝手机网站支付 具体的请求参数和返回参数等相关数据 https docs open alipay com 203 107090 2 支付demo 下载手机网站支付相关的demo 这里的demo和APP支付提供的dem
  • Android webview登录手机QQ

    选择我们的应用 在对应的上述我们定义的QQActivity的onCreate或onNewIntent 如果该activity在栈里出现过 里就能响应了 通过intent取出url 找了url特征字符没有发现token或code 才发现在系统
  • 数据分析之Pandas从入门到放弃:代码+实战,9分钟带你推开Pandas大门!!!

    今天整理了一下Pandas的使用方法 应该是全网整理最完整 最简洁易读 立整 的一篇文章 嗯 别不信 确实是这样的 跟着小鱼 带你9分钟推开Pandas的大门 从此走上数据分析师的苦逼之路 Pandas使用方法 1 Pandas的基本定义
  • 制作个人图片api接口

    制作个人图片api接口 前言 准备工作 过程介绍 操作过程 上传图片到github仓库中 在github中进行项目的发布 编写php文件 引用jsDeliver上的文件 在nginx配置文件中配置好php fpm相关配置 测试 测试php配