Debian8 安装 kernel4.9 启用 BBR

vps 升级 kernel4.9 主要是为了开启 BBR 添加 backports 源 $ echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list 安装 kernel, 这个过程比较久 $ apt update && apt -t jessie-backports install linux-image-4.9 删除旧内核, 大概节省160m空间 (可选) $ dpkg -l | grep linux-image $ apt-get purge 旧内核 更新引导, 重启 $ update-grub $ reboot 检查内核版本 uname -r 启用 bbr $ modprobe tcp_bbr $ echo "tcp_bbr" >> /etc/modules-load.d/modules.conf $ echo "net.core.default_qdisc=fq" >> /etc/sysctl.
Read more...

Apache 开启 Rewrite 模块

开启Rewrite模块 修改Apache主配置文件 去掉LoadModule rewrite_module modules/mod_rewrite.so 前的# 修改<Directory>配置段为Options Indexes FollowSymLinks 如果想要使用.htaccess文件,将网站目录配置段的AllowOverride改成All .htaccess文件 .htaccess⽂件(或者”分布式配置⽂件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。 RewriteEngine 打开或关闭运行时刻的重写引擎 RewriteEngine 为重写引擎定义规则 RewriteRule RewriteCond指令定义了一个规则的调价,在一个RewriteRule指令之前有一个或多个RewriteCond指令 RewriteCond RewriteCond参数 '-d' 是一个目录[Directory] '-f' 是一个常规的文件[File] 通过rewrite实现404定义 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .? /404.php [L] RewriteRule 参数 强制当前URL为被禁止的,即,立刻反馈一个HTTP响应代码403(被禁止的) 'forbiddenF' (强制URL为被禁止的forbidden) 它使Pattern忽略大小写,即在Pattern与当前URl匹配时,‘A-Z’和’a-z’没有区别 'nocaseNC' (忽略大小写 no case) 立即停止重写操作,并不再应用其他重写规则.这个标记可以阻止当前已被重写的URl被其后续的规则所重写 'lastL' (最后一个URL规则的重写 last) 伪静态操作 RewriteEngine On RewriteRule ^/?news_(\d+).html news.php?nid=$1 [NC,L] 防止图片盗链 如果不是从本网站请求图片,替换成logo.
Read more...

Apt-get 强制使用 IPv4

CentOS自带了Vi编辑器 Vim是Vi的高级版本,增加了诸如代码高了等功能 Vim需要单独安装 yum install -y vim Vim的三种模式 命令模式 读取,查找,保存文件等操作 编辑模式 对内容进行编辑复制等操作 一般模式 移动光标,复制删除等操作 Vim的使用 打开文件 vim index.php 输入内容 i 返回标准模式 Esc 保存退出 :wq Vim常用快捷键 按键 说明 i, I i当前光标插入,I行首插入 a, A a下一个字符插入,A行尾插入 o, O o下一行插入,O上一行插入 Esc Esc返回标准模式 —– :w 保存 :w!
Read more...

Apt-get 强制使用 IPv4

vps 上运行apt update使用了ipv6的地址, 导致连接速度非常慢.
使用apt -o Acquire::ForceIPv4=true参数可以强制使用ipv4地址. 添加到配置文件中

$ echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

在 Ubuntu Saucy & Debian Jessie 之后的版本有效.

Read more...

Fedora23搭建PHP开发环境

添加163镜像源。 $ cd /etc/yum.repos.d $ wget http://mirrors.163.com/.help/fedora-163.repo $ wget http://mirrors.163.com/.help/fedora-updates-163.repo 配置dnf自动选择最快的镜像源 $ vim /etc/dnf.conf # 在文件末尾添加一行 fastestmirror=true # wq保存退出 生成缓存 $ dnf clean all $ dnf makecache 检查更新 && 升级更新 $ dnf check-update $ dnf upgrade 添加RPM-Fusion源 $ su -c 'dnf install http://download1.rpmfusion.org/free/fedora/rpmfusion-$ free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm' $ su -c 'dnf update' 添加Remi源 wget http://rpms.remirepo.net/fedora/remi-release-23.rpm su -c 'dnf install remi-release-23.rpm' dnf repolist all 安装Nginx Mainline version $ vi /etc/yum.
Read more...

Memcached 介绍

##MemCache介绍 - Memcache是一个高性能的分布式的内存对象缓存系统.通过将数据调用到内存中,然后从内存中读取,从而大大提高读取速度 - 以守护进程方式运行于一个或者多个服务器中,随时会接收客户端的连接和操作 - 主要用于关系型数据库的缓存,也可以用于SESSION储存处理 - 将数据储存到内存中,比关系型数据要快得多,因为内存的访问速度快于硬盘数百倍 - 同时也因为是将数据存储到内存中,所以当服务器重启的时候数据会全部丢失 MemCache安装与启动 安装 # yum -y install memcached.i686 启动 memcached -m 128m -p 11211 -d -u root -P /tmp/memcached.pid -c 256 启动参数 -p tcp端口号 默认11211 -m 最大内存大小,默认64m -d 作为守护进程在后台运行 -c 最大并发连接数 -P 保存Memcache的pid文件 -l 监听服务器地址 -u 如果以root用户启动MemCache必须加此选项 通过netstat -anpl | grep 11211查看是否启动成功 kill -9 'cat /tmp/memcached.pid' 开启PHP中的MemCache支持 安装PHP的MemCache扩展 yum install -y php-pecl-memcache 在PHP中操作MemCache缓存 <?
Read more...

