本文同样适合 Debian 11 和 Ubuntu 22.04,请使用 root 用户进行操作。1、什么是 HTTP/3 和 QUIC ?HTTP/3 是一种基于 QUIC(Quick UDP Internet Connections)协议的 HTTP 协议版本,它是 HTTP/2 的后继者,旨在改进 Web 性能和安全性。HTTP/3 与之前的 HTTP 协议有很大的不同,最明显的区别是它使用 QUIC 协议而不是 TCP 协议来传输数据。QUIC 是一种由 Google 开发的协议,基于 UDP,它在保持安全性的同时提供更快的连接和更少的延迟。与 TCP 不同,QUIC 允许多个请求同时在同一连接上进行,从而减少了网络拥塞和握手延迟的影响。总的来说,HTTP/3 的设计目标是通过减少延迟和提高性能,为 Web 应用程序提供更快、更安全和更高效的用户体验。2、安装 Nginx Quic这里我们推荐 烧饼博客 团队打包的 Nginx Quic 版本,它是基于最新的官方 1.25.0 源码打包的,支持 HTTP/3 和 QUIC 协议。2.1 更新系统并安装部分必要软件apt updat
本文将介绍使用官方源和第三方源在 Debian 12 和 Ubuntu 22.04 安装最新版 Nginx + PHP + MySQL 的教程,并且可以自行选择 PHP 版本。PS:本文同时适用于 Debian 11 Bullseye, Debian 10 Buster,Ubuntu 20.04 Focal 以及 Ubuntu 22.04 Jammy以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作。1、更新系统并安装部分必要软件apt update apt upgrade -y apt dist-upgrade -y apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates如果您通过 iso 方式安装 Debian 12 并且设置了 root 密码,则默认不带 sudo 包,使用 apt install sudo 安装即可2、增加烧饼博客打包的 Nginx 源并安装这里我们推荐 烧饼博客 团队打包的 Nginx
Google Cloud谷歌云的赠送试用金300刀是在谷歌结算帐号里面的,而不同谷歌帐号之间结算帐号能相互关联。于是我用使用原来的信用卡重新申请一个新的谷歌云试用帐号,然后将新谷歌云赠送的300刀试用金关联到即将到期的老谷歌云帐号,这样就实现了老谷歌云的实例项目无需改变的情况下,消耗使用新谷歌云帐号的免费试用赠金,当然有效期也是按90天开始计算。这种方式可以无限循环,也就是说如果你不嫌麻烦,可以每三个月申请一次谷歌云,然后设置一遍账户关联。Google Cloud 谷歌云 帐号关联设置Google Cloud谷歌云帐号关联,首先你需要新申请一个谷歌云帐号。然后将老的谷歌云,就是快到期的帐号关联到新的帐号中,下面是操作步骤。1.进入新的谷歌云帐号,在左侧菜单中点击结算,再点击下面的帐号管理,点击右上方的显示信息面板。点击添加主帐号。2.在为“我的结算帐号”资源添加主帐号和角色中,添加新的主帐号,这个新的主帐号填写你老的谷歌云的Google帐号,填写老谷歌云的登陆邮箱即可,角色选择Billing>Billing Account Administrator。选择完毕后点击保存添加主帐号
本文同样适用于 Debian 10 Buster 和 Debian 9 Strech。由于某些软件并没有增加开启启动的服务,很多时候需要手工添加,一般我们都是推荐使用 systemd 写个系统服务,但是对于一些简单的脚本或者懒人来说,添加命令到 /etc/rc.local 文件更方便,但是自从 Debian 9 开始,Debian 默认不带 /etc/rc.local 文件,而 rc.local 服务却还是自带的:root@debian ~ # cat /lib/systemd/system/rc-local.service # SPDX-License-Identifier: LGPL-2.1-or-later # # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # th
1、首先添加新建项:C#窗体2、添加控件,并修改布局如下效果在这里插入图片描述修改TextBox控件name为txtString,修改button1控件name为btnOK,Text为确定,修改取消button2控件name为btnCancel,Text为取消。然后在按下F7,在代FrmInputDialog类里面添加代码:public delegate void TextEventHandler(string strText); public TextEventHandler TextHandler;3、双击按钮分别添加按钮事件,代码如下:private void btnOk_Click(object sender, EventArgs e) { if (null != TextHandler) { TextHandler.Invoke(txtString.Text); DialogResult = DialogResult.OK; } }private void btnCancel_Click(object sender,
默认情况下,MySQL服务器仅监听来自本地主机的连接,这意味着它只能由运行在同一主机上的应用程序访问。但是,在某些情况下,有必要从远程位置访问MySQL服务器。例如,当您想从本地系统连接到远程MySQL服务器时。或者当使用多服务器部署时,应用程序与数据库服务器不在同一台计算机上运行。一种选择是通过SSH隧道访问MySQL服务器,另一种是将MySQL服务器配置为接受远程连接。在本教程中,我们将向你展示如何配置MySQL服务器接受远程的连接。包括添加或更改bind-address选项指定监听地址0.0.0.0 ,授权MySQL用户远程访问权限。配置防火墙iptable,UFW,FirewallD允许连接3306端口。验证MySQL数据库服务器的远程连接。相同的说明适用于MariaDB。配置MySQL服务器第一步是设置MySQL服务器监听计算机所有IP地址。如果MySQL服务器和客户端可以通过专用网络相互通信,那么最好的选择是将MySQL服务器设置为仅在指定IP上监听。如果要通过公共网络连接到MySQL服务器,请将MySQL服务器设置为监听计算机上的所有IP地址。因此,您需要编辑MySQL配
MySQL是最流行的开源关系数据库管理系统。它快速,易于使用,可扩展,并且是流行的LAMP和LEMP栈的组成部分。MySQL在默认的Debian存储库中不可用。 MariaDB是Debian 10中的默认数据库。要将MySQL存储库添加到您的系统,请访问MySQL仓库下载页面并使用wget命令下载最新MySQL。下载完成后,以root或者具有sudo权限的用户安装运行apt install命令安装本地deb软件包。系统将显示配置菜单,从中可以选择要安装的MySQL版本。默认选中是MySQL 8.0。如果要安装MySQL 5.7,可以使用键盘的方向键选择MySQL Server & Cluster (Currently selected: mysql-8.0),然后选择MySQL版本。我们将安装MySQL 8.0版。按Tab选择OK,然后按Enter。接下来与运行apt update更新软件包列表,然后安装MySQL server软件包。wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb sudo apt i
SSH 三步解决免密登录1.客户端生成公私钥本地客户端生成公私钥:(一路回车默认即可)ssh-keygen上面这个命令会在用户目录.ssh文件夹下创建公私钥cd ~/.ssh ls下创建两个密钥:id_rsa (私钥)id_rsa.pub (公钥)2.上传公钥到服务器这里测试用的服务器地址为:192.168.235.22用户为:rootssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.235.22上面这条命令是写到服务器上的ssh目录下去了cd ~/.ssh vim authorized_keys可以看到客户端写入到服务器的 id_rsa.pub (公钥)内容。3.测试免密登录客户端通过ssh连接远程服务器,就可以免密登录了。ssh root@192.168.235.22
Pip是Python的软件包管理器,是用于安装Python软件包的工具。使用pip,您可以从Python包索引仓库PyPI和其他软件包索引仓库中搜索,下载和安装python包。Python目前有两个主要版本,分别是Python 2和Python3。从Debian 9开始,系统默认安装Python 3,并且可以Debian 10软件源安装Python 2。我们建议你切换到Python3。在全局安装Python包时,强烈建议使用apt命令安装python包,因为它们已经过测试,可以在Debian 10正常工作。这些由Deb格式打包的Python包都有指定的前缀,例如Python 3的包的前缀为python3-。Python 2的包前缀为python2-。仅当python包不可用apt命令安装时,才使用pip全局安装python包。我们建议你在虚拟环境中使用pip。Python虚拟环境允许您将Python包安装在指定项目的隔离位置,而不必全局安装。 这样,您不必担心会影响其他Python项目。Python 3安装pip要在Debian 10 Python 3安装pip,请以root或具有su
ZeroSSL在2016年就已经推出,和Let’s Encrypt一样,证书有效期只有90天,支持泛域名SSL证书。和Let’s Encrypt不同的是,ZeroSSL API没有速率限制,不存在同一IP多次申请SSL证书被限制的问题,ZeroSSL还提供了WEB界面可在后台管理SSL证书,相比Let’s Encrypt功能更加丰富。在acme.sh的文档中提到,acme.sh默认server使用Let’s Encrypt,将在2021/08/01发布v3版本,默认server将更改为ZeroSSL(参考:https://github.com/acmesh-official/acme.sh/wiki/Change-default-CA-to-ZeroSSL),可以看出ZeroSSL越来越流行,acme.sh也在向ZeroSSL靠拢。安装acme.shacme.sh 实现了 acme 协议,可以帮助你快速申请SSL证书,自动更新证书等操作,极大简化操作步骤。在使用之前,我们需要先安装,以下命令均在Linux系统完成。##安装acme.sh curl https://get.acme.s
昔时贤文,诲汝谆谆。集韵增广,多见多闻。观今宜鉴古,无古不成今。知己知彼,将心比心。酒逢知己饮,诗向会人吟。相识满天下,知心能几人?相逢好似初相识,到老终无怨恨心。近水知鱼性,近山识鸟音。易涨易退山溪水,易反易覆小人心。运去金成铁,时来铁似金。读书须用意,一字值千金。逢人且说三分话,未可全抛一片心。有意栽花花不发,无心插柳柳成荫。画虎画皮难画骨,知人知面不知心。钱财如粪土,仁义值千金。流水下滩非有意,白云出岫本无心。当时若不登高望,谁信东流海洋深?路遥知马力,日久见人心。两人一般心,无钱堪买金;一人一般心,有钱难买针。相见易得好,久住难为人。马行无力皆因瘦,人不风流只为贫。饶人不是痴汉,痴汉不会饶人。是亲不是亲,非亲却是亲。美不美,乡中水;亲不亲,故乡人。莺花犹怕春光老,岂可教人枉度春?相逢不饮空归去,洞口桃花也笑人。红粉佳人休使老,风流浪子莫教贫。在家不会迎宾客,出门方知少主人。黄芩无假,阿魏无真。客来主不顾,自是无良宾。良宾主不顾,应恐是痴人。贫居闹市无人问,富在深山有远亲。谁人背后无人说,哪个人前不说人?有钱道真语,无钱语不真。不信但看筵中酒,杯杯先劝有钱人。闹里有钱,静处安身。
原标题:Linux中用gdb 查看代码堆栈的信息原出处:Linux中用gdb 查看代码堆栈的信息core dump 一般是在segmentation fault(段错误)的情况下产生的文件,需要通过ulimit来设置才会得到的。调试的话输入:gdb filename core filename就是产生core文件的可执行文件,core就是产生的dump文件查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令:backtrace bt打印当前的函数调用栈的所有信息。如:(gdb) bt #0 func (n=250) at tst.c:6 #1 0x08048524 in main (argc=1, argv=0xbffff674) at tst.c:30 #2 0x400409ed in __libc_start_main () from /lib/libc.so.6从上可以看
本文实例使用的centos版本为CentOS Linux 7.5.1804。亲测可用。
作者: 阮一峰日期: 2015年12月 9日我每天使用 Git ,但是很多命令记不住。一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。代码回滚1、 查找历史版本使用git log命令查看所有的历史版本,获取你git的某个历史版本的id假设查到历史版本的id是fae6966548e3ae76cfa7f38a461c438cf75ba965。2、 恢复到历史版本git reset --hard fae6966548e3ae76cfa7f38a461c438cf75ba9653、 把修改推到远程服务器git push -f -u origin master 保存密码到硬盘一条命令就可以git config credential.helper store下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库在当前目录新建一个Git代码库git init新建一个目录,将其初始化为Git代码库git ini
由于工作需要用到网络调试,但是mac版的网络调试助手可选择很少,故自己动手开发了一个mac版的网络调试助手,参照的是pc版的网络调试助手:NetAssist。如有侵权请联系huangshikun2008@126.com本软件使用Qt5.12 for macOS开发主要功能有:TCP服务端:TCP客户端:1、客户端支持发起指定数量连接以测试服务端负载能力,最大支持1024个连接2、支持定时循环发送消息3、支持ASCII和HEX两种格式下载地址:网络调试助手 提取码: p27s
RapidJson是只需包含头文件就可以直接使用的第三方json解析库1.包含头文件#include "rapidjson/document.h" #include "rapidjson/stringbuffer.h" #include "rapidjson/writer.h" 2.声明一些变量Document doc; doc.SetObject(); Document::AllocatorType& alloc = doc.GetAllocator(); Value key(kStringType); Value value(kStringType); 3.添加节点与赋值key.SetString("name", alloc); value.SetString("kun775", alloc); doc.AddMember(key, value, alloc);4.数组Value array(rapidjson::kArrayType); Value
2019-3-29富途面试一面技术面就挂了,上来就笔试题,一共5道题,我做了将近一个小时,还没能全答出来,基础知识,得好好巩固了。TCP连接中启用和禁用TCP_NODELAY有什么影响? - 车小胖的回答 - 知乎map,set时间复制度问题:因为map底层是红黑树,所以增删查的时间复杂度都是O(logN),hashmap时间复杂度是O(1)int a = (int)((int)(0)+4); a=? 为什么?答案是:16,这里涉及指针+整数运算.因为(int )0是把有符号整数0强制为int 型指针,这个指针的目标元素是int型,占4字节;((int )0)+4是“指针+整数”结构,这时的整数就被解释为元素个数,1个元素4字节,4个元素自然是16字节,且这个16被自动提升为(int )0的类型,亦即int 指针类型;最前面的(int)又把int *指针类型的16强制为普通的int型,所以在32位int平台下最终结果是整型值16。请找出下面代码中的所有错误 (题目不错,值得一看)说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”#include"strin
版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/CatStarXcode/article/details/79513425NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路。MongoDB:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但 MongoDB 并不是单纯的内存数据库。MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。MongoDB 的存储特点在传统的关系型数据库中,数据是以表单为媒介进行存储的,每个表单均拥有纵向的列和横向的行。由
SaiKwan
其实,我是一个程序员