Year: 2019

  • /proc/sys/net/ipv4/tcp_sack 有漏洞 看看/proc/sys/net/ipv4下各参数的意义

    /proc/sys/net/ipv4/icmp_timeexceed_rate 这个在traceroute时导致著名的“Solaris middle star”。这个文件控制发送ICMP Time Exceeded消息的比率。 /proc/sys/net/ipv4/igmp_max_memberships 主机上最多有多少个igmp (多播)套接字进行监听。 /proc/sys/net/ipv4/inet_peer_gc_maxtime 求 助: Add a little explanation about the inet peer storage? Minimum interval between garbage collection passes. This interval is in effect under low (or absent) memory pressure on the pool. Measured in jiffies. /proc/sys/net/ipv4/inet_peer_gc_mintime 每一遍碎片收集之间的最小时间间隔。当内存压力比较大的时候,调整这个间隔很有效。以jiffies计。 /proc/sys/net/ipv4/inet_peer_maxttl entries的最大生存期。在pool没有内存压力的情况下(比如,pool中entries的数量很少的时候),未使用的entries经过一段时间就会过期。以jiffies计。 /proc/sys/net/ipv4/inet_peer_minttl entries的最小生存期。应该不小于汇聚端分片的生存期。当pool的大小不大于inet_peer_threshold时,这个最小生存期必须予以保证。以jiffies计。 /proc/sys/net/ipv4/inet_peer_threshold The approximate size of…

  • Mysql5.6设置max_connections失败解决办法

    Mysql5.6设置max_connections失败解决办法

    my.cnf 无法修改连接数,报错信息: [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 15000) [Warning] Buffered warning: Changed limits: max_connections: 214 (requested 3000) [Warning] Buffered warning: Changed limits: table_open_cache: 400 (requested 1520) 修改/etc/security/limits.conf 添加: mysql hard nofile 65535 mysql soft nofile 65535 vi /usr/lib/systemd/system/mysqld.service.d/limits.conf      #创建并配置配置文件 [Service] LimitNOFILE=10000 # 重新加载配置文件 systemctl daemon-reload #重启mysqld服务,使配置生效。 systemctl restart mysqld.service

  • 如何在wordpress 的文章页面里加广告

    选择要编辑的主题:找到: 文章页面 (single.php),并进行编辑。 找到这一行: <?php the_content(); ?> 它的上下都可以加。效果如下:

  • 如何利用have i been pwned?检测密码是否泄漏

    如何利用have i been pwned?检测密码是否泄漏

    pwned 在百度是搜不出来的。是一个网络用语,由“owned”演化而来,有被攻破、入侵或是被控制的意思。 网址:https://haveibeenpwned.com 输入邮箱或用户名可以查询账号是否泄密, https://haveibeenpwned.com/PwnedWebsites 这个链接中,能够看到有哪些网站曾经泄露过信息,中国的有126,17173。 输入邮箱后,如果显示Oh no — pwned! 则说明密码已经泄露, 验证邮箱后,可以看到具体的是哪个网站泄露了密码,不过并不会显示具体的密码是多少。

  • dell和hp服务器磁盘检测命令

    DELL检测工具 #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL 查raid级别 #/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aALL 查raid卡信息 #/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL 查看硬盘信息 #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -aAll 查看电池信息 #/opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog -Dsply -aALL 查看raid卡日志 #/opt/MegaRAID/MegaCli/MegaCli64 -adpCount 【显示适配器个数】 #/opt/MegaRAID/MegaCli/MegaCli64 -AdpGetTime -aALL 【显示适配器时间】 #/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aAll 【显示所有适配器信息】 #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll 【显示所有逻辑磁盘组信息】 #/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll 【显示所有的物理信息】 #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL |grep ‘Charger Status’ 【查看充电状态】 #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL【显示BBU状态信息】…

  • docker rm容器报错Error response from daemon: driver “overlay” failed to remove root filesystem for xxx device or resource busy 解决办法

    docker删除容器报错信息: [root@moneyslow.com ~]# docker rm -f 6105a0e6d7dc Error response from daemon: driver “overlay” failed to remove root filesystem for 6105a0e6d7dc3e1c9f7f68ed273dcc22e9b954e6f0ddbd58026da6ee839a0c2d: remove /var/lib/docker/overlay/f9614e02b2c67bae1d6df46d5ca470a6468c2597ed7be82134ac9df3a8f3d5ce/merged: device or resource busy 我就呵呵了,设备忙。思路,找谁在用这个目录, 用 f9614e02b2c67bae1d6df46d5ca470a6468c2597ed7be82134ac9df3a8f3d5ce 这段找找系统里mount信息里使用这个玩意的进程: [root@moneyslow.com ~]# grep 5ca470a6468c2597ed7be82134ac9df3a8f3d5ce /proc/*/mountinfo /proc/15877/mountinfo:171 167 0:38 / /var/lib/docker/overlay/f9614e02b2c67bae1d6df46d5ca470a6468c2597ed7be82134ac9df3a8f3d5ce/merged rw,relatime shared:113 – overlay overlay rw,lowerdir=/var/lib/docker/overlay/3e608cff644197e9909e640a5e856618ef44d38b4ef804d3927a91377b23d50f/root,upperdir=/var/lib/docker/overlay/f9614e02b2c67bae1d6df46d5ca470a6468c2597ed7be82134ac9df3a8f3d5ce/upper,workdir=/var/lib/docker/overlay/f9614e02b2c67bae1d6df46d5ca470a6468c2597ed7be82134ac9df3a8f3d5ce/work 以上看到没有,proc后面跟的就是进程号 15877,看看是什么东西: [root@moneyslow.com ~]# ps -ef|grep 15877 ntp 15877…

  • ICP证与ICP备的区别

    ICP证与ICP备的区别

    一、介绍 1、ICP备( ICP备案证) ICP备案号是指非经营性的网站,例如公司的展示网站,公司官网及一些个人非经营性质的网站需要做的,凡是使用国内服务器的网站都是需要到所在省通信管理局备案的; 如,冀ICP备*********号,有了备案号后网站才可以正常运行,否则通信管理局是不让打开的。做ICP备案只需要提供一些基本的信息,如公司提供执照、身份证、备案信息、备案照片就可以。 2、ICP证( ICP经营许可证) ICP证,全称是互联网增值电信业务经营许可证,凡是涉及到经营性质的网站,如在线商城、提供广告业务、提供有偿信息服务等等, 如,您是经营性质的网站,您的网站除了做非经营性的ICP备案,拥有一个备案号之外还需要申请ICP经营许可证。ICP证展现形式:冀ICP证******号 二、区别 1、内容区别 a、所有网站都要有ICP备案,但是只有提供有偿信息服务的网站(经营性网站,如:在线商城、提供广告业务等)才需要申请ICP许可证; b、网站只有做了ICP备案才可以去申请ICP许可证,并且ICP备案必须以公司名义申请,提供服务器的单位必须有IDC或ISP证而且要在当地通管局做过备案才行; 2、展现形式 冀ICP备*********号 冀ICP证******号 三、申请条件 1、ICP备 ICP备案是免费的,只需要你在ICP备案网站注册了一个会员,提交网站所有人及管理人、负责人等相关真实资料即可取得ICP备案号。 个人、企业、单位、团体、组织等均可申请。 2、ICP证 a、经营者为依法设立的公司; b、有与开展经营活动相适应的资金和专业人员; c、有为用户提供长期服务的信誉或者能力; d、在省、自治区、直辖市范围内经营的,注册资本最低限额为100万元人民币;在全国或者跨省、自治区、直辖市范围经营的,注册资本最低限额为1000万元人民币; e、有必要的场地、设施及技术方案; f、公司及其主要出资者和主要经营管理人员三年内无违反电信监督管理制度的违法记录; g、国家规定的其他条件。 四、办理流程 1、ICP证 a、企业点击许可申请提出申请,并上传提交申请材料; b、进行材料完备性审核,如材料不完备,则退回企业进行补充修改申请材料; c、管局进行材料审核 d、信息公示 e、申请单位收到系统通知后领取批复文件。 f、办理周期60日 2、ICP备 根据网站空间商要求把资料提交至空间商,由空间上提交至通信管理局审核。管局一般审核周期为:20个工作日 五、资质标准 ICP证的资质标准 1、申请材料-部系统模板 点击登陆对应省通信管理局网址,网上办理增值电信业务中的申请材料下载。 2、其他材料 a、公司的企业法人营业执照副本原件及复印件; b、公司章程(加盖工商局档案查询章原件); c、完整详细的股权结构图(法人签字并公司盖章); 公司股东为自然人,需提交其身份证复印件; 公司股东为企业法人,需提交其企业法人营业执照复印件和公司章程(加盖工商局档案查询章原件); d、公司人员应至少应包括专人专岗的企业联系人、信息安全负责人、客服负责人等3名人员的身份证扫描件; e、公司域名、商标证书复印件; f、行业主管部门前置审批文件复印件; g、社保证明应包含公司概况表中专人专岗的企业联系人、信息安全负责人、客服负责人等3名人员的社保证明;(应加盖社保机构红章); h、已获颁电信业务经营许可证复印件(正文页、附页、特别规定事项、年检页); i、电信主管部门要求提交的其他材料。 ICP备的资质标准…

  • nginx强制http自动跳转到https访问

    nginx强制http自动跳转到https访问

    需求简介 基于nginx搭建了一个https访问的虚拟主机,监听的域名是moneyslow.com,但是很多用户不清楚https和http的区别,会很容易敲成http://moneyslow.com,这时会报出404错误,所以我需要做基于moneyslow.com域名的http向https的强制跳转 我总结了三种方式,跟大家共享一下 nginx的rewrite方法 思路 这应该是大家最容易想到的方法,将所有的http请求通过rewrite重写到https上即可 配置 server { listen 192.168.1.111:80; server_name moneyslow.com; rewrite ^(.*)$ https://$host$1 permanent; } 搭建此虚拟主机完成后,就可以将http://moneyslow.com的请求全部重写到https://moneyslow.com上了 nginx的497状态码 error code 497 497 – normal request was sent to HTTPS 解释:当此虚拟站点只允许https访问时,当用http访问时nginx会报出497错误码 思路 利用error_page命令将497状态码的链接重定向到https://moneyslow.com这个域名上 配置 server { listen 192.168.1.11:443; #ssl端口 listen 192.168.1.11:80; #用户习惯用http访问,加上80,后面通过497状态码让它自动跳到443端口 server_name moneyslow.com; #为一个server{……}开启ssl支持 ssl on; #指定PEM格式的证书文件 ssl_certificate /etc/nginx/test.pem; #指定PEM格式的私钥文件 ssl_certificate_key /etc/nginx/test.key; #让http请求重定向到https请求…

  • 图片显示旋转问题Orientation参数

    图片显示旋转问题Orientation参数

    相机拍摄的图片会有exif信息,有时候会给我们带来烦恼。图片放到windows上可以正常显示,但是mac下确不行。另一种情况是mac先显示正常,传到服务器上就不行了,这是怎么回事呢?原来是exif信息在某些情况下,mac会根据这些信息自动帮你旋转了,有时候反而不是你想要的结果。 EXIF(Exchangeable Image File)是“可交换图像文件”的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数、缩略图及其他属性信息。 图像一旦被修改,Exif信息可能会永久丢失,故编辑 Exif 必须使用专门的软件。 可以理解成,用来记录照片属性和拍摄数据的。 (可以附加于jpeg等文件中,但png图片中不会有。) Orientation EXIF中,有一个 Orientation 参数,用于记录照片生成时的方向。 一共有8个值,分别是:1、2*、3、4*、5*、6、7*、8。 正常情况下,拍照只会出现是1、6、3、8这几个值。2、5、4、7相当于镜像,照像时不会出现这几种情况。1、6、3、8的效果分别是: 1:0度(比如正常情况下我是这样拍摄的) 6:逆时针90度回到正常 3:180度回到正常 8:顺时针90度回到正常 Mac上为什么会是正常的呢? Mac之所以会显示正常,是因为Mac的图片“预览”功能会自动根据Orientation参数处理照片方向。但实际上,照片是旋转的。 实际参数查看方法: 用Mac的预览的 工具 – 显示检查器 查看图片的EXIF 这里可以看到方向是6(逆时针旋转90度将回到正常) windows上默认的图片预览工具没有做处理,如果拍摄的时候是旋转的,那显示的也是旋转的。 在Mac上怎么转回来? 用Mac的“预览”功能打开,再Command + S保存,参数就改变了,上传的图片就正了。 于是, Orientation参数就从6(逆时针旋转90度回到正常)变为了1(正常)。 6变为1 利用专业的修改EXIF的工具

  • discuz修改备案链接

    工信部的备案地址换了,按照国务院办公厅要求,“工业和信息化部ICP/IP地址/域名信息备案管理系统” 域名调整为“beian.miit.gov.cn”,原域名“miitbeian.gov.cn”、“miibeian.gov.cn”自2019年4月25日起停止使用。 那么discuz下面的备案地址怎么改呢? 找到template/default/common/footer.htm 更改为: <!–{if $_G[‘setting’][‘icp’]}–>( <a href=”http://beian.miit.gov.cn/” target=”_blan k”>$_G[‘setting’][‘icp’]</a> )<!–{/if}–>

  • grep与正则表达式基础

    grep与正则表达式基础

    1 命令:grep2 格式:grep [option] “pattern” filename3 选项:4 -v:反向选择5 -i:忽略大小写6 -n:显示行号7 -c:统计行数8 -o:仅显示匹配到的字符串9 -w:匹配整个单词10 -q:不输出任何信息11 -A 2:after 显示后2行12 -B 3:before 显示前3行13 -C 3:context 前后各3行14 -e:实现多个选项间的逻辑关系15 grep -e root -e mail /etc/passwd16 -E:相当于egrep,用于使用拓展的正则表达式17 -F:相当于fgrep,不支持正则表达式复制代码正则表达式(Regular expression)什么是正则表达式Regular expression(正则表达式)是由一类特殊字符及文本字符编写的模式,其中有些字符(元字符)不代表字符的字面意义,而表示控制或通配功能。那些程序支持正则表达式grep,sed,awk,vim,less,nginx,varnish在man中查询我们可以在正则man手册中查找正则的用法man 7 regex正则表达式的分类基本正则表达式扩展的正则表达式元字符的分类字符匹配,匹配次数,位置锚定,分组基础RE(用于grep)字符匹配1 . 匹配任意单个字符2 [] 匹配指定范围内的任意单个字符3 [^] 匹配指定范围外的任意字符匹配次数:用在要指定的次数的字符后面,用于指定前面的字符出现的次数复制代码1 * 匹配前面的字符任意次(包括0次)2 .* 任意长度的任意字符3 \? 匹配前面的字符0次或一次4 \+ 匹配前面的字符至少一次5 \{n\}    匹配前面的字符n次6 \{m,n\}   匹配前面的字符至少m次,最多n次7 \{,n\}…

  • ssh failed Permission denied (publickey,gssapi-keyex,gssapi-with-mic)报错解决办法

    ssh failed Permission denied (publickey,gssapi-keyex,gssapi-with-mic)报错解决办法

    ssh failed Permission denied (publickey,gssapi-keyex,gssapi-with-mic) If you are facing issues with ssh login and displaying the error message “ssh failed Permission denied (publickey,gssapi-keyex,gssapi-with-mic)”, try to follow the below steps: You may try edit in /etc/ssh/sshd_config: cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.back vim /etc/ssh/sshd_config Change “PasswordAuthentication no” to “PasswordAuthentication yes” Restart sshd service service sshd restart Try to…

  • shell中esac的用法

    shell中esac的用法

    esac in shell scripting Like fi for if. esac is the spell backward of “case”.  =================== #!/bin/sh FRUIT=”kiwi” case “$FRUIT” in “apple”) echo “Apple pie is quite tasty.” ;; “banana”) echo “I like banana nut bread.” ;; “kiwi”) echo “New Zealand is famous for kiwi.” ;; esac ========================== Happy scripting.

  • Centos root登陆邮件告警

    Centos root登陆邮件告警

    SSH notification mail alert in Centos Open the “bash_profile” vi ~/.bash_profile And the following content and replace the ” youremailaccount@yourdomain.com” with your email account that you wish to recieve email alerts. ============================ # Email admin when user logs in as root rootalert() { echo ‘ALERT – Root Shell Login’ echo echo ‘Server: ‘`hostname` echo ‘Time:…

  • linux下用netstat和lsof发现恶意进程和链接并匹配grep出公网外网ip地址

    linux下用netstat和lsof发现恶意进程和链接并匹配grep出公网外网ip地址

    The malicious files are being identified by the two powerful commands given below. 1)Netstat: -The command # netstat –an is used to show the all the current network connections currently in use along with the port numbers. Make sure to execute the command in root privilege. 2)Lsof: lsof is one of the best useful utility…

  • Mac下chrome浏览器崩溃解决办法|Mac下完全卸载清除Chrome谷歌浏览器的方法

    Mac下chrome浏览器崩溃解决办法|Mac下完全卸载清除Chrome谷歌浏览器的方法

    如题,下载文件时候浏览器崩溃,彩虹球一直在转。如果简单的移除chrome重装,不会有任何效果。下面的方法是彻底删除Google Chrome浏览器的所有文件,然后再重装。 1、删除程序里的【Chrome浏览器】到废纸篓 2、在以下三个目录里完全清除Chrome痕迹 rm -rf /Users/XXX/Library/Application Support/Google/Chrome rm -rf /Users/XXX/Library/Caches/Google/Chrome rm -rf /Library/Google/ 以上就实现了在Mac下完全卸载清除Chrome谷歌浏览器了

  • 去除“还有一些帖子被系统自动隐藏,点此展开”

    去除“还有一些帖子被系统自动隐藏,点此展开”

    这不是捣乱么,自动判断是水贴,没那么准。 后台--》站点功能--》贴子阅读 启用隐藏水帖: 选否。搞定。

  • centos7 yum不安装mariadb,安装mysql-community社区版

    centos7 yum不安装mariadb,安装mysql-community社区版

    1 常规错误的yum安装方法: 在前文中记述了CentOS 6.5系统中通过yum方式快速地搭建了LNMP环境,那么是否也能在CentOS 7或CentOS 7.1系统中依葫芦画瓢安装MySql5.6.24呢?答案是否定的。 [root@typecodes ~]# yum -y install mysql mysql-server mysql-devel …………………。 ….省略部分安装过程…. …………………。 Installed: mariadb.x86_64 1:5.5.41-2.el7_0 mariadb-devel.x86_64 1:5.5.41-2.el7_0 Dependency Installed: keyutils-libs-devel.x86_64 0:1.5.8-3.el7 krb5-devel.x86_64 0:1.12.2-14.el7 libcom_err-devel.x86_64 0:1.42.9-7.el7 libselinux-devel.x86_64 0:2.2.2-6.el7 libsepol-devel.x86_64 0:2.1.9-3.el7 libverto-devel.x86_64 0:0.2.5-4.el7 openssl-devel.x86_64 1:1.0.1e-42.el7.4 pcre-devel.x86_64 0:8.32-14.el7 zlib-devel.x86_64 0:1.2.7-13.el7 Complete! 从上面的安装结果可以看出,没有安装mysql数据库,而是安装了mariadb数据!因为在CentOS 7和CentOS 7.1系统中,默认安装的mysql是它的分支mariadb。这里引用下百度百科关于mariadb的描述: MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 因此,下面这些正常的MySQL操作都是无效的: #######无法把mysql服务加入系统启动 [root@typecodes ~]# chkconfig mysqld on…

  • sudo ALL=(ALL) ALL 是什么意思?

    sudo ALL=(ALL) ALL 是什么意思?

    概览 sudo 表示 “superuser do”。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,大部分时候我们用它来以提升的权限来运行命令。 sudo 命令与安全策略配合使用,默认安全策略是 sudoers,可以通过文件 /etc/sudoers 来配置。其安全策略具有高度可拓展性。人们可以开发和分发他们自己的安全策略作为插件。 与 su 的区别 在 GNU/Linux 中,有两种方式可以用提升的权限来运行命令: 使用 su 命令 使用 sudo 命令 su 表示 “switch user”。使用 su,我们可以切换到 root 用户并且执行命令。但是这种方式存在一些缺点: 我们需要与他人共享 root 的密码。 因为 root 用户为超级用户,我们不能授予受控的访问权限。 我们无法审查用户在做什么。 sudo 以独特的方式解决了这些问题。 首先,我们不需要妥协来分享 root 用户的密码。普通用户使用他们自己的密码就可以用提升的权限来执行命令。 我们可以控制 sudo 用户的访问,这意味着我们可以限制用户只执行某些命令。 除此之外,sudo 用户的所有活动都会被记录下来,因此我们可以随时审查进行了哪些操作。在基于 Debian 的 GNU/Linux 中,所有活动都记录在 /var/log/auth.log 文件中。 本教程后面的部分阐述了这些要点。 实际动手操作…

  • xss

    xss

    1.Non-persistent XSS 便携a.php <?php $input = $_GET[“param”]; echo “<div>”.$input.”</div>”; ?> 访问 https://www.moneyslow.com/a.php?param=<script>alert(/xss/)</script> 2.DOM XSS <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″> <script type=”text/javascript”> function changeLink() { var str = document.getElementById(“text”).value; document.getElementById(“t”).innerHTML=”<a href='”+str+”‘ >testlink</a>”; } </script> </head> <div id=”t”></div> <input type=”text” id=”text” value=”” /> <input type=”button” id=”s” value=”write” onclick=”changeLink()” /> </html> 测试输入 ‘ onclick=alert(/xss) //

  • Nginx的CGI、FastCGI和PATHINFO

    Nginx的CGI、FastCGI和PATHINFO

    CGI 通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口。通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端。 nginx把活代理给php-fpm,处理完交给nginx,返回给客户。 Nginx接收到php-fpm处理的结果后,就可以响应客户端的http请求给予一个回应了,客户端的这一次http请求就结束了,一张由php产生的华丽丽的网页就呈现在网民的面前。在这段对话中,nginx与php-fpm并没有相互推诿扯皮,交流的很顺畅;没有推诿扯皮的原因就是nginx与php-fpm之间的数据和消息传递使用了统一的标准格式,这个标准格式就是CGI,所以倘若nginx和php-fpm中有任何一方不按CGI标准来玩,你推诿扯皮也没用。 发展到现在,对CGI的理解可以是一种标准接口(协议规范),也可以理解成处理动态网页的某种语言,比如:php、asp都可以宽泛的看做是一种cgi,这个时候cgi就被泛化了但依然包含了不推诿扯皮的交流标准的这一层含义。 FastCGI FastCGI的Fast已经表明含义了,是一种快速的CGI,也是现代动态网页语言与web server之间普遍所采用的。FastCGI像是一个常驻型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算,即FastCGI程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。 nginx与php-fpm就是采用的FastCGI模式。 PATHINFO 常常会见到这种格式的Urlhttps://blog.jjonline.cn/index.php/Article/Post/index.html ,这种Url理解有两种方式: index.php当做一个目录看待:访问blog.jjonline.cn服务器根目录下的index.php目录下的Article目录下的Post目录下的index.html静态html文本文件; index.php当做一个PHP脚本看待:访问blog.jjonline.cn服务器根目录下的index.php脚本,由该脚本产生html页面,Url中/Article/Post/index.html这一部分作为index.php脚本中使用的某种类型的参数。 绝大部分情况下,这种格式的Url理解方式是第二种,而/Article/Post/index.html这一部分理解成PATHINFO就好了。其实PATHINFO是一个CGI 1.1的一个标准,经常用来做为传参载体,只不过咱们没必要深入。 由于Apache的默认配置文件开启了PATHINFO的支持,Apache+PHP的环境下PATHINFO格式的Url可以不出任何错误的执行正确路径的PHP脚本并在脚本中使用PATHINFO中的参数。而Nginx默认提供的有关执行php-fpm运行PHP脚本的默认配置文件中并没有启用PATHINFO,从而导致了一个长久以来的误解:nginx不支持pathinfo。 早期版本的nginx确实不能直接支持pathinfo,但有变相的解决方法,网络上的一些配置nginx支持pathinfo的文章大多就是这种变相解决方法。nginx其实早已可以很简单的通过fastcgi_split_path_info指令支持pathinfo模式了,严格来说是nginx的0.7.31以上版本就可以使用这个指令了。 Nginx的PATHINFO配置 1、关于nginx配置指令的一些墨迹内容 默认的nginx是对http请求的uri进行正则匹配来决定这个请求是否要交给php-fpm来执行;nginx中有关是否要交给php-fpm这个cgi来解析执行某个php脚本的默认配置(nginx1.8.0)如下: location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } 上述location ~ \.php$这段是一个正则匹配,被匹配的内容是http请求的uri,正则表达式就是\.php$,而~则是nginx的location指令中的一个标记符,表示这个location匹配uri采用正则表达式来匹配;在这里URI和URL还是有区别,请厘清。正则表达式中$表示必须以某个字符或字符串结尾,这样上述默认配置中仅能匹配到以.php为结尾的uri交给php-fpm去解析,如下: 1、https://blog.jjonline.cn/index.php 匹配 2、https://blog.jjonline.cn/admin/index.php?m=Index&a=index 匹配,注意这里Url中有Get变量,nginx中location匹配的路径是uri,也就是虚拟路径部分,本例也就是:/admin/index.php 3、https://blog.jjonline.cn/admin/index.php/Index/index 不匹配,pathinfo模式,nginx将index.php理解成一个目录了,这种情况下的uri为:/admin/index.php/Index/index ,结尾并没有.php这种条件 正确配置Nginx对php的pathinfo支持,先要理解清楚nginx配置文件中是如何将某个请求交给php-fpm来执行的,以上述配置段为例来分析一下: root:这个指令配置了php脚本的根目录,可以使用相对路径也可以使用绝对路径,上述示例中是html,表示php的根目录在nginx安装目录下的html目录;这里的目录一般与nginx配置文件server段下的root目录一致,也就是web服务器的根目录;且大多数的时候建议使用绝对地址。假设这里的root设置为:/var/www/www.jjonline.cn/wwwRoot,这样网站根目录的绝对地址就是/var/www/www.jjonline.cn/wwwRoot,配合各种ftp服务器端配置,将ftp登录的家目录设定为/var/www/www.jjonline.cn。拿ThinkPHP来举例:框架和核心模块文件可以放置在/var/www/www.jjonline.cn目录下,而入口文件放置在/var/www/www.jjonline.cn/wwwRoot下;这样框架和核心模块文件就不会被Url直接访问到。 fastcgi_pass:这个指令配置了fastcgi监听的端口,可以是TCP也可以是unix socket,这里一般推荐走TCP,这个TCP是由php-fpm配置文件决定的,不再详细介绍。 fastcgi_index:这个指令配置了fastcgi的默认索引文件,与server端下index指令类似。…

  • shell find sed 批量修改文件名

    比如替换pic_001 为 001 for file in `find . -type f` do newfile=`echo $file | sed ‘s/pic_//g’` mv $file $newfile done

  • python 如何记住运算优先级

    python 如何记住运算优先级

    PEMDAS 这个简称来辅助记忆,它的意思是“括号(Parentheses)、指数(Exponents)、乘(Multiplication)、除(Division)、加(Addition)、减(Subtraction)“,这也是 Python 里的运算优先级。一个常见的错误是人们以为 PEMDAS 是一个绝对次序,需要依次进行,其实乘除是一级,从左到右,然后加减是一级,从左到右,所以你可以把 PEMDAS 写成 PE (M&D) (A&S)。

  • ubuntu下增加rsync服务并设置为自启动

    Step 1 – Install rsync Install rsync with apt command sudo apt-get -y install rsync Step 2 – Configure rsync daemon Configure rsync config using nano , it will automatically create file if not exist vi /etc/rsyncd.conf [backup] # destination directory path = /home/backup # hosts you allow to access, only allow ip 192.168.1.100 hosts…

  • xargs: unmatched single quote 解决办法

    find . -type f -name \*.txt | xargs sed -i “s/aaa/bbb/g” 改为: find . -type f -name \*.txt -print0|xargs -0 sed -i “s/aaa/bbb/g”

  • 查看文件编码并批量进行转换

    查看文件编码并批量进行转换

    查看文件编码 file -i filename 递归转换(包括子文件夹) find default -type d -exec mkdir -p utf/{} \; find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \; 这两行命令将default目录下的文件由GBK编码转换为UTF-8编码,目录结构不变,转码后的文件保存在utf/default目录下。 注意:如果原来就是utf-8编码,使用iconv -f GBK -t UTF-8命令转换后,会出现乱码,或截断等各种问题; 一定要保证原文件是不是utf-8编码; 使用如下命令把文件编码先查出来: find default -type f -exec file -i {} \; > /tmp/a 查询是否存在已经是utf-8编码的文件: grep “charset=utf-8” /tmp/a iconv有如下选项可用: 输入/输出格式规范: -f, –from-code=名称…

  • 老外常用的缩写到底都什么意思?

    老外常用的缩写到底都什么意思?

    FYIFor Your Information 供参考;FYI, I have a PhD in astronomy!供你参考,我有太空学博士的学位!   ASL Age、Sex、Location. 相亲网站的常见对话,你懂的 SUX sux=suck的第3人称单数形势(例句:that sux=sb);滥,差劲 PPL People, 人。以前总是看到很多朋友说ppl,总感觉对方想让我“评评理”。 LOL “laughing out loud” 红红火火恍恍惚惚(你懂的……) LMAO “laughing my ass off” 笑死宝宝,第一次看见宝宝还以为是致敬毛爷爷呢? ROFL “rolling on the floor laughing” 笑炸裂了 FTW “for the win” 棒棒哒 LOL、LMAO、ROFL、for the win都是表示笑,不过就看你到底是微微一笑还是捧腹大笑了。 YOLO “you only live once” 人生只有一次 FML “f*** my…

  • 如何得到当天人民币汇率中间价

    如何得到当天人民币汇率中间价

    http://www.safe.gov.cn/safe/rmbhlzjj/index.html

  • Mac下PyCharm快捷键大全

    Mac下PyCharm快捷键大全

    Mac键盘符号和修饰键说明 ⌘ Command ⇧ Shift ⌥ Option ⌃ Control ↩︎ Return/Enter ⌫ Delete ⌦ 向前删除键(Fn+Delete) ↑ 上箭头 ↓ 下箭头 ← 左箭头 → 右箭头 ⇞ Page Up(Fn+↑) ⇟ Page Down(Fn+↓) Home Fn + ← End Fn + → ⇥ 右制表符(Tab键) ⇤ 左制表符(Shift+Tab) ⎋ Escape (Esc) Editing(编辑) ⌃Space 基本的代码补全(补全任何类、方法、变量) ⌃⇧Space 智能代码补全(过滤器方法列表和变量的预期类型) ⌘⇧↩ 自动结束代码,行末自动添加分号 ⌘P 显示方法的参数信息 ⌃J, Mid. button click 快速查看文档 ⇧F1 查看外部文档(在某些代码上会触发打开浏览器显示相关文档) ⌘+鼠标放在代码上 显示代码简要信息 ⌘F1 在错误或警告处显示具体描述信息 ⌘N, ⌃↩, ⌃N 生成代码(getter、setter、构造函数、hashCode/equals,toString) ⌃O 覆盖方法(重写父类方法) ⌃I 实现方法(实现接口中的方法) ⌘⌥T 包围代码(使用if..else, try..catch, for, synchronized等包围选中的代码) ⌘/ 注释/取消注释与行注释 ⌘⌥/ 注释/取消注释与块注释 ⌥↑ 连续选中代码块 ⌥↓ 减少当前选中的代码块 ⌃⇧Q 显示上下文信息 ⌥↩ 显示意向动作和快速修复代码 ⌘⌥L 格式化代码 ⌃⌥O 优化import…

  • million和billion的区别

    million和billion的区别

    million 是百万,1,000,000,数学表示10 的6次方 billion 是一千个million,也就是10亿,1,000,000,000,比million多3个零,数学表示10的9次方 英文解释: A million is 106, or 1,000,000. A billion is one thousand million, or 1,000,000,000 (109). This is the common usage in English-speaking countries and is called the short scale. Countries in continental Europe and Latin America use the where a billion is a million millions (1012). The word billion…

  • "此手机号码绑定的账户过多,请更换"怎么办?

    “此手机号码绑定的账户过多,请更换”怎么办?

    嗯。。。。 就是。。。   嗯。。。。         这么简单的问题都不知道,换新的。

  • iphone手机照片导入mac电脑

    iphone手机照片导入mac电脑

    朋友们,自打用了iphone手机,里面的照片真不知道如何导出来,研究了半天,记录下来,大家不会的可以参考。 1、第一步,连接你的手机,过程中需要你在手机界面里点信任同意。到电脑上打开“照片”这个应用,左面可以看到你的手机设备,右面看到你的照片,你可以选择右上角的导入所有新项目: 2、也可以选择部分照片,点击导入15个所选 3、导入完成以后,可以在左面的图库下面的照片看到导入的照片了,可以点击“时刻”,按时间排序: 4、到这一步,只是把照片从你的手机里导入了你mac电脑里的“照片”这个应用程序里,你并不知道实际的电脑上的物理位置,想要导出到你的磁盘里或者你的U盘或者你的移动硬盘,那么就选择你要的照片,点击“文件”—“导出”—“导出7张照片的未修改的原件” 5、此时会弹出一个导出的框,问你需要不需要XMP文件(如果你不是专业人士,这个不用选),文件名称(我们一般使用“使用标题”就可以了,不然会给你重新命名文件名称),照着下面的例子,选择“导出”就好了 6、终于到最后一步了,可以让我们选择保存的位置了(选择你的U盘或磁盘目录),点“导出原件”就可以了。

  • “将iptc导出为xmp”是什么东西?

    “将iptc导出为xmp”是什么东西?

    这个功能会在导出的照片旁边放一个 XMP 文件,这个文件是用于在类似 Photoshop、Lightroom 等专业软件进行编辑时使用的,包含了照片的一些原始信息。 在 Apple 支持社区(英文)有一个类似的提问,其中提问者标记为有帮助的答案表示: IPTC as XMP is a very useful option. It will export a second file in XMP format together with the original image. Keep this file in the same folder as your exported original files. Many image processing applications can read these sidecar files when they are importing…

  • nmap扫描主机网段端口

    nmap扫描主机网段端口

    nmap -p T:135,139,445,3389 -oG – -P0 -sS -iL ip.lst |grep open ip.lst: 1.1.1.0/24 2.2.2.0/24 用root会更快: $ nmap -n -vv -sn 192.168.1.1-255 -oG – | grep -i ‘up’Host: 192.168.1.1 () Status: UpHost: 192.168.1.5 () Status: UpHost: 192.168.1.207 () Status: Up# Nmap done at Tue Aug 11 17:40:08 2020 — 255 IP addresses (3 hosts up) scanned…

  • f5的sni配置(多个证书一个ip地址)

    f5的sni配置(多个证书一个ip地址)

    第一步,在profile配置里点开高级选项   第二步:在当前默认profile里,server name 必须填, 默认for sni 是要打勾的。其他的域名的Default SSL Profile for SNI 是不打勾的。 第三步:在vs的配置里,选择默认的profile 和 新增域名的profile。 今天,f5收购了nginx

  • discuz 修改文本

    discuz 修改文本

    目录:source/language/forum/lang_template.php

  • mongodb 建库建用户

    mongodb 建库建用户

    进入admin库 use admin 创建adminfinance用户 角色:userAdminAnyDatabase (这是一个账号管理员的角色) adminfinance 用户用于管理账号,不能进行关闭数据库等操作,目标数据库是admin db.createUser( { user: “adminfinance”, pwd: “JDhru78E3”, roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ] } ) 使用: use admin db.auth(“adminfinance”, “JDhru78E3”) 在moni库和ds库,建一个相同账号 stock > use ds switched to db ds > db.dropUser(“haha”) true db.createUser({user:”haha”,pwd:”JDhru78E3″,roles:[{role:”dbOwner”,db:”ds”}]}) > use moni switched to db moni > db.dropUser(“haha”) true db.createUser({user:”haha”,pwd:”JDhru78E3″,roles:[{role:”dbOwner”,db:”moni”}]}) mongo…

  • 删除mongodb 的默认test库 db.dropDatabase() 方法

    删除mongodb 的默认test库 db.dropDatabase() 方法

    db.dropDatabase() 方法 MongoDB中的 db.dropDatabase()命令用于删除现有的数据库。 db.dropDatabase() Shell 这将删除当前所选数据库。 如果没有选择任何数据库,那么它将删除默认的’test‘数据库。 示例 首先,使用命令show dbs检查可用数据库的列表。 >show dbs local 0.00025GB newdb 0.0002GB test 0.00012GB > Shell 如果要删除新数据库<newdb>,那么dropDatabase()命令将如下所示: >use newdb switched to db newdb >db.dropDatabase() >{ “dropped” : “newdb”, “ok” : 1 } > Shell 现在检查数据库列表,如下 – >show dbs local 0.00025GB test 0.0002GB >

  • Unity GDC 2019 活动日程发布

    Unity GDC 2019 活动日程发布

    精品Made with Unity游戏,今年在IGF Awards和GDC Choice Awards中获得提名的8个游戏包括:《Forgotten Anne》、《What the Golf?》、《Alto’s Odyssey》、《Return of the Obra Dinn》、《Genital Jousting》、由Grace Bruxner推出的《The Haunted Island, a Frog Detective Game》、《It’s Paper Guy!》和《Sole》。 全球游戏开发者大会GDC 2019即将于美国当地时间3月18-22日在旧金山举行。游戏作为Unity最核心的业务,也是Unity的中心。我们将会为GDC 2019做好全面的准备,专注把最好的技术展现给Unity的开发者与游戏厂商。 我们将罗列出GDC 2019中Unity的活动日程安排,欢迎与会的开发者参与,让你与我们一起迎接GDC 2019的到来。Unity GDC 2019官网: https://unity.com/gdc-2019 Keynote主题演讲 我们将于3月18日17点在846 Mission Street举办Keynote主题演讲。在Keynote主题演讲上,我们将宣布最新的创新技术和Unity 2019新功能,包括:图形、性能、联网游戏等方面。友情提醒:由于场地有限,希望现场参与的与会者,请在Unity GDC 2019官网提前预订座位。如果你无法到达会场,请不必担心,我们将首次在Unity旧金山,贝尔维尤和蒙特利尔办公室举办Keynote主题演讲派对,这些办公室将对公众开放,不必携带GDC入场证就能进入。你可以在此观看Keynote主题演讲,并与其他艺术家,开发者和游戏玩家进行交流。 不仅如此,部分的Unity User Group也会举办当地观看Keynote主题演讲的派对活动,具体城市和Unity User Group名单请查看Unity GDC 2019官网。 GDC上的Unity活动 在GDC 2019上,Unity将拥有其最大的#227展位。在Unity展位上,创作者可以与Unity技术专家和合作伙伴进行交流,并感受沉浸在Unity最新技术中的精彩经验。 开发者交流日 我们将于3月19日10:00-18:30为开发者交流日举行为期一天的深度活动。欢迎参与并学习Unity的全新技术,其中包括:如何使用Project Tiny制作支持DOTS技术的即时游戏等课程。请访问GDC官网了解Unity开发者交流日的更多信息:https://www.gdconf.com/sponsored-content 演讲活动 除了开发者交流日,我们也有许多GDC官方的赞助活动,你可以在这些活动上了解DOTS技术、多人游戏、机器学习和人工智能等热门话题。Mike…

  • gitlab-ci 和 jenkins 的区别

    gitlab-ci 和 jenkins 的区别

    转自:https://blog.csdn.net/xinluke/article/details/53982150 Jenkins Jenkins作为老牌的持续集成框架,在这么多年的发展中,积累很多优秀的plugin工具,对进行持续集成工作带来很大的便利。 gitlab-ci gitlab-ci作为gitlab提供的一个持续集成的套件,完美和gitlab进行集成,gitlab-ci已经集成进gitlab服务器中,在使用的时候只需要安装配置gitlab-runner即可。 gitlab-runner基本上提供了一个可以进行编译的环境,负责从gitlab中拉取代码,根据工程中配置的gitlab-ci.yml,执行相应的命令进行编译。 jenkins VS gitlab-runner gitlab-runner配置简单,很容易与gitlab集成。当新建一个项目的时候,不需要配置webhook回调地址,也不需要同时在jenkins新建这个项目的编译配置,只需在工程中配置gitlab-ci.yml文件,就可以让这个工程可以进行编译。 gitlab-runner没有web页面,但编译的过程直接就在gitlab中可以看到,不需要像jenkins进入web控制台查看编译过程。 gitlab-runner仅仅是提供了一个编译的环境而已,全部的编译都通过shell脚本命令进行。当然,jenkins也可以是全部的编译都通过shell脚本命令进行。 jenkins的好处就是编译服务和代码仓库分离,而且编译配置文件不需要在工程中配置,如果团队有开发、测试、配置管理员、运维、实施等完整的人员配置,那就采用jenkins,这样职责分明。不仅仅如此,jenkins依靠它丰富的插件,可以配置很多gitlab-ci不存在的功能,比如说看编译状况统计等。如果团队是互联网类型,讲究的是敏捷开发,那么开发=devOps,肯定是采用最便捷的开发方式,推荐gitlab-ci。 如果有些敏感的配置文件不方便存放在工程中(例如nexus上传jar的账户和密码或者是其他配置的账户密码),都可以在服务器中配置即可。 gitlab-ci对于编译需要的环境,比如jdk,maven都需要自行配置。在jenkins中,对于编译需要的环境,比如jdk,maven都可以在Web控制台安装即可。当然,jenkins也是可以自行配置的(有时候通过控制台配置下载不下来)。 – 总结 在使用过两者后,个人觉得gitlab-ci更简单易用,如果有gitlab-ci达不到的要求,可以考虑使用jenkins。