1
免费二级域名,包括可托管到cf的二级域名
212 阅
2
RN服务器添加 IPV6 地址
57 阅
3
常用安装脚本知识24年10月27日更新
54 阅
4
永久免费节点搭建!通过Cloudflare Worker部署免费的VLESS节点,4K高速,解锁Netflix、ChatGPT
54 阅
5
图片加速接口:缓存图片,加速访问,解决防盗链
51 阅
最新消息
apple001
· 04-13
给博主点赞
25263
· 03-28
收藏了。
123
· 02-05
春天来了,心情也好了。
123
· 02-03
太全了。
Typecho
· 01-26
欢迎加入 Typecho 大家族
首页
默认
日常
学习
技术
留言板
友链
关于
登 录
Search
标签搜索
cloudflare
壁纸
CF
白嫖
安装
图片
脚本
Linux
docker
域名
桌面壁纸
手机壁纸
NAT
LXC
HTML
网页
Caddy
代码
哪吒
高清壁纸
ws01
首页
栏目
默认
日常
学习
技术
留言板
友链
关于
登录
登 录
学习,技术
共 43 篇
10 人围观
Linux系统下常用命令【不断补充】
Linux系统下常用命令 【不断补充】 退出数据库:exit删除指定web1文件夹下的所有文件:rm -rf /home/web/html/web1在指定web1文件夹下建立一个文件index.html:touch /home/web/html/web1/index.html在指定html文件夹下建立新文件夹web1,并进入建立后的web1文件夹:cd /home/web/html/ && mkdir web1 && cd web1解压到指定文件夹下:unzip /一级文件夹/二级文件夹/.../XXX.zip -d /一级文件夹/二级文件夹/.../最后指定文件目录/使用 mv 命令指定要移动的文件夹和目标文件夹的路径:mv /一级文件夹/二级文件夹/.../* /一级文件夹/二级文件夹/.../最后指定文件目录/下载typecho.zip源码,解压后,删除:wget https://github.com/typecho/typecho/releases/download/v1.2.1/typecho.zip unzip typecho.zip rm typecho.zip编辑docker-compose.yml文件:nano /home/web/docker-compose.yml进入文件夹命令:cd创建文件夹命令:mkdir创建文件命令:touch删除命令:rm退出编辑并保存:ctry+X+Y+确定【4个键组合】
9个月前
0
0
12 人围观
用 frankenphp+mysql 快速搭建一个高性能的网站!
用 frankenphp+mysql 快速搭建一个高性能的网站! FrankenPHP 是构建在Caddy Web 服务器之上的现代 PHP 应用程序服务器。一、docker安装curl -fsSL https://get.docker.com | sh && ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin二、创建目录结构mkdir -p /home/web/{caddy,html,,mysql} touch /home/web/caddy/Caddyfile三、下载源码1、安装wordpresscd /home/web/html/ && mkdir web1 && cd web1 wget -O latest.zip https://cn.wordpress.org/latest-zh_CN.zip unzip latest.zip rm latest.zipecho "define('FS_METHOD', 'direct'); define('WP_REDIS_HOST', 'redis'); define('WP_REDIS_PORT', '6379');" >> /home/web/html/web1/wordpress/wp-config-sample.php2、安装typechocd /home/web/html/ && mkdir web2 && cd web2 cd /home/web/html/web2/ && mkdir typecho && cd typecho wget https://github.com/typecho/typecho/releases/download/v1.2.1/typecho.zip unzip typecho.zip rm typecho.zipecho "define('FS_METHOD', 'direct'); define('TYPECHO_REDIS_HOST', 'redis'); define('TYPECHO_REDIS_PORT', '6379');" >> /home/web/html/web2/typecho/typecho-config-sample.php四、配置Caddyfile,以kjlion.com为例nano /home/web/caddy/Caddyfile{ frankenphp order mercure after encode order vulcain after reverse_proxy order php_server before file_server order php before file_server } kjlion.com { root * public/web1/wordpress encode zstd gzip php_server }五、启动环境wget -O /home/web/docker-compose.yml https://raw.githubusercontent.com/kejilion/docker/main/docker-compose-frankenphp.yml nano /home/web/docker-compose.yml cd /home/web && docker-compose up -d六、安装PHP扩展docker exec -it web install-php-extensions mysqli gd intl zip opcache docker exec -it web install-php-extensions exif imagick redis docker exec web sh -c 'echo "upload_max_filesize=50M \n post_max_size=50M" > /usr/local/etc/php/conf.d/uploads.ini' docker exec web sh -c 'echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory.ini' docker exec web sh -c 'echo "max_execution_time=1200" > /usr/local/etc/php/conf.d/max_execution_time.ini' docker exec web sh -c 'echo "max_input_time=600" > /usr/local/etc/php/conf.d/max_input_time.ini'七、创建数据库docker exec -it mysql mysql -u root -p CREATE DATABASE web1; GRANT ALL PRIVILEGES ON web1.* TO 'kejilion'@'%';八、重启环境cd /home/web && docker-compose restart
9个月前
0
0
24 人围观
Caddy新一代轻量web服务器 配置简单 自动HTTPS 反向代理建站
Caddy新一代轻量web服务器 配置简单 自动HTTPS 反向代理建站Caddy 2是一款功能强大、企业级、开源 Web 服务器,具有用 Go 编写的自动 HTTPS。本文转自: 科技lion 一、docker一键安装curl -fsSL https://get.docker.com | sh && ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin二、创建Caddyfile和index.htmlmkdir -p /home/web/{caddy,html} touch /home/web/caddy/Caddyfile touch /home/web/html/index.html三、配置index.htmlhttps://github.com/kejilion/Website_source_code/blob/main/index.htmlnano /home/web/html/index.html四、配置Caddyfilenano /home/web/caddy/Caddyfile五、配置IP访问的静态页面【因上传软件原因, 可能出现乱码用不了 ,如安装后不起作用, 可把Caddyfile文件下载到本地编辑后再上传 】http:// { root * /usr/share/caddy encode gzip file_server }配置带域名的静态页面,下面都以“kjlion.com”为例kjlion.com { root * /usr/share/caddy encode gzip file_server }配置带域名的反向代理wp.kjlion.com { reverse_proxy 127.0.0.1:8080 encode gzip }配置带域名的重定向b.kjlion.com { redir https://baidu.com{uri} }配置带域名的php动态站点wp.kjlion.com { root * /usr/share/caddy/wordpress encode gzip php_fastcgi php:9000 file_server }六、部署caddydocker run -d --name caddy -p 80:80 -p 443:443 -p 443:443/udp -v /home/web/caddy/:/etc/caddy/ -v /home/web/html/:/usr/share/caddy/ --restart=always caddy:latest七、重启caddydocker restart caddy
9个月前
0
0
11 人围观
linux删除文件夹命令使用方法
linux删除文件夹命令使用方法 在Linux中,删除目录中的文件夹和文件的方法其实很简单,使用rm -rf命令即可。一、删除文件夹实例:rm -rf /var/log/httpd删除/var/log/httpd目录以及其下所有文件、文件夹二、删除文件实例:rm -f /var/log/httpd/access.log这个将会强制删除/var/log/httpd/access.log这个文件注意:在linux中是没有设置回收站的,因此在使用rm命令的时候一定要小心些,删除之后的文件是无法恢复的。
9个月前
0
0
10 人围观
VPS剩余价值计算器 V5.0
VPS剩余价值计算器 V5.0 本内容转载自: https://www.nodeseek.com/post-29398-1感谢 juhua大佬 修正了部分CSS错误改用js重写计算部分输出计算结果后原来输入的部分内容不会自动清除也就是说,现在可以脱离php环境运行了,直接另存为 shengyu.html后缀即可,甚至可以在本地用chrome直接打开该html文件即可运行 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>VPS交易计算器 V5.0</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> </head> <body> <div class="container mt-5"> <h1 class="mb-4">VPS交易计算器</h1> <form id="calculatorForm"> <div class="form-group"> <label for="purchasePrice">续费价格:</label> <input type="number" class="form-control" id="purchasePrice" name="purchasePrice" step="0.01" required> </div> <div class="form-group"> <label for="tradePrice">交易价格:</label> <input type="number" class="form-control" id="tradePrice" name="tradePrice" step="0.01" required> </div> <div class="form-group"> <label for="currentDate">当前日期:</label> <input type="date" class="form-control" id="currentDate" name="currentDate" required> </div> <div class="form-group"> <label for="expiryDate">到期日期:</label> <input type="date" class="form-control" id="expiryDate" name="expiryDate" required> </div> <div class="form-group"> <label for="paymentFrequency">付款周期:</label> <select class="form-control" id="paymentFrequency" name="paymentFrequency" required> <option value="yearly">年付</option> <option value="halfyearly">半年付</option> <option value="quarterly">季付</option> <option value="monthly">月付</option> <option value="two-yearly">二两付</option> <option value="three-yearly">三年付</option> <option value="five-yearly">五年付</option> </select> </div> <button type="button" class="btn btn-primary" onclick="calculateRemainingValue()">计算剩余价值</button> </form> <div class="result mt-4" style="display: none;"> <h3>计算结果:</h3> <p>续费价格: <span id="resultPurchasePrice"></span></p> <p>剩余价值计算周期: <span id="resultPaymentFrequency"></span></p> <p>剩余价值: <span id="resultRemainingValue"></span></p> <p>交易价格: <span id="resultTradePrice"></span></p> <p>溢价金额: <span id="resultPremium"></span></p> <p>购买建议: <span id="resultAdvice"></span></p> </div> <div class="mt-4"> <h3>计算过程:</h3> <div class="accordion" id="calculationProcess"> <div class="card"> <div class="card-header" id="headingOne"> <h2 class="mb-0"> <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"> 展开计算过程 </button> </h2> </div> <div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#calculationProcess"> <div class="card-body" id="calculationDetails"> <!-- Calculation details will be displayed here --> </div> </div> </div> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.3/dist/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> <script> function calculateRemainingValue() { // Retrieve input values const purchasePrice = parseFloat(document.getElementById("purchasePrice").value); const tradePrice = parseFloat(document.getElementById("tradePrice").value); const currentDate = new Date(document.getElementById("currentDate").value); const expiryDate = new Date(document.getElementById("expiryDate").value); const paymentFrequency = document.getElementById("paymentFrequency").value; // Calculate remaining days const remainingDays = Math.floor((expiryDate - currentDate) / (24 * 60 * 60 * 1000)); const remainingMonths = Math.floor(remainingDays / 30); // Calculate remaining value let paymentFrequency_ = ""; let remainingValue = 0; switch (paymentFrequency) { case "quarterly": paymentFrequency_ = "季付"; remainingValue = purchasePrice / 90 * remainingDays; break; case "yearly": paymentFrequency_ = "年付"; remainingValue = purchasePrice / 365 * remainingDays; break; case "halfyearly": paymentFrequency_ = "半年付"; remainingValue = purchasePrice / 180 * remainingDays; break; case "monthly": paymentFrequency_ = "月付"; remainingValue = purchasePrice / 30 * remainingDays; break; case "two-yearly": paymentFrequency_ = "二两付"; remainingValue = purchasePrice / (365 * 2) * remainingDays; break; case "three-yearly": paymentFrequency_ = "三年付"; remainingValue = purchasePrice / (365 * 3) * remainingDays; break; case "five-yearly": paymentFrequency_ = "五年付"; remainingValue = purchasePrice / (365 * 5) * remainingDays; break; } const premium = tradePrice - remainingValue; // Display results document.getElementById("resultPurchasePrice").textContent = purchasePrice; document.getElementById("resultPaymentFrequency").textContent = paymentFrequency_; document.getElementById("resultRemainingValue").textContent = remainingValue; document.getElementById("resultTradePrice").textContent = tradePrice; document.getElementById("resultPremium").textContent = premium; // Determine advice let advice = ""; if (premium > 0) { advice = "存在溢价,请君三思而后行"; } else if (premium < 0) { advice = "卖家血亏,快买,错过拍断大腿!"; } else { advice = "不议价,良心卖家!"; } document.getElementById("resultAdvice").textContent = advice; // Display calculation details const calculationDetails = ` <p>剩余月份:${remainingMonths} 个月(剩余天数:${remainingDays} 天)</p> <p>剩余价值 = 历史购买价格 / ${paymentFrequency === 'yearly' ? 365 : (paymentFrequency === 'halfyearly' ? 180 : (paymentFrequency === 'quarterly' ? 90 : (paymentFrequency === 'monthly' ? 30 : (paymentFrequency === 'two-yearly' ? 730 : (paymentFrequency === 'three-yearly' ? 1095 : 1825)))))} * 剩余天数</p> <p>剩余价值 = ${purchasePrice} / ${paymentFrequency === 'yearly' ? 365 : (paymentFrequency === 'halfyearly' ? 180 : (paymentFrequency === 'quarterly' ? 90 : (paymentFrequency === 'monthly' ? 30 : (paymentFrequency === 'two-yearly' ? 730 : (paymentFrequency === 'three-yearly' ? 1095 : 1825)))))} * ${remainingDays} = ${remainingValue}</p> `; document.getElementById("calculationDetails").innerHTML = calculationDetails; // Show the result section document.querySelector(".result").style.display = "block"; } </script> </body> </html>
10个月前
0
0
1
...
5
6
7
...
9
您是第
37211
位访客