分类 网站搭建 下的文章 - 🥝 E 家 分 享 🥝
首页
📋 留言板
🔗 友情链接
🛠️ E家百宝箱
❤️ 关于
推荐
🔍 VPS监控
🐉 青龙面板
💽 E家网盘
----------
🔗 CloudFlare
🔗 甲骨文云
🔗 RackNerd
搜 索
1
自动提取 ChromeGo 一键翻墙包内的免费节点
145 阅读
2
【汇总:免费节点 - 每周更新】
114 阅读
3
GigaFile - 日本免费大文件加密分享服务,最长保留文档100天
71 阅读
4
【E家分享月刊系列】2024-12
56 阅读
5
CloudFlare WARP 免费 VPN 搭建教程
55 阅读
精选网站
网站搭建
科学上网搭建
有感而发
软件技巧
Excel技巧
WordPress技巧
登录
搜 索
标签搜索
WordPress
脚本
GitHub
科学上网
哈佛管理导师
E家分享月刊系列
V2ray
Mac软件
AI
Cloudflare
Docker
免费节点
建站在线工具
Excel技巧
Notion
Nginx
ChatGPT
图像编辑
免费图床
网盘资源
E家之长
累计撰写
195
篇文章
累计收到
245
条评论
首页
栏目
精选网站
网站搭建
科学上网搭建
有感而发
软件技巧
Excel技巧
WordPress技巧
页面
📋 留言板
🔗 友情链接
🛠️ E家百宝箱
❤️ 关于
推荐
🔍 VPS监控
🐉 青龙面板
💽 E家网盘
----------
🔗 CloudFlare
🔗 甲骨文云
🔗 RackNerd
用户登录
登录
找到
39
篇与
网站搭建
相关的结果
2023-03-31
Nginx 禁止直接访问目录或文件
前言Nginx 需要设置禁止直接访问目录或文件,如果不禁止,Nginx 会直接去下载 web 目录下文件,如果有配置文件,则可以直接暴露一些配置文件源代码。禁止方法禁止访问某些后缀文件禁止所有 ini、conf、txt 后缀的文件location ~ \.(ini|conf|txt)$ { deny all; }禁止指定某个目录后缀 php 后缀的文件location /wp-content/uploads { location ~ .*\.(php)?$ { deny all; } }禁止指定多个目录后缀为 php 的文件location ~* ^/(css|uploads)/.*\.(php)${ deny all; }禁止访问目录或目录下文件禁止访问目录location ^~ /test/ { deny all; }禁止访问目录下文件location ^~ /test { deny all; }Nginx location 匹配相关= 表示精确匹配^~ 表示uri以某个字符串开头~ 正则匹配(区分大小写)~* 正则匹配(不区分大小写) !~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则/ 任何请求都会匹配匹配优先级:= > ^~ > /Nginx 配置图片直接下载不打开location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { add_header Content-Disposition attachment; }
2023年03月31日
6 阅读
0 评论
0 点赞
2023-03-25
Onindex-Serverless:搭建 OneIndex 阿里云函数版本
说明本项目是OneIndex的阿里云函数计算版本,无需拥有服务器,即可拥有属于自己的OneDrive云盘。特点Onedrive 网页版实现的一种方式。几乎无成本,完全实现按使用量(访问量)付费,费率极低,并且无固定费用支出。不需要自行管理服务器,运行极其稳定。而且服务的质量不受配置(带宽、内存、硬盘......)的影响。极为方便地搭配其他云计算产品进行优化。比如使用CDN对静态页面加速,同时降低流量成本。Onindex-Serverless 被设计成了前后端完全分离的现代网站模式,其中后端是由 python 的 Flask 框架完成,前端则是 React+Dva+Antd 的经典模式。整个项目的部署包仅仅只有3个文件,可以充分减小部署的麻烦,同时提供极大的自由。后端:main.py前端:config.json,index.html函数计算使用的是阿里云自己的Docker,在性能上足以满足需求,同时提供了非常稳定的服务。最重要的是有一个非常方便的 http 触发器,不需要关心域名、回源这些麻烦事,真正做到了开箱即用。项目地址Github地址:https://github.com/LiuChangFreeman/OneIndexServerless后端部分部署步骤注册阿里云账号,获取 AccessKey 和 AccessKeySecret开通对象存储与函数计算服务创建一个存储桶和一个云函数,上传 Flask 程序,并填写必要的配置 前端部分部署步骤将函数计算的 http触发器url 填写到 config.json 中使用任意一种部署静态资源的方法将 index.html 和 config.json 部署到网络上在浏览器中访问 index.html,并在后台登录 OneDrive 账号部署阿里云对象存储 OSS1. 注册阿里云账号,开通“函数计算”和“对象存储”两个服务2. 获取阿里云账号 AccessKey 和 AccessKeySecret点击右上角主账号为了安全起见,最好开一个只有对象存储权限的子账户点击创建用户,比如登录名称为 oss。点击添加权限。添加权限 AliyunOSSFullAccess在认证管理页面,点击创建 AccessKey,记下生成的 AccessKey 和 AccessKeySecret3. 创建一个存储桶在对象存储 OSS中,点击创建 Bucket,创建一个存储桶。 Bucket 名称 比如是 onedrive-5iehome,地域 比如是 华北2(北京),其余使用默认配置即可。 请记住 Bucket 名称 和地域,在下一步开通函数计算服务时需要在同一区域。在创建完存储桶后,请记下区域节点的 Endpoint(地域节点)至此,阿里云对象存储 OSS 完成设置。部署函数计算后端1. 创建一个函数计算服务选择函数计算 FC,选择服务及函数,点击创建服务。创建一个函数计算服务。 注意:区域与上一步对象存储为同一区域,即示例中的 华北2(北京)。 名称比如是 onedirve。选择显示高级选项,允许函数访问公网选择是。点击刚刚创建的函数服务 onedrive,点击创建函数。创建函数方式选择使用自定义运行时创建,即基于 Python Flask 框架编写程序。函数名称比如是 onedrive,请求处理程序类型选择处理 HTTP 请求。函数代码运行环境选择Python 3.9,代码上传方式选择使用示例代码。其他选择默认即可。2. 配置函数计算服务点击刚刚创建的函数,函数配置如下图所示。注意 Initializer 回调程序为 main.initializer。点击函数代码页面,WebIDE 中粘贴 Github 仓库路径 OneIndexServerless/Deploy/Back/ 下 main.py 的内容。# -*- coding: utf-8 -*- from __future__ import print_function import os import oss2 import requests import urllib import json import base64 import time from flask import Flask,request,redirect #以下按需更改 password="123456"#后台管理的密码 url_host= "" #http触发器的接口url access_key=''#云账号的AccessKey access_key_secret=''#云账号AccessKey的密码 oss_end_point= ''#访问对象存储的endpoint oss_bucket_name=''#可以使用的对象存储桶名称 #以下可以不修改 path_oss_store= "oneindex-serverless"#在存储桶中创建的文件夹名称 filename_token= "token.json"#保存凭据的文件名 items_per_page=50#每次获取的项目数量 #以下请勿更改 app = Flask(__name__) app.secret_key = 'oneindex-serverless' client_id = '0375f766-e528-4748-91e2-7d8fcb702889' client_secret = 'vXOJL93{#?xnotilNIU895:' redirect_uri_register = 'https://oneindex-serverless.github.io/redirect' redirect_uri_final = '/login/authorized'.format(url_host.strip("/")) auth = oss2.Auth(access_key,access_key_secret) bucket = oss2.Bucket(auth, oss_end_point, oss_bucket_name) base_url='https://graph.microsoft.com/v1.0/' scopes= "offline_access files.read.all" select="id,name,size,folder,image,video,lastModifiedDateTime" token=None oss_available=False def initializer(context): init() def handler(environ, start_response): return app(environ, start_response) @app.route('/') def home(): if token==None or "account" not in token: data = { "success":False, "oss_available":oss_available } else: data = { "success": True, "account":token["account"], "oss_available":oss_available, } return json.dumps(data) @app.route('/verify') def verify(): code=request.args.get("code") code=base64.b64decode(code).decode("utf-8") if code==password: data={ "success":True } else: data={ "success":False } return json.dumps(data) @app.route('/login') def login(): code=request.args.get("code") code=base64.b64decode(code).decode("utf-8") final=request.args.get("final") if code==password: url_login="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=&scope=&response_type=code&redirect_uri=&state=".format(client_id, urllib.parse.quote(scopes), redirect_uri_register, redirect_uri_final+"*"+final) return redirect(url_login) @app.route('/login/authorized') def authorized(): global token try: code=request.args.get("code") final = request.args.get("final") url = "https://login.microsoftonline.com/common/oauth2/v2.0/token" headers = { "Content-Type": "application/x-www-form-urlencoded" } form = "client_id=&redirect_uri=&client_secret=&code=&grant_type=authorization_code".format(client_id,redirect_uri_register,client_secret,code) token = requests.post(url, headers=headers, data=form).json() token["time"] = time.time() path = "me/drive" url = base_url + path access_token = token["access_token"] headers = { "Authorization": "bearer ".format(access_token), "Content-Type": "application/json" } me = requests.get(url, headers=headers).json() try: token["account"]=me["owner"]["user"]["email"] except: token["account"] = me["owner"]["user"]["displayName"] token["drive"] = me["id"] json_token = json.dumps(token, ensure_ascii=False, indent=4) path_token = os.path.join(path_oss_store, filename_token) bucket.put_object(path_token, json_token) bucket.put_object_acl(path_token,oss2.OBJECT_ACL_PRIVATE) return redirect(final) except Exception as e: result= return json.dumps(result) @app.route('/list', methods = ["GET","POST"]) def list(): try: drive = token["drive"] access_token = token["access_token"] headers={ "Authorization":"bearer ".format(access_token), "Content-Type":"application/json" } if request.method=="POST": data=request.get_data(as_text=True) data = json.loads(data) url=data["next"] else: path=request.values.get("path") if path: path = "drives//root:/:/children".format(drive, path) else: path = "me/drive/root/children" url = base_url + path url = "?$top=&$select=".format(url, items_per_page, select) data = requests.get(url, headers=headers).json() response= items=[] list=data["value"] for item in list: result= if "folder" in item: result["type"]="folder" result["childCount"]=item["folder"]["childCount"] elif "image" in item: result["type"]="picture" elif "video" in item: result["type"] = "play-square" else: result["type"] = "file" result["id"] = item["id"] result["name"] = item["name"] result["size"] = item["size"] result["time"] = item["lastModifiedDateTime"] items.append(result) response["data"]=items if "@odata.nextLink" in data: response["next"]=data["@odata.nextLink"] else: response["next"] =None except Exception as e: response= return json.dumps(response) @app.route('/download') def download(): id = request.args.get("id") if id: path='me/drive/items/'.format(id) url = base_url + path access_token = token["access_token"] headers = { "Authorization": "bearer ".format(access_token), "Content-Type": "application/json" } data = requests.get(url, headers=headers).json() if not "folder" in data: url_download=data["@microsoft.graph.downloadUrl"] return redirect(url_download) @app.before_request def before(*args,**kwargs): global token try: time_now = time.time() time_last = token["time"] if time_now - time_last >3500: refresh_token = token["refresh_token"] scope = token["scope"] url = "https://login.microsoftonline.com/common/oauth2/v2.0/token" headers = { "Content-Type": "application/x-www-form-urlencoded" } data = { "client_id": client_id, "client_secret": client_secret, "redirect_uri": redirect_uri_register, "refresh_token": refresh_token, "grant_type": "refresh_token", "scope": scope, } data = requests.post(url, data=data, headers=headers).json() data["time"] = time.time() data["account"] = token["account"] data["drive"] = token["drive"] token = data json_token = json.dumps(data, ensure_ascii=False, indent=4) path_token = os.path.join(path_oss_store, filename_token) bucket.put_object(path_token, json_token) except: pass def init(): global token,oss_available try: service = oss2.Service(auth, oss_end_point.replace("http://", ""), connect_timeout=1) service.list_buckets() oss_available=True path_token ="/".format(path_oss_store,filename_token) if bucket.object_exists(path_token): token = bucket.get_object(path_token) token = json.loads(token.read()) except: pass if __name__=="__main__": init() app.run()更改下面内容为刚刚创建的 AdccessKey,AccessSecret,oss_end_point 和存储桶名称。点击部署代码。#以下按需更改 password="123456"#后台管理的密码 url_host= "" #http触发器的接口url access_key='xxx'#云账号的AccessKey access_key_secret='xxx'#云账号AccessKey的密码 oss_end_point= 'http://oss-cn-beijing-internal.aliyuncs.com'#访问对象存储的endpoint oss_bucket_name='onedrive-5iehome'#可以使用的对象存储桶名称点击触发器管理(URL)页面,创建触发器 onedrive 并启用。复制公网访问地址链接,将其粘贴到上面函数代码 main.py 的 url_host 中。部署前端网页1. 复制前端网页内容到服务器将Github 仓库路径 OneIndexServerless/Deploy/Front/ 下 config.json 和 index.html 复制到网站根目录或指定文件夹下。2. 配置相应文件config.json 配置内容如下:{ "host":"https://1379413538033051.cn-beijing.fc.aliyuncs.com/2016-08-15/proxy/onedrive/onedrive" }至此该项目搭建完毕。部署文件下载地址:Onindex-Serverless搭建OneIndex阿里云函数版本.exe https://www.aliyundrive.com/s/qBN2GQpAVzs 提取码: 09bn https://www.123pan.com/s/Oy5RVv-GwXB.html 提取码:uHA5登录后台配置 OneDrive 账号1. 注册 OneDrive 5T账号Office 365 E5账号注册地址:https://developer.microsoft.com/en-us/microsoft-365/dev-program 如何申请上网搜索,这里就不赘述了。稍后我也可以写个教程。 开通权限请参考:https://alist.nn.ci/zh/guide/drivers/onedrive.html2. 登录 OneIndex 后台配置打开后台地址,默认是 \`https://www.网站.com/oneindex/#/admin输入密码(与部署函数计算阶段的一致,默认是123456)登录 OneDrive 账号,会自动跳转到 MicroSoft 账号网站。最终显示系统状态全部是绿色即为安装成功。 效果展示 参考资料https://zhuanlan.zhihu.com/p/74538287【END】
2023年03月25日
5 阅读
0 评论
0 点赞
2023-02-19
Webd - 仅 90KB!极简轻量自建网盘工具
前言今天跟大家介绍一款轻量级(self-hosted)自建网盘软件:Webd。极简轻量自建网盘工具,快速搭建文件上传下载网站。软件特点程序仅 60 ~ 90 KB,含 server 端,无其它依赖。速度快资源占用低。纯便携软件,解压即用。支持 Windows、Linux、OpenWrt、Armbian。界面简洁易用,无繁琐设置,支持移动设备。软件下载地址:https://gwgw.ga/fidx.html#/webd/Github 地址:https://github.com/Hyy2001X/AutoBuild-Packages/tree/master/luci-app-webd安装从上述网址下载 webd-win32.7z 解压到合适位置,进入目录双击运行 tools.cmd,依提示添加快捷方式并创建自动启动即完成安装。配置用记事本打开 webd.conf 参考后续说明修改配置,修改后需要重启以便生效。启动和使用双击桌面 webd 图标启动,或重启后自动启动。双击托盘图标会调用浏览器打开网盘,点右上角二维码图标可生成二维码供移动设备使用。网盘内的视频类文件可直接播放,不支持的格式需复制视频地址到其它播放器播放。需要剪切或删除文件时,点击所在行空白处或日期与大小,变为选中状态,然后操作新出现的按钮。重命名文件:在未选中状态下双击文件所在行的空白处会进入重命名状态。命令行快速运行#Linux通用 ./webd -w /mnt/sda1 -u rlum:user:pass ##例子 ./webd -l 9212 -w /home/5iehome -u rlum:用户名:密码 #Win通用 webd.exe -w D:\sharedata -u rlum:user:pass ##例子 webd.exe -l 9212 -w C:\5iehome -u rlum:用户名:密码启动成功后,即可通过浏览器打开 http://主机IP地址:9212 进行访问配置文件webd 启动时会在当前目录和 /etc 下查找并加载 webd.conf 文件。编辑 webd.conf 去掉行首的 # 可让改行配置生效。含有空格的路径需用英文双引号包起来。Webd.Root 指定网盘文件的路径更改后需移动原 web 目录下的 .Trash 文件夹到新路径下,否则无法删除文件。Webd.Listen 监听端口或特定的地址,支持多个,可配置成 [::]:9212 来同时监听 IPv6 和 IPv4。Webd.Hide 隐藏托盘图标, 无参数,该项仅支持 Windows。Webd.User 设置用户的权限、用户名和密码,支持两个用户,但使用同一目录。比如 Webd.User rlumS user1 pass1 表示设置 user1 的密码为 pass1 ,具有 r、l、u、m、S、T 五种权限。r 表示访问文件l 表示获取文件列表u 表示上传文件m 表示删除移动重命名文件S 表示显示隐藏文件T 表示使用网页播放媒体文件(可保存播放进度)。注意需将安装包 web 目录下的 .player.htm 文件放到 Webd.Root 目录下才可使用 T 权限。可赋于用户任意单个或多个权限,任意组合,灵活配置。Webd.Guest 设置无需登录的访客权限,参考上面的权限组合;设置成 0 表示禁用访客。Webd.Browser 用于指定自定义的浏览器路径;该项还能解决双击托盘图标无法弹出界面的问题。命令行参数对应的配置项-c 指定配置文件, 不再使用默认路径的-h Webd.Hide-B Webd.Browser-l Webd.Listen 可指定多个-w Webd.Root-g Webd.Guest-u 类似 Webd.User, 需把空格用冒号替代, 类似 -u rlum:user1:pass1配置文件和命令行参数一共能设置三个用户Linux、OpenWrt、Armbian 等平台上安装 webdwebd-linux-x86_64.tar.gz 用于普通 x86_64 linux 发行版webd-linux-aarch64.tar.gz webd-linux-armv7.tar.gz 使用于 arm linux 平台webd-openwrt-x86_64.tar.gz 用于安装了 OpenWrt 的普通 PCwebd-android-*** 用于通过使用 adb 命令在 android 设备上运行webd-linux-mipsel-uclibc.tar.gz 适用于 Padavan 等固件webd-openwrt-XXXXX.tar.gz 适用于不同硬件的 OpenWrt 路由器带有 uClibc 后缀的适用于一些旧版固件, 也可用于光猫ADSL猫等设备【END】
2023年02月19日
15 阅读
0 评论
0 点赞
2023-01-15
Notion 建站工具盘点
本文作者:Spike112 原帖地址:https://sspai.com/post/77787关于 Notion 建站等主题,在以前的文章「Notion 优质资源汇总」,介绍了围绕 Notion 的第三方生态——Notion 插件、建站、小组件、自动化、汉化…… 这些工具或服务,可以将 Notion 打造为一款工作流完整、十分强大的知识库。今天这篇文章将对其中的建站服务进行扩展和补充。基于 Notion 的建站,能够帮助普通用户使用 Notion 这款无代码工具,快速建立支持 SEO 的在线网站或者博客,降低了对于用户开发能力的要求。下面是几款好用的 Notion 建站服务。noto访问地址noto 官网上手难度⭐️直接绑定 Notion 账户,授权 Database 就可以。推荐⭐️⭐⭐⭐评价上手简单;国内开发者的产品,访问和分享方便;使用效果https://futantan.noto.so/https://jimmylv.noto.so/Potion访问地址Potion 官网特色操作简单;样式多,展示效果好;支持多种自定义选项;支持 SEO 优化;上手难度⭐️ 直接粘贴公开页面链接到 Potion 设置框即可。推荐⭐⭐⭐⭐⭐版本使用效果社区范例库:组件世界 WidgetStore,组件世界·介绍:参见 组件世界 WidgetStore :一个丰富、强大的嵌入式小组件库官方范例库:https://potion.so/showcaseSuper访问地址Super官网上手难度⭐️推荐⭐️⭐⭐⭐⭐评价免费版能满足普通用户使用;上手门槛低;产品服务响应快;支持 SEO 优化;版本使用效果见范例库:https://super.so/showcaseNotatu访问地址Notatu 官网上手难度⭐️⭐️推荐⭐️⭐️⭐评价使用比较简单,价格不低。风格偏简约风格的。版本使用效果范例库NotionNext简介一个使用 NextJS + Notion API 实现的,部署在 Vercel 上的静态博客系统。为Notion和所有创作者设计。访问地址NotionNext 官网上手难度⭐️⭐️⭐️⭐️直接绑定 Notion 账户,授权 Database 就可以。推荐⭐️评价GitHub 访问,配置需要有技术基础,有一定的开发能力。对于普通用户难度比较大。样式丰富,可供选择比较多。使用效果https://preview.tangly1024.com/结语Notion 建站服务均提供了使用引导,上手难度不大。使用建站服务,一种是登录 Notion 账户进行授权,使用官方提供的模版化 Database,直接新建或者添加准备发布的内容即可。另外一种更为简单,直接注册登录,复制粘贴你要公开分享的 Notion 页面链接至建站服务的设置选项,点击发布即可。如果你需要一个简单、好用的站点,那么使用 noto 即可,使用和访问都十分方便。如果你需要一个高 SEO 的站点,那么 Potion、Super 值得考虑。免费版本足够多数普通用户使用。如果你对建站服务要求比较高,又不想付费使用 Pro 版本的建站服务,那么,在有一定技术能力的情况下,可以使用 NotionNext.最后,如果你喜欢数字花园理念的话,可以使用简悦的 Notion Blog 生成器,将任意阅读模式导入到 Notion 并生成 Notion Blog. 如此,便可以快速打造一个基于你的阅读文本、高亮、评论等内容的 Notion 站点。参考文献Notion 优质资源汇总组件世界 WidgetStore :一个丰富、强大的嵌入式小组件库关于 Notion-Like 工具的畅想和反思FlowUs 息流·深度评测——一款知识管理和在线协作平台高效输入,从微信剪藏开始:支持微信剪藏和内容自动整理的解决方案信息管理,从高效收集信息开始RSS 入门指南:如何将「RSS阅读」与笔记软件进行整合?如何在 FlowUs、Notion 等笔记软件中实现「标签 Tags」功能?从思考辅助到内容组织:基于思维导图的另类使用如何在支持多维表格的笔记软件中进行文件管理?内容创作者如何高效发布创作内容?
2023年01月15日
4 阅读
0 评论
0 点赞
2022-11-27
【E家原创】搭建”简单图床 - EasyImage“
前言从搭建博客开始,就想好了维护和搬家的情况,其中就要考虑如何存储管理博客附件。博客附件主要以图片为主,图片管理方式比较好的解决方案还是把图片单独存储在图床,便于引用和优化调用速度。 之前尝试了很多免费图床,但是不是突然被墙了,就是调用效果不好。回过头来还是自建图床比较好,设置单独的域名,这样便于博客搬家,图片链接不受影响。图床选择网上有各种图床程序,绝大多数都是需要数据库支持的,这对于数据搬迁也不是很友好。最终发现了“简单图床 - EasyImage”图床程序,简单强大无数据库,非常契合我的目的,它还具备以下特点:支持 Webp 格式转换支持仅登录后上传支持设置图片质量支持文字/图片水印支持设置图片指定宽/高支持上传图片转换为指定格式支持限制最低宽度/高度上传支持 API在线管理图片支持网站统计支持设置广告支持图片鉴黄支持自定义代码支持上传IP黑白名单支持创建仅上传用户项目展示GitHub开源地址:https://github.com/icret/EasyImages2.0下载地址:https://github.com/icret/EasyImages2.0/releases文档地址:https://icret.github.io/EasyImages2.0/#/Demo地址:https://png.cm/界面演示宝塔面板搭建过程之所以选择宝塔面板搭建,主要还是简单,方便后期备份。搭建环境推荐环境:Nginx + PHP≥7.0 + linux 需要 PHP 支持Fileinfo, iconv, zip, mbstring, openssl扩展,如果缺失会导致无法上传/删除图片。这里遇到了本文的难点,我使用的甲骨文免费主机安装fileinfo总是不成功,经过查找安装日志和网上查找,终于找到了解决方法。添加虚拟内存打开PHP安装扩展,我们会看到fileinfo安装成功需要内容大于1G。如果服务器的内存小于1G,可以通过宝塔免费的Linux工具箱来添加虚拟内存。打开宝塔面板软件商店,搜索并安装Linux工具箱。Swap/虚拟内存 => 添加Swap 输入2048,增加2G虚拟内存,重启PHP生效。 fileinfo 扩展安装然而以上方法我都试过了,fileinfo还是安装不成功,搞了半天终于安装日志找到了原因。能看到的就只有C preprocessor “/lib/cpp” fails sanity check这个问题,于是在网上找答案说是底层没有安装glibc-headers和gcc-c++。执行yum install glibc-headers yum install gcc-c++再次安装fileinfo,重启PHP和Nginx,至此安装成功!域名解析把图床打算用的域名解析到搭建图床的服务器上,这边以cloudflare为例子,创建一个二级域名。宝塔面板点击新建站点,只需要填写域名,选择PHP即可,简单图床足够简单,不需要数据库!接下来配置SSL证书,记得打开强制SSL。图床程序安装打开网站的根路径/www/wwwroot/img.5iehome.cc,将里面默认的文件都删除。 然后下载EasyImage的安装包,点开远程下载,输入下面的链接,以 2.6.7 版本为例:https://github.com/icret/EasyImages2.0/archive/refs/tags/2.6.7.zip然后解压这个安装包,把解压后文件夹里面的所有内容,复制到根目录,并删除这个压缩包。打开站点目录,把下图的这个勾勾去掉:之后打开网址,安装环境检测完毕,输入管理员用户名和密码设置,完成安装。 参考文档https://blog.csdn.net/u012874878/article/details/127630518https://blog.laoda.de/archives/aapanel-install-easyimage【END】
2022年11月27日
12 阅读
2 评论
0 点赞
1
...
4
5
6
...
8