MysQL 权限系统

MySQL权限系统 当你连接MySql服务器时,你的身份有你从哪儿连接的主机和你指定的用户名来决定 服务器在mysql数据库的授权表中保存权限信息(即在mysql数据库中),当mysql服务器启动时讲这些表的内容读入内存 如果更改了权限,必须刷新授权表或重启mysql服务器才会生效 初始安全设置 mysql安全设置脚本 mysql_secure_installation 查看账号信息 select host,user,password from mysql.user 说明: 对user表进行操作,需要重启mysql服务器或执行flush privileges重新将授权表读入内存 ##设置密码 * 设置密码 update mysql.user set password=password('admin888') where user='root' * 重启读取授权表 flush privileges 忘记ROOT密码 修改mysql配置文件vim /etc/my.cnf 在[mysqld]的段中加上skip-grant-tables service mysqld restart update mysql.user set password=password('admin888') where user='root'; 删除my.cnf中skip-grant-tables这一行 service mysqld restart 添加账号与设置密码 添加账号拥有所有权限 grant all on *.* to 'testuser'@'localhost' identified by 'admin888'; all 所有权限 on *.* 所有库中的所有表 'testuer'@'localhost' 通过localhost登录的testuser用户 identified by 设置密码 添加用户后执行 flush privileges; #重新加载授权表 ##删除用户账户 * 删除匿名用户 delete from mysql.
Read more...

PHP深入面向对象模式与实践读书笔记(第3章 对象基础)

第3章 对象基础


  • 类和对象:声明类及实例化对象
  • 构造方法:自动加载对象
  • 基本数据类型和类的类型:为什么类型很重要
  • 继承(inheritance):为什么需要继承以及如何是使用继承
  • 可见性(visibility):整合对象接口并保护类中的方法和属性不受干涉

3.1类和对象

3.1.1 类是用于生成对象的模板

class ShopProduct {
    //类体
}

3.1.2 第一个对象(或两个)

对象是根据类中定义的模板锁构造的数据,被称作类的“实例”,它是由类定义的数据类型。

$product1 = new ShopProduct();
$product2 = new ShopProduct();

$product1$product2是有同一个类生成的相同类型的不同对象。每个对象具有唯一的身份(或标识符,identifier)。

var_dump($product1);
var_dump($product2);

得到的输出如下:

object (ShopProduct) #1 (0) {
}

object (ShopProduct) #2 (0) {
}

3.2 设置类中的属性

类可以定义被称为属性的特定变量。

Read more...

Samba 共享服务

###Samba服务器可以让Windows操作系统( Windows 2000/XP/2003等)用户访问局域网中Linux主机,就象访问网上邻居那样简便。 1. 安装samba服务 yum install -y samba 2. 启动samba服务 service smb start 3. 创建共享目录 mkdir /share 4. 修改配置文件 vim /etc/samba/smb.conf # Un-comment the following and create the netlogon directory for Domain Logons [symo] #共享名称 comment = Network Logon Service #共享描述 path = /share` #共享文件夹路径 guest ok = yes #是否允许游客访问 writable = no #是否允许修改 修改后可以测试配置文件 testparm /etc/samba/smb.conf 5. 启动samba服务,此时共享文件夹就可以被访问到了 service smb start 需要验证的samba设置 1. 添加组用作共享权限设置 groupadd share
Read more...

Sublime Text3 下载与使用

一个很好用的文本编辑器,拥有跨平台的版本(Linux、MacOS、Windows)、强大的可扩展性(PackageControl)是图形界面(GUI)下极其优秀的文本编辑器,与命令行环境(CLI)下的VIM互相补充可以满足绝大多数的文本编辑需要。 下载地址: sublime text 3 官方文档站: Sublime Text 3 Documentation 非官方文档站(搜索功能很强大): Sublime Text Unofficial Documentation 插件包管理网站: PackageControl 安装时可以勾选 >add to explorer context mune 添加一个右键菜单选项以方便的打开各种需要使用sublime编辑的文件. ###一、插件: Sublime text 3 的一大优点就是插件资源极其丰富。 直接安装 安装Sublime text 3插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages)。 使用PackageControl安装 也可以使用sublime的组件管理器直接搜索安装(推荐)。 >* 按Ctrl+`调出Console; * 粘贴以下代码到底部命令行并回车: * (sublime text2与sublime text3的安装方法并不一样,此处仅用于sublime text3) import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.
Read more...