1.4k1 分钟

nginx log 格式

log_format  access  '$http_x_forwarded_for $remote_addr $remote_user [$time_local]' 
 '"http://$host" "$request" $status $body_bytes_sent "$http_referer"' 
 '"$http_user_agent" "$HTTP_X_UP_CALLING_LINE_ID" "$request_time"';

1. 获得访问前 10 位的 ip 地址

cat access.log|gawk '{print $1}' |sort|uniq -c|sort -nr|head -10

2. 访问次数最多的文件或页面

cat access.log|gawk '{print $11}'|sort|uniq -c|sort -nr

3. 通过子域名访问次数,依据 referer 来计算(稍有不准)

cat access.log|awk '{print $11}'|sed -e ' s/http:\/\///' -e ' s/\/.*//'|sort|uniq -c|sort -rn|head -20

4. 列出传输大小最大的几个文件

cat access.log|awk '($7~/\.php/){print $10 " " $1 " " $4 " " $7}'|sort -nr|head -100

3.8k3 分钟

墙里面的世界还是有点闷的,偶尔还是需要出去透透气的。虽说 vpn 网上也是一搜一大把,但是限制很多,稳定性也不容乐观,不如自己动手,丰衣足食。

Amazon Web Services,强大的亚马逊云服务,首年免费,功能齐全,值得拥有。

3.4k3 分钟

环境:win7 32.(64 位的同理,下载相关软件必须是对应的 64 位版本) # 所需软件 0. 安装 Apache 前必须安装 VC11 vcredist_x86.exe (64 位请下载 vcredist_x64.exe),选择时尽量选择英文版 1.Apache2.4.9(httpd-2.4.9-win32-VC11.zip)http://www.apachelounge.com/download/ (说明:Apache 官方网站没有提供这个版本,在 php 的 win 版 下载中有这个版本的下载地址) 2.php-5.6.30 (php-5.6
3.4k3 分钟

# LAMP 环境搭建

前期准备:Ubuntu 添加 PPA 源,地址

apt-get install python-software-properties -y           //添加
apt-get remove --auto-remove python-software-properties //删除
    
apt-get install -y ppa-purge  //ppa源扩展工具(未测试)
    
add-apt-repository ppa:xxx
apt-get update

1. 安装 Apache2

apt-get install apache2

5k5 分钟

# 简介 Vagrant 是一款基于 Ruby 的工具,主要用于创建和配置轻量级的、可复制的开发环境。 大家使用的桌面系统通常多种多样(如 Mac/Windows/Linux 等),但部署通常采用 Linux(如 Centos/Ubuntu/Debian 的等),不同系统间存在诸多差异,经常会出现 “代码在服务器上跑不起来,但是在我机子上运行的好好的” 这种情况,排查起来也很困难。我们可以通过 Vagrant 封装一个 基于 Linux 的代码运行环境,然后分发给团队成员,成员可以在自己喜欢的桌面系统上进行开发,开发好的程序可以运行在统一的环境中,避免之
2k2 分钟

# PHP 语法参考

# 基本语法

1. 如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记。
2. 自 PHP 5.4 起,短格式的 echo 标记 <?= ?> 总会被识别并且合法,而不管 short_open_tag 的设置是什么。

# 数据类型

1.PHP 支持 8 种原始数据类型 boolean(布尔型) integer(整型) float(浮点型,也称作 double) string(字符串) array(数组) object(对象) resource(资源) NULL(无类型)

#转换为布尔值
var_dump((bool) "");        // bool(false)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
#整型溢出
$large_number = 2147483648;
var_dump($large_number);                 //float (2147483648)  32 位系统
$large_number = 9223372036854775808;
var_dump($large_number);                 //float (9.2233720368548E+18) 64 位系统

通过函数 intval () 来将一个值转换成整型(注意最大范围)。

2k2 分钟

当表中有上千万条数据时,对数据进行分页或者分段处理时,越后的数据用 limit 就越慢,直接 limit 的方法基本可以直接弃用。有如下两种方法可以比较好的解决这个问题: # 方法一数组拆分法: public function process() { $num = 1000000; // 按 100000 对总评论数进行拆分 $count = ceil($num / 100000); for ($i = 0; $i < $count; $i++) { $ids =
1.4k1 分钟

# Memcache

Memcache 模块提供了于 memcached 方便的面向过程及面向对象的接口,memcached 是为了降低动态 web 应用从数据库加载数据而产生的一种常驻进程的缓存产品 --- PHP 手册

Memcache 是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的 hash 表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

memcache 是完全在 PHP 框架内开发的,原生实现的,支持 OO 和非 OO 两套接口。

memcache 的守护进程名字也叫 memcached。

pecl/memcache 2.x 系列的版本最新 stable 版为 2.2.6,pecl/memcache 3.x 版本最新为 3.0.5beta 版。下载地址

6731 分钟

在 PHP 中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP 会将其在内存中销毁,这是 PHP 的 GC 垃圾处理机制,防止内存溢出。 当一个 PHP 线程结束时,当前占用的所有内存空间都会被销毁,当前程序中所有对象同时被销毁。GC 进程一般都跟着每起一个 SESSION 而开始运行的,gc 目的是为了在 session 文件过期以后自动销毁删除这些文件。 class Test{ public function __construct(){ echo __CLASS__. "Constructor is called."."<
11k10 分钟

# 依赖管理

—— 用于依赖管理的包和框架
Composer/Packagist : 一个包和依赖管理器
Composer Installers: 一个多框架 Composer 库安装器
Pickle: 可以在任意平台上安装 PHP 扩展包

# 依赖管理的附加部分

—— 其它依赖管理的相关工具
Satis : 静态的 Composer 库生成器
Composition: 一个运行时检查 Composer 环境的库
Version : 一个在语义上分析和比较的库
NameSpacer : 将下划线转为命名空间的库
Patch Installer: 使用 Composer 安装补丁的库
Composer Checker: 一个验证 Composer 配置的工具

# 框架

——Web 开发框架
Symfony2 : 由独立组件构成的框架
Zend Framework 2: 同样是由独立组件构成的框架
Laravel 4: 简洁优雅的 PHP Web 开发框架
Aura PHP: 独立组件的框架
Yii2 : 用于开发大型 Web 应用的高性能 PHP 框架
Nette: 同样是由独立组件构成的框架
PPI Framework 2: 一个交互性的框架
Phalcon: 一个作为 C 扩展的框架