作为一个爱折腾的人,以后台式机千万不能再买

5月初刚回到国内,比较着急,也懒得自己去泡论坛调整搭配了。。随便在网上看了Dell的商务机,就跑去当地的电脑城去买了个Dell Optiplex 9020MT,花了小一万块钱,因为把内存升级到了32G,加了一个西数2TB的黑盘。。。在家加两个Dell 的U2414H

最近发现机箱突然之间发出巨大的声响.

虽然我对于硬件基础白痴。。。但是我还是打开了机箱。。。刚开始认为是机箱风扇的问题。。拔下来清晰干净后插上。。还是不行。。这个时候才把问题定位到电源风扇上面。。。

幸亏qq里面有各种硬件大神的帮助。。。nnd。。。dell 的商务机 optiplex 9020MT 的电源和主板都是dell 特殊定制的。。只有4针插CPU 和 8针插主板。。。而市面上卖的电源,基本都是24针插主板的。。也就是说,电源坏了只能去dell 售后才可以。。。

两个解决方案,一个是淘宝买个dell工厂流出来的电源,另外一个是自己把电源上的风扇给换掉。。。

现去淘宝买也来不及了。。。没有办法,就直接上手吧。。。给电源风扇清洗以后还是比较简单的。。

清洗完以后把机器在组装好了。。开机一看。。风扇也不响了。。。

 

 

回首2015,展望2016

2015 年还有一个多小时就要过去了.

2015 年,对我来说,是人生的一个巨大的转折,也是一个巨大的惊喜。

首先在四月底的时候决定了离开加拿大回到国内创业。回国了就是爽啊,干什么都是很方便,除了人与人之间的交际以及各种政府官僚主义和自大主义者让我有点不是很适应,自己也在不断的激励自己,活在哪个国家就要适应哪个国家的活法。按照中国古人的话来说,就是上得厅堂,下得厨房。

其次就是在9月20号,我结婚啦~ 2009 ~ 2015, 几年的跨国爱情,在任何人的眼里都是不可能的事情,在我们两个人的身上确发生了,就是这份爱情也值得我回来,让我继续努力呵护这份来之不易的爱情吧。

再次,就是学会了脸皮要厚,尤其实在国内各种流氓公司不要脸的情况下。在这里有点怀念加拿大的公司了。。。也许这就是国内的公司文化吧,要学会努力去适应并且学会反击。。。

2015年,说短也不短,说长也不长,自己的身上仍然提现着各种不足。养气的功夫仍然欠缺,需要在2016年好好的学习一下。

Cheers!

superbock

Nginx 配置参数中文说明

这是在一篇博客上看到的,写的很不错,转过来作为reference

更详细的内容可以参考这篇文献: http://nginx.org/en/docs/

#定义Nginx运行的用户和用户组
user www www;

#nginx进程数,建议设置为等于CPU总核心数。
worker_processes 8;

#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;

#进程文件
pid /var/run/nginx.pid;

#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;

更多

Linux的chattr与lsattr命令详解

有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。

+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

应用举例:

1、用chattr命令防止系统中某个关键文件被修改:
# chattr +i /etc/resolv.conf

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf

# lsattr /etc/resolv.conf
会显示如下属性
----i-------- /etc/resolv.conf

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
# chattr +a /var/log/messages

Nginx 301 转向 Redirect non-www to www

现在我也随着大流。。很少使用cpanel了。。。开始投入nginx 的怀抱了。。

那么以后常见的问题就是,如何做301转向,把non-www转向到www, 或者把www转向到non-www.

刚才仔细的看了一下目前网上的做法,大部分都是被nginx 官方不推荐的。。。

在这里做个记录,以后方便我查找

Redirect non-www to www:

server {
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}

 

Redirect www to non-www:

server {
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}

关于php 的require, include, require_once, include_once深入理解

以前上学的时候主要是c++, 现在全职做网络开发了,又要努力的开始复习php了。。其实基本都差不多。。但是就是这些不一样的地方让我很是头痛。。

php 中的require, include, require_once, include_once, 一个简单的区别:include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码,require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。

但是这些远远的不够.

1.对include()来说,在include()执行时文件每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换了require()语句)。这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。另一方面,如果每次执行代码时相读取不同的文件,或者有通过一组文件叠代的循环,就使用include(),因为可以给想要包括的文件名设置一个变量,当参数为include()时使用这个变量。

2.在PHP变成中,include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:
if($something){
include(“somefile”);
}
但不管$something取何值,下面的代码将把文件somefile包含进文件里:
if($something){
require(“somefile”);
}
下面的这个有趣的例子充分说明了这两个函数之间的不同。
$i = 1;
while ($i < 3) {
require(“somefile.$i”);
$i++;
}
在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中我们可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():
$i = 1;
while ($i < 3) {
include(“somefile.$i”);
$i++;
}

3.

require 的使用方法如 require(“./inc.php”); 。通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。

include 使用方法如 include(“./inc.php”); 。一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。

require即使在条件位FALSE的时候也会被包含,而include只会在执行到改位置时候才会去执行。

require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。require_once()函数的作用和 require() 是几乎相同的

include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。include_once()函数的作用和 include() 是几乎相同的

require_once的作用是会检查之前是否加载过该文件,如果没有加载则加载 如果加载过就不再次加载,比如某文件定义了一个类型 如果两次加载该文件会出现错误

总结: 关于include 和 require 更加深入的用法,可以参见Laruence 大神的这篇文章: http://www.laruence.com/2010/05/04/1450.html

 

书桌终于搞定了。。

今年一直准备在家里办公。。当时着急就随便从宜家买了一个转角书桌,但是没有想到实在太小了。。

放下两个显示屏,书桌上就没有地方放东西了。。

书桌这东西也看了好久了,在天猫上,今天终于下定决心去买以前一直在犹豫的柏源乐芙的书桌,犹豫是因为他们家的产品要比其他家贵不少。。但是今天下定决心的原因是只有他家敢于真正的承认自己的产品是使用的E1 板材。。

感兴趣的同学可以去这里买:https://detail.tmall.com/item.htm?id=42960069654&spm=a1z09.2.0.0.etM6Nx&_u=i1kntjk7882

上张图吧

柏源乐芙