fz 发布于 06月12, 2018

在有Nginx反向代理的服务器上获取用户真实IP

我的服务器是Nginx+Apache,PHP是在Apache下面跑的,我现在有PHP程序想要得到用户的真实IP地址。我使用$_SERVER['REMOTE_ADDR']来获取用户IP,但由于Nginx反向代理的存在,我获得的IP都是服务器的IP地址。但Nginx有一些功能可以得到真实IP,把Nginx得到的REMOTE_ADDR以X-Real-IP的形式存放在header中。具体来...

阅读全文 »

fz 发布于 06月05, 2018

Bash Shell的一些常用写法

article table td { border: 1px solid #d0d0d0;}每次想写个小脚本总是忘了语法,每次都上网查,但由于有很多垃圾信息,所以很浪费时间。因此我打算把重要的东西都记录下来,这样也比较好查。持续更新。条件语句if [ 条件判断式一 ]; thenelif [ 条件判断式二 ]; thenelsefi例:if [ ! -n "$res" ]; then ec...

阅读全文 »

fz 发布于 05月25, 2018

Code::Blocks 17.12中取消代码格式化功能对单行语句的换行

之前用了16.01之后就没改过,最近装了个17.12,发现source formatter功能在细节上发生了一些变化。我们知道这个功能是借助于astyle实现的,估计是codeblocks对于astyle的默认的命令行参数发生了变化。经过一番查找测试之后,我发现勾选Source Formatter -> Formatting -> Break one-line headers即可解决问...

阅读全文 »

fz 发布于 05月08, 2018

CentOS 7关闭防火墙

CentOS是真的难用,CentOS 7与CentOS 6不一样,CentOS 6使用的是iptables,直接/etc/init.d/iptables stop就可以关闭了,但CentOS 7使用的是firewall,所以:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止fire...

阅读全文 »

fz 发布于 05月05, 2018

开启gzip和http2支持

昨天WXC给博客添加了gzip支持,速度快了不少,我紧跟脚步搞一下。搞起来比较简单,照抄WXC的配置,在nginx配置文件中加上gzip on;gzip_buffers 32 4k;gzip_comp_level 6;gzip_min_length 200;gzip_vary on;gzip_types text/xml text/plain text/css application/javasc...

阅读全文 »

fz 发布于 04月29, 2018

最近点对问题的分治算法的具体实现

最近点对问题是一个经典问题,目标是在n个点中找到距离最近的一对点。做法可以有很多,直接上KD-Tree都是可以的。但最常用的还是分治法。其主要思想很简单,就是把问题分成两个子问题,再进行合并。不过在这之前,我们要先对点按x排序。求解时先把一堆点平均分成两堆点,分别递归求解两堆点的最近点对,记为和,然后取。之后我们把横坐标距离中间点在范围之内的点取出来,找它们之间的最近点对,与取即可。不过这里面有个...

阅读全文 »

fz 发布于 04月26, 2018

借助路由器给不支持设置密码的网络打印机做访问限制

实验室有台HP LaserJet M1536dnf MFP打印机,但是这台打印机似乎不支持设置密码,因此只要它暴露在实验室局域网内,其他人可能会误连到我们的打印机上。因此,我们需要对它做一些限制。通常的做法就是把它放在路由器的内网里,但这样的话所有需要用打印机的机器都必须连接路由器,这显然很烦。但是它又不支持设置密码,怎么办呢?我们可以借助路由器搞一些trick。一个很自然的想法是我们把打印机的端...

阅读全文 »

fz 发布于 04月02, 2018

Linux编译安装aria2与用法

我装的最新版aria2 1.33.1,github页面:https://github.com/aria2/aria2/releases/tag/release-1.33.1。编译安装它需要gcc>=4.9.3。可以参考Linux编译安装gcc。类似地,使用$ENVDIR来指定安装路径。wget https://github.com/aria2/aria2/releases/download/...

阅读全文 »

fz 发布于 04月01, 2018

Linux编译安装gcc

本来以为装一下很容易,随便搞搞就完事了,结果发现如果没有root权限的话还挺麻烦的,因为gcc需要三个库:gmp、mpfr、mpc。而且它们之间有依赖关系,所以安装要按顺序来。这些库要在ftp://gcc.gnu.org/pub/gcc/infrastructure/下载。在此之前使用export ENVDIR=指定一个安装路径,最好加入bashrc。wget ftp://gcc.gnu.org/...

阅读全文 »

fz 发布于 03月31, 2018

Linux编译安装PHP

通过源码进行编译安装很简单,不过选择编译设置是一个很头疼的问题。由于我对XAMPP非常熟悉,因此这里我对XAMPP编译出的PHP,使用phpinfo得到它的编译设置,这样不容易踩坑。我得到的编译设置如下:./configure --prefix=安装路径 --with-config-file-path=configure文件的存放路径 --with-apxs2 --with-mysql=mysql...

阅读全文 »