分享一个 linux 技能飞书话题群的一个问题。 ---- 问: 在linux系统里,普通用户目录是在 /home 下,root用户目录在 /root,因此全部用户共享目录的。...(比如说ohmyzsh之类的) 我之前在自己服务器上,每次都需要安装两遍,一次只有当前那个用户生效,这是为什么呢?...---- 答: 不一定,当我们说我们在 linux 装了一个东西,指的是:「我们装了一个命令,可全局执行」。此时是将该命令放在了全局执行目录(或者将该命令目录放在了 $PATH)。...哦对,PATH 该路径列表可自定义,而每一个用户都可以有独立的 PATH 环境变量。...所以,要看一个命令是所有用户共享还是仅对当前用户有效,具体要看该命令是怎么装的,可以看看 which command 进一步排查。
Windows系统中index.php.等同于index.php Linux系统不行 Windows中 http:// http:\\都一样c=_GET['$work'] a=‘...$_SERVER['GATEWAY_INTERFACE']返回服务器使用的 CGI 规范的版本。$_SERVER['SERVER_ADDR']返回当前运行脚本所在的服务器的 IP 地址。...$_SERVER['REQUEST_METHOD']返回访问页面使用的请求方法(例如 POST)。$_SERVER['REQUEST_TIME']返回请求开始时的时间戳(例如 1577687494)。...$_SERVER['REMOTE_PORT']返回用户机器上连接到 Web 服务器所使用的端口号。$_SERVER['SCRIPT_FILENAME']返回当前执行脚本的绝对路径。...$_SERVER['SERVER_ADMIN']该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。$_SERVER['SERVER_PORT']Web 服务器使用的端口。
Valgrind的使用十分简单,通过设置一定的参数启动二进制可执行程序,并且在执行结束之后收集结果输出即可。...*/ if (REQUEST_METHOD == NULL) input = get_DEBUG(); else if (!...(entries,input); FREE(input); return NULL; } 查看read_cgi_input函数,可以看到是通过宏REQUEST_METHOD来获取调用模式...)进入调用get_POST函数的分支,并且在get_POST函数中通过CONTENT_LENGTH环境变量获取输出参数字符串的长度。...分析到这里,现在大致可以确定如何直接启动CGI二进制文件并输入参数了。
$this->method; } 分析 构造函数 其中__construct函数是类的构造函数 将类的属性存在一个数组里面options[] 通过遍历数组来对类的属性进行初始化,而且在初始化的过程中...但是大家可以注意到,thinkphp/think/App.php 中有一句$request->filter($config['default_filter']);这是新版本中的过滤机制,可以防止filter...preg_match($filter, $value)) { // 匹配不成功返回默认值 $value =...empty($filter)) { // filter函数不存在时, 则使用filter_var进行过滤 // filter...,调用了call_user_func()进行过滤, 而调用的函数可控,filter(value),我们在分析 method函数的函数的时候说过tp5.0.10远程代码执行的时候,函数调用的缺陷,虽然可以将
使用nginx $http_user_agent, $uri 变量 结合if 语句,完成多重条件判断。 2. 对应用场景,示例恶意post行为返回405状态码。...if ($request_method !...肆 ---- 指令使用方法 1. return 指令 语法:return code 默认值:none 使用字段:server, location, if 这个指令结束执行配置语句并为客户端返回状态代码...,可以使用下列的值: 204,400,402-406,408,410, 411, 413, 416与500-504。...你可以使用set定义一个新的变量,但是不能使用set设置$http_xxx头部变量的值 3. if 指令 请参考这篇文章 > ---- 本期搬砖就到这里下期再搬
1、C/C++层创建对象,返回指针给Java层,Java层使用该指针作为后续操作的参数,在windows 64位系统中,出现地址无法访问的问题: 参考:https://www.jianshu.com/p.../144136be6be9 在java与c构建多实例的案例中,java中对象保存一个long型成员变量,作为对应c实例的指针,jni层在新建c对象后,将对象指针(64位)转成长整型返回给java成员变量保存...然而在某些情况下,调用c实例的方法会出现ACCESS_VIOLATION,并且在windows上会报错,但在linux上就没问题。...经过排查,问题最终定位如下: 在jni.h中,关于jlong(java long)的typedef并不是唯一的,在windows上,long总是32位(所以在linux上没问题),所以在jni层将地址转长整型的操作...补记:20210702 事出蹊跷必有因,在Linux平台运行正常的代码,在Windows平台就会出现异常,原来是Windows平台的calloc申请出来的内存并不会自动清0,导致结构体中指针对象为非法指针
在 route.go SetupRouter 方法中增加代码: engine.Use(gin.Logger()) 运行后多请求几次,日志输出在命令行中: [GIN] 2019/08/30 - 21:24...在 route.go SetupRouter 方法中增加代码: f, _ := os.Create(config.AppAccessLogName) gin.DefaultWriter = io.MultiWriter...当然有,其中 logrus 是用的最多的,这个工具功能强大,原来我也分享过,可以看下原来的文章《使用 logrus 进行日志收集》。 2、为什么将日志记录到文本中?...因为,日志平台可以使用的是 ELK。 使用 Logstash 进行收集文本文件,使用 Elasticsearch 引擎进行搜索分析,最终在 Kibana 平台展示出来。...可能会,这块可以使用异步,咱们可以用下 go 的 chan,具体实现看代码吧,我就不贴了。 源码地址 https://github.com/xinliangnote/go-gin-api
优点:实现简单,对操作者的权限没有严格要求(有些类型的端口扫描需要操作者具有root权限),系统中的任何用户都有权力使用这个调用,而且如果想要得到从目标端口返回banners信息,也只能采用这一方法。...如果对每个目标端口以线性的方式,使用单独的connect()调用,可以通过同时打开多个套接字,从而加速扫描。 缺点:是会在目标主机的日志记录中留下痕迹,易被发现,并且数据包会被过滤掉。...但是基于Unix(*nix,如Linux)遵从RFC 793标准,所以可以用NULL扫描。经过上面的分析,我们知道NULL可以辨别某台主机运行的操作系统是什么操作系统。...在前两种扫描中,有响应数据包的表示端口开放,但在NUll扫描中,收到响应数据包表示端口关闭。反向扫描比前两种隐蔽性高些,当精确度也相对低一些。 用途:判断是否为Windows系统还是Linux。...FIN:在结束TCP会话时使用。正常情况下,三个标志位不能被同时设置,但在此种扫描中可以用来判断哪些端口关闭还是开放,与上面的反向扫描情况相同,依然不能判断windows平台上的端口。
init_executor()初始化执行器 startup_scanner()初始化扫描器 sapi_activate 对SG宏内的一些变量进行初始化,并调用当前sapi_module_struct中定义的钩子函数...activate()以及input_filter_init(),但是在cli模式下,这两个钩子函数都没有实现,返回了null SAPI_API void sapi_activate(void) {...strcmp(SG(request_info).request_method, "POST")) { /* HTTP POST may contain form data to...zend_set_timeout 通过settimer的方式实现 php_hash_environment 为http_globals分配内存,初始化auto_globals,解析请求参数并存放到全局变量中。..., &PG(http_globals)[TRACK_VARS_SERVER]); } return SUCCESS; } zend_activate_modules 该函数通过遍历注册在module_registry
这让计数和测量通过mtail导出到你定义的任何目的地 我们定义mtail程序的内容:匹配的条件和采取的操作;首先指定条件,然后执行以下操作,包含在{}中 你可以在程序中指定多组条件和操作,也可以使用条件逻辑以...可以将--emit_prog_label参数设置为false来省略此标签 ---- 9.3 处理Web服务器访问日志 使用mtail从Apache访问日志中撮一些指标,特别是使用combined日志格式的指标...在第一个计数器apache_http_requests_total中,我们添加了request_method、http_version、request_status的附加维度,这些维度将作为标签添加到结果计数器中...在示例中,我们捕获request_status的命名值 ,然后可以在操作中使用这些捕获 Capture Groups Regular expressions in patterns can contain...在示例中,我们捕获request_status的命名值,然后可以在操作中使用这些捕获 代码清单:combined访问日志操作 { apache_http_requests_total[$request_method
1.如果你想根据User-Agent头来决定是否重定向,你可以使用以下配置:if ($http_user_agent \~* "(Mobile|Android|iPhone|Windows Phone)...例如,你可能想要对静态资源(如 CSS、JavaScript、图像文件等)设置长时间的缓存,以减少返回同一资源的请求次数。你可以在 Nginx 配置中这样设置:location \~* \....这个字段与 Cache-Control 一起使用,可以更精细地控制缓存行为。例如,你可能希望某个特定的文件在一年后过期。...在 Nginx 中,你可以使用 $upstream_http_Content_Type 变量来访问这个字段例如,你可能有一个上游服务器返回 JSON 数据,但你希望将其转换为 HTML。...在 Nginx 中,你可以使用 $upstream_http_Set_Cookie 变量来访问这个字段。例如,你可能有一个上游服务器设置了一个会话 cookie,但你希望修改这个 cookie 的值。
安装与使用 安装 nginx官网下载地址:http://nginx.org,发布版本分为 Linux 和 windows 版本。 也可以下载源码,编译后运行。...通过设定编译选项,你可以改变这个设定。 Windows 安装 为了安装 Nginx / Win32,需先下载它。然后解压之,然后运行即可。...更改 host: 在 C:Windows\System32\drivers\etc 目录下的host文件中添加一条DNS 记录127.0.0.1 www.javastack.cn 启动前文中 startup.bat...的命令 在浏览器中访问 www.javastack.cn,不出意外,已经可以访问了。...负载均衡配置 上一个例子中,代理仅仅指向一个服务器。 但是,网站在实际运营过程中,多半都是有多台服务器运行着同样的app,这时需要使用负载均衡来分流。 nginx也可以实现简单的负载均衡功能。
安装与使用 安装 nginx官网下载地址 发布版本分为 Linux 和 windows 版本。 也可以下载源码,编译后运行。 从源代码编译 Nginx 把源码解压缩之后,在终端里运行如下命令: $ ....服务器方式目前还是开发尝试中。 使用 nginx 的使用比较简单,就是几条命令。...更改 host:在 C:\Windows\System32\drivers\etc 目录下的host文件中添加一条 DNS 记录 127.0.0.1 www.helloworld.com 启动前文中...startup.bat 的命令 在浏览器中访问 www.helloworld.com,不出意外,已经可以访问了。...负载均衡配置 上一个例子中,代理仅仅指向一个服务器。 但是,网站在实际运营过程中,多半都是有多台服务器运行着同样的app,这时需要使用负载均衡来分流。 nginx也可以实现简单的负载均衡功能。
安装与使用 安装 nginx官网下载地址:http://nginx.org,发布版本分为 Linux 和 windows 版本。 也可以下载源码,编译后运行。...更改 host:在 C:Windows\System32\drivers\etc 目录下的host文件中添加一条DNS 记录 启动前文中 startup.bat 的命令 在浏览器中访问 www.javastack.cn...负载均衡配置 上一个例子中,代理仅仅指向一个服务器。 但是,网站在实际运营过程中,多半都是有多台服务器运行着同样的app,这时需要使用负载均衡来分流。 nginx也可以实现简单的负载均衡功能。...但是,使用 nginx 配置 https 需要知道几点: HTTPS 的固定端口号是 443,不同于 HTTP 的 80 端口 SSL 标准需要引入安全证书,所以在 nginx.conf 中你需要指定证书和它对应的...使用 Nginx 可以非常快速便捷的搭建一个简易的文件服务。 Nginx 中的配置要点: 将 autoindex 开启可以显示目录,默认不开启。
,如果失败,则返回 false,如果 variable 参数未设置,则返回 NULL。...例如我们常常使用$_POST[‘id’]获取input中name=id的value 也可使用 filter_input(‘INPUT_POST‘,id),get和cookie都不多说了。说下ENV吧?...$_ENV(很少人用到的一个环境变量,因为环境不同而不同) 你可使用print_r($_ENV)查看具体内容,但是~~~有可能是空的哦,那是因为你的php.ini配置中 variables_order...HTTP_CONNECTION] => keep-alive [HTTP_CACHE_CONTROL] => max-age=0 [HTTP_USER_AGENT] => Mozilla/5.0 (X11; Linux...GET或者POST的都可以使用这个获取到,为何不用呢?
这个还真没有,总觉得维护一个微信群不容易,因为自己本身就不爱在群里说话,另外,自己也在很多微信群中,开始氛围挺好的,大家都聊聊技术,后来技术聊的少了改成聊八卦啦,再后来慢慢就安静了,还有在群里起冲突的....开始今天的文章吧,这篇文章实现了一个简单的 RPC 远程调用,在实现之前需要先了解什么是 RPC,不清楚的可以看下之前发的这篇文章 《我眼中的 RPC》。...举个工作中的例子吧,在电商系统中的两个模块,个人中心模块和订单管理模块,这两个模块是独立部署的,可能不在一个机房,可能不是一个域名,现在个人中心需要通过 用户ID 和 订单类型 获取订单数据。..., $response = null) { $rs['request_method'] = $request->server['request_method'];...服务的调用方与提供方中间需要有一个服务注册中心,很显然上面的代码中没有,需要自己去实现。 服务注册中心,负责管理 IP、Port 信息,提供给调用方使用,还要能负载均衡和故障切换。
bottle 开发功能不是特别复杂的web服务,可以考虑使用bottle框架,它比Django轻量。bottle例子在Linux下演示。 安装 使用bottle框架首先安装。一个指令搞定。.../dist/static/css/') @get('/test2020/date')#返回某个表中的日期,看sql你就明白了 def helloins(): db = MySQLdb.connect...json格式为了方便前端vue接收处理,其实返回各种类型都可以 @get('/test2020/helloworld') def helloworld(): return...如果安装了MySQL数据库可以测试test2020/date的url是否能返回结果 数据库只要有下面的数据就可以 ? 前端页面是这个样子的,给用户选择某个日期。 ?...最后在上面的地址下载到了2.6版本的安装文件,才成功安装可以使用的pip。 总结 相比java,python开发web代码量少,需要安装的库少,如果能满足功能和性能要求,python可能是更好的选择。
PHP中环境变量的操作 在 PHP 中,我们可以通过 phpinfo() 查看到当前系统中的环境变量信息(Environment)。在代码中,我们也可以通过两个函数,查看和修改相应的环境变量信息。...不过需要注意的是,在 CLI 环境和 SAPI 环境下它所返回的信息是不一样的。...Fast CGI 之类的 SAPI 中运行,则此函数将始终返回由 SAPI 设置的环境变量的值,即使已使用 putenv() 来设置同名的本地环境变量。..."), PHP_EOL; // GET echo getenv("REQUEST_METHOD", true), PHP_EOL; // 在第二个参数不为 true 的情况下,我们可以通过 getenv...所以,在 php.ini 中,默认情况下 putenv() 是定义为危险函数的,也就是在 disable_functions 中需要删除掉这个函数才能正常使用,如果要使用 Composer 的话也必须要开启这个函数才能正常使用
安装与使用 安装 nginx官网下载地址:http://nginx.org,发布版本分为 Linux 和 windows 版本。 也可以下载源码,编译后运行。...通过设定编译选项,你可以改变这个设定。 Windows 安装 为了安装 Nginx / Win32,需先下载它。然后解压之,然后运行即可。...的命令 在浏览器中访问 www.helloworld.com,不出意外,已经可以访问了。...负载均衡配置 上一个例子中,代理仅仅指向一个服务器。 但是,网站在实际运营过程中,多半都是有多台服务器运行着同样的app,这时需要使用负载均衡来分流。 nginx也可以实现简单的负载均衡功能。...但是,使用 nginx 配置 https 需要知道几点: HTTPS 的固定端口号是 443,不同于 HTTP 的 80 端口 SSL 标准需要引入安全证书,所以在 nginx.conf 中你需要指定证书和它对应的