修改 Nginx 服务器 WordPress 上传文件大小限制


默认情况下 WordPress 上传文件限制为 2M,如果有上传较大文件的需要,我们需要将上传文件的大小上限调大。

修改 PHP 配置文件

编辑 PHP 配置文件 php.ini ,查找以下字段:

$ sudo vi /etc/php.ini

post_max_size=8M 
upload_max_filesize=2M 

其中,post_max_size 参数表示 POST 数据所允许的最大大小,一般要设置的比upload_max_filesize大;upload_max_filesize 参数表示默认上传文件大小。

继续阅读 “修改 Nginx 服务器 WordPress 上传文件大小限制”

在 CentOS 7 上添加 Swap 交换空间


how-to-add-swap-on-centos-7

Linux 中的 Swap 类似于 Windows 的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

Swap 从某种程度上相当于增加了服务器的可用内存。虽然从 Swap 读写比内存慢,但总比没有好,算是内存不够时的安全网。

本文介绍如何在 CentOS 7 服务器上创建并启用 Swap 文件。 继续阅读 “在 CentOS 7 上添加 Swap 交换空间”

Swift 笔记:闭包


Apple-Swift-logo

闭包是自包含的函数代码块,可以在代码中被传递和使用。闭包可以捕获和存储其所在上下文中任意常量和变量的引用,被称为包裹常量和变量。

闭包采取如下三种形式之一:

  • 全局函数是一个有名字但不会捕获任何值的闭包
  • 嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包
  • 闭包表达式是一个利用轻量级语法所写的可以捕获其上下文中变量或常量值的匿名闭包

继续阅读 “Swift 笔记:闭包”

Swift 笔记:函数


Apple-Swift-logo

函数是一段完成特定任务的独立代码片段。在 Swift 中,每个函数都有一个由函数的参数值类型和返回值类型组成的类型。函数的定义可以写在其他函数定义中,这样可以在嵌套函数范围内实现功能封装。

函数的定义与调用

定义一个函数时,可以定义一个或多个有名字和类型的值,作为函数的输入,称为参数,也可以定义某种类型的值作为函数执行结束时的输出,称为返回类型。要使用一个函数时,用函数名来“调用”这个函数,并传给它匹配的输入值(称作实参),函数的实参必须与函数参数表里参数的顺序一致。

func sayHello(name: String) -> String {
    return "Hello, " + name + "!"
}
print(sayHello(name: "Ryan"))

继续阅读 “Swift 笔记:函数”

Swift 笔记:控制流


Apple-Swift-logo

Swift提供了多种流程控制结构,包括 for-in 循环、while 循环、if 语句、guard 语句、switch 语句、break 语句、continue 语句等。

For-In 循环

for-in 循环可以遍历一个集合中的所有元素:

let names = ["Anna", "Brain", "Jack", "Ryan"]
for name in names {
    print("Hello, \(name)!")
}

for-in 循环也可通过遍历一个字典来访问它的键值对:

let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animalName, legCount) in numberOfLegs {
    print("\(animalName)s have \(legCount) legs")
}

for-in 循环可以使用数字范围:

for index in 1...5 {
    print("\(index) times 5 is \(index*5)")
}

如果不需要区间序列内每一项的值,可以使用下划线(_)替代变量名来忽略这个值。

继续阅读 “Swift 笔记:控制流”

Swift 笔记:集合类型


Apple-Swift-logo

Swift 语言提供数组(Arrays)、集合(Sets)和字典(Dictionaries)三种基本的集合类型来存储数据。数组是有序数据的集,集合是无序无重复数据的集,字典是无序的键值对的集。

CollectionTypes-intro

Arrays、Sets、Dictionaries 中存储的数据值类型必须明确,不能把不正确的数据类型插入其中。如果创建一个集合并分配为变量,那么这个集合将会是可变的;如果分配成变量,那么这个集合就是不可变的,它的大小和内容都不能被改变。 继续阅读 “Swift 笔记:集合类型”

Swift 笔记:字符串与字符


Apple-Swift-logo

字符串(String)是有序的字符(Character)类型的值的集合。Swift 中 String 和 Character 类型提供了快速和兼容 Unicode 的方式供代码使用。

字符串字面量

字符串字面量是由一对双引号包裹着的具有固定顺序的字符集:

let someStr = "Hello, Swift!"
var someStr2:String = "Hello, Swift!"
var someStr3 = String("Hello, Swift!")

多行字符串字面量是由一对三个双引号包裹着的具有固定顺序的文本字符集:

let quotation = """
This is a multiline string.
This is a multiline string, too.
"""

初始化空字符串

要创建一个空字符串作为初始值,可以将空的字符串字面量赋值给变量:

var emptyStr = ""
var anotherEmptyStr = String()

可以使用 isEmpty 属性来检查字符串是否为空:

if emptyStr.isEmpty {
    print("Nothing to see here")
}

继续阅读 “Swift 笔记:字符串与字符”

Swift 笔记:基础运算符


Apple-Swift-logo

Swift 支持大部分标准 C 语言的运算符,且改进许多特性来减少常规编码错误。Swift 中赋值运算(=)不能返回值,以防止与判断相等运算符(==)混淆。

运算符分为一元、二元和三元运算符。一元运算符对单一对象操作,分前置运算符和后置运算符,运算符与操作对象间不能加空格,必须紧密相连;二元运算符操作两个对象,是中置的;Swift 三元运算符只有一个,即三目运算符 a ? b : c

赋值运算符

赋值运算符(a = b),表示用 b 的值来初始化或更新 a 的值。需要注意的是 Swift 的赋值不返回值,不能做如下的判断:

if a = b {
    // 此句错误, 因为 x = y 并不返回任何值
}

算术运算符

Swift 中所有数值类型都支持基本的四则算术运算和求余运算:

  • 加法(+)
  • 减法(-)
  • 乘法(*)
  • 除法(/)
  • 求余(%)

加法运算符也可用于 String 的拼接。

组合赋值运算符

Swift 也提供把其他运算符和赋值运算(=)组合的组合赋值运算符,组合加运算(+=)是其中一个例子: 继续阅读 “Swift 笔记:基础运算符”

Linux 技巧:利用 Alias 简化命令


Alias 是 Linux 中常用的别名命令,利用它我们可以为一些常用的相对复杂的命令创建一个简介的别名,这样在后续使用时会方便很多。

方法很简单,举个简单的例子:为常用的目录路径创建一个别名。

首先,使用 vi 打开 ~/.bashrc

vi  ~/.bashrc

然后添加一行:

alias cdt="cd /www/wordpress/wp-content/themes"

保存并退出,执行 source ~/.bash_profile 使命令生效。后续我们只要使用命令 cdt 就可以进入上面的路径了,就不用再输入完整的路径了!