IIS和Serv-U端口冲突造成网站无法访问

今天收到报警公司的网站突然无法访问了,我用电脑访问了下没问题(当时可能是缓存原因)。看到报警信息上面也只有一个监控节点报警,就没管了。后来收到同事反馈后台进不去了,悲剧了果然进不去,提示一个很奇怪的错误:

serv-u报错

访问静态页面也报错:

用IE访问看到的是一个登录验证页面。

我明明访问的是web服务怎么会到ftp了呢?

远程登录到服务器发现iis已经跪掉了,重启一下,又报错了:

iis端口冲突报错

因为没怎么用过iis,就在群里问了下,得到的回复就是端口冲突。

难道80端口被serv-u占用了?不应该呀,ftp用的是21端口,怎么会冲突呢?打开监听器一看,这尼玛,真的占用了80端口,去掉监听,重启iis,网站立马就能访问了。

80端口被占用

前人挖坑,后人填坑。当我接手这个服务器时看见右下角360安全卫士、360杀毒的时候我就已经有了觉悟。

梳理一下整个过程:一开始不知道什么原因iis跪掉了,然后serv-u争夺到了80端口的使用权,我再重启iis的时候就会提示文件被占用,关掉serv-u的80端口监听器(让出端口),再重启iis就恢复正常了。

php中GET/POST方法+号等特殊字符处理

自己在项目开发中写了个自用接口,用GET方法传参(用户名和密码)。最近收到用户反馈:密码为特殊字符时会出错。我一开始想是不是php的mysql_real_escape_string函数将特殊字符转义了,但用户说自己密码只有“+”号这个特殊字符,而“+”号不属于该函数转义的范围之内。

为了弄明白这个问题我就在本地测试了一下,果然发现有bug。

测试代码:

测试的url为http://localhost/test/?a=123!@#&b=123结果报错了:

#号后面的参数被屏蔽了

可以看出“#”号后面的参数被屏蔽了,这很正常,因为“#”号后面的数据不会发送到HTTP请求中。 Continue Reading...

php中require和include的区别之我见

require和include在各种编程语言中基本都存在,都是用来引入外部文件,但两者却不易区分。

其实从两个语句的字面意思很容易区别开来。

require有“需求”的含义,意思就是说用require引入的文件是必须要引入的,如果找不到这个文件会报一个错误,不能继续执行后面的语句。

include有“包括”的含义,意思就是用include引入的文件只是简单包括,如果找不到这个文件只会产生一个警告信息,还是会继续执行后面的语句。

基于这点区别,两者的应用场景就很清楚了。如果你引入的文件是必须的则建议用require。使用include的话,若此文件不存在,虽然后面的语句会继续执行但因为缺少必要组件还是会报错,而且可能会出现一些莫名其妙、不可预料的错误。

关于require和include的却别我认为搞清楚这一点就可以了,其它的一些细微差别没必要去彻底弄清楚。把精力过多的放在这些地方有点本末倒置。

还有一个就是require/include和(require/include)_once间的区别,加不加"_once"唯一的区别就是如果该文件中已经被包含过,则不会再次包含。如同此语句名字(_once)暗示的那样,只会包含一次。如果包含两次,PHP 5 会发出致命错误因为函数已经被定义,但是 PHP 4 不会对在 return 之后定义的函数报错。

那是不是就推荐使用(require/include)_once呢?其实不然,检查一个文件是否已经被包含是需要一个过程的,会消耗系统资源,使用require/include效率更高。还有一个原因,使用(require/include)_once说明你对自己的代码不熟,没信心。而当一个项目需要大量使用(require/include)_once来保证不出错的话,说明这个项目的代码已经非常脆弱了,可能其它一点小错误就会造成整个系统的崩溃。

参考资料:风雪之隅《再一次, 不要使用(include/require)_once》

使用七牛云存储加速你的博客

CDN的全称是Content Delivery Network,即内容分发网络。对于它的好处我想大家都知道,但一直以来都只有大公司才用得起。但如今已经有了一些面对中小企业的CDN服务,甚至是免费的。如百度旗下的加速乐(https://su.baidu.com/),安全宝(http://www.anquanbao.com/),而且安全宝还和DNSPod进行了无缝对接,很有吸引力。还有阿里云(https://www.aliyun.com/)开放存储服务 OSS、内容分发网络 CDN。这些都不错,对于个人站长来说质量和价格都能接受。但这些都有一些限制,有些需要备案,有些对个人开发者不是十分友好。

其实对于个人站点来说,只要能加速网站上的静态文件,比如图片、js文件、css文件,网站的访问速度就会大大的提升。像我的网站空间租用的是香港的服务器,ping值基本在45左右,南北互联延迟不是问题,瓶颈在于网页的加载速度(香港的空间一直都是小水管,带宽小)。基于这个需求,七牛云存储(https://www.qiniu.com/)是个不错的选择。每个月有免费的配额,操作又比较简单。它的直接竞争对手又拍云(https://www.upyun.com/)也是个不错的选择。两者都是提供云存储、云处理、云分发的服务。由于七牛云存储后台操作简捷、直接,每个月又有免费的配额,所以个人推荐使用七牛云存储。

说了那么多现在直接进入主题,仅需三部轻松提升博客访问速度。

第一步:注册七牛云

第二步:七牛云后台设置

首先需要建立一个Bucket(空间)。使用镜像加速需要设置为公开空间。

创建一个公开空间

然后空间需要绑定一个七牛云提供的二级域名(可自由设置),如果你的域名已经备案可以使用自己的域名,不过需要一段时间审核才能生效。

绑定域名

最后开启镜像存储功能。

开启镜像加速

这里有几点需要注意: Continue Reading...

外网免费下载学校图书馆各类论文资源(非原创)

更新

最新的教程请参考资讯民大的推文【小贴士】置身校外如何安全访问校内资源。同时推荐学弟、学妹们关注资讯民大,了解更多校园资讯以及各种实用功能(查成绩、课表等)。

---分割线---

寒假期间想写论文?该怎么样通过校外网来免费下载学校图书馆的各类资源呢?下面为大家简单的介绍下,学校的系统改进了,现在通过外网(非校园网)同样可以免费下载图书馆的全部资源了。主要使用vpn校外访问系统。

第一步:

使用IE浏览器打开 https://vpn.scuec.edu.cn/ 进入中南民族大学vpn系统。提示访问时可能会看到如下提示,点击“继续浏览此网站”即可,至于为什么会有这个警告请参考https://www.williamlong.info/archives/3461.html

证书警告

第二步登录:

进去后的界面:

vpn登陆界面

右边的其它登陆方式想研究的同学可以看一下,我们直接在左边输入用户名和密码登陆(用户名、密码同教务系统/学生门户的用户名、密码)。 Continue Reading...

win8安装校园网客户端(Edu Supplicant)

是前言的后记(2015-10):下面说的教程Windows 8.1同样适用,Windows 10也可以类似的方法解决。不过这些都已经成为历史了,现在学校早已经是VPN拨号(自带全平台兼容属性)了,插上网线就能自动获得ip,然后使用学号和密码拨号就行。使用路由器就更简单了,现在的“智能”路由器基本都支持VPN拨号,而且和网络中心的老师聊过,学校也没有明面上禁止,因为学校根本就不靠这点网费赚钱(学校钱多就是任性,现在都支持免费申请虚拟机了)。不过风险也有,若是别人用你网做一些“和谐”的事情,因为拨号的学号是你的,到时候“查水表第一个找的就是你(校园网一抓一个准,学校这么好的条件,还是多做点更有意义的事情吧)。

最近有人找我重装系统(好男人,重装系统从不收费),问其原因,她说是win8无法安装校园网客户端。自己装了用不了,网络中心也贴出告示说校园网客户端不兼容win8。她拿到售后去装系统却被告知要收费300(售后真是黑啊,我要是收费30早就发家致富了)。本着不到黄河心不死的精神我决定尝试一下在win8上安装校园网的客户端。在失败N次后得出了正确的安装方法:

在桌面下,右键点击右下角网络图标,打开网络和共享中心。

打开网络和共享中心

点击左侧的更改适配器设置,在弹出的窗口中右键打开以太网(若是外接网卡可能不叫以太网)的属性。

以太网属性

更改ipv4属性。按照学校分配的ip地址进行设置(备用DNS服务器地址填写谷歌的DNS服务地址8.8.8.8能有效解决校园网有时无法打开微博等网页的情况)。

ip地址设置

修改保存后,就会弹出网络中心的一个上网须知,下载64位的操作系统。如未弹出下载页面请自行下载,下载地址:http://172.16.0.2/ATclient64.exe (校园网)备用下载地址:https://yun.baidu.com/share/link?shareid=2067345420&uk=3374112987

上网须知

然后需要重启到【禁用驱动程序强制签名】模式下安装校园网客户端。

按win+i键,选择更改电脑设置。

更改电脑设置

点击左侧的常规面板,在右侧最下部选择【立即重启】。 Continue Reading...

一个典型的汇编程序

在进入大学之前知道计科院的会学一些编程语言,诸如C语言、C++之类。没想到到了大二居然学了一门叫汇编语言的课程。越学越发现汇编语言真是操蛋,什么寄存器呀,存储器呀乱七八糟的一大堆,搞个基本的a+b都那么麻烦。完全没有C语言那么好用。

然而存在即合理,汇编语言存在至今自然有它的用处。汇编语言最大的特点是直接和底层的硬件相关,能针对不同的硬件编程,且执行效率高。用于无法使用高级语言进行编程的地方,如电饭锅的温控程序。汇编语言还能写操作系统的内核,反汇编别人的程序。当然还有考试要用。

考试过后闲来无事写了个简单的、典型的汇编程序。其中包括基本指令、分支和循环、数组、过程(使用堆栈传递参数)、宏等。包括了大部分的知识点和考点。程序是用来求5个数中最大的数。 Continue Reading...

解决gem install无反应

有时候使用 ruby 时 gem install 后半天无反应,这是什么原因呢?其实是由于国内的防火墙阻断了和 ruby 服务器的链接,ruby 的资源文件存放在 Amazon 的服务器上,好像好多国外的云空间都存放在 Amazon 的服务器上,在中国都不能正常访问。

难道我们要挂上代理翻墙吗?其实不用那么麻烦(还有生产环境也无法方便配置代理),Ruby China 提供了一个国内的 RubyGems 镜像。而且是完全基于 CDN 技术来实现,能确保几乎无延迟的同步。参考:https://gems.ruby-china.com/

说到这里应该就明白了,将默认的下载源改成 Ruby China 提供的镜像就可以了。操作步骤:

再执行gem install xxx是否发现连接稳定多了,下载速度明显加快了呢?

windows上安装ruby

其实我不是为了学习ruby而去安装ruby,而是用到有些东西的时候它要使用到ruby的文件组织包gem。就是万恶的gem install。

首先就是要安装ruby,这没什么好说的下载安装就ok了,只是安装的过程中记住选择将ruby添加到系统环境变量中就ok了。下载地址https://rubyinstaller.org/downloads/

现在貌似就安装完了,但其实才刚刚开始而已。

安装后你会发现有时gem install某个程序是还是会报错:“Please update your PATH to include build tools or download the DevKit……”这其实是没有安装DEVELOPMENT KIT的缘故。(参考:https://stackoverflow.com/questions/10694997/gem-install-json-v-1-7-3-gives-please-update-your-path-to-include-build-tools ) 在下载安装ruby的那个网站上下载DEVELOPMENT KIT包,解压,然后cd到解压的目录。依次执行:

提示完成了就OK了。

至此ruby算是安装完成了,然后就可以gem install rails下载rails或者其它需要的程序了。

如何将代码插入到word中

在一般的时候word和代码没什么关系,word也不可以用来编辑代码(貌似也没哪个人用word写代码)。但在有的时候需要在word中插入代码。比如说你写实验报告的时候,老师要求将代码插入进去。一般也就是直接复制进去就好了,然而作为一个完美主义者是不能忍受这种粗暴的方式的。

那样怎么保证代码的高亮和缩进风格呢?就要用到一个神奇notepad++。 Continue Reading...

本 Blog 不支持评论,如有疑问或建议请联系我,以完善内容,期望帮助到更多的同学