PHP开启opcache以及一些参数设定

php5.5+ 自带了opcache 编译的时候指定–enable-opcache 然后vi php.ini 允许opcache.enable_cli=1 本来以为这样就可以了 好把 too young 这个参数只是给你编译了一个opache.so 自己还得加载一下这个so文件

重启php-fpm opcache就可以工作了 它会把你的php编译之后的代码缓存 查看phpinfo 你会发现有个cache hits cache misses

有时候我们可能需要不缓存某些文件

opcache.blacklist_filename(默认值:无)
Zend Optimizer + 黑名单文件的位置.
Zend Optimizer + 黑名单是一个文本文件包含了那些不能被加速的文件名.文件格式为每行一个文件名.
文件名须为一个完整的路径或者紧紧一个文件前缀
(如:/var/www/x 屏蔽了 /var/www 文件和目录中所有以 ‘x’ 开始的文件或者目录). 需要屏蔽的文件通常符合下面三个原因中的一个:
1. 目录包含了自动生成的代码, 如 Smarty 或者 ZFW 的缓存.
2. 执行加速时代码无法很好的运行, 从而耽误了编译时评估.
3. 代码触发了一个 Zend Optimizer + 的 Bug

更多详细参数看下面第一个链接
* http://www.onepx.com/update-php-5-5-opcache.html
* http://www.laruence.com/2013/11/11/2928.html

nginx内置变量以及重写的一些设置

nginx的配置文件中可以使用的内置变量和php一样 美元符$开始 有些值可以是可以重写的

$arg_PARAMETER 这个变量值为:GET请求中变量名PARAMETER参数的值。

$args 这个变量等于GET请求中的参数。例如,foo=123&bar=blahblah;这个变量只可以被修改

$binary_remote_addr 二进制码形式的客户端地址。

$body_bytes_sent 传送页面的字节数

继续阅读

nginx fastcgi cache 详解

在web项目中,大家都已经非常熟悉其架构流程了。都说Cache是万金油,哪里不舒服抹哪里。这些流程中,几乎每个环节都会进行cache。从浏览器到webserver,到cgi程序,到DB数据库,会进行浏览器cache,数据cache,SQL查询的cache等等。对于fastcgi这里的cache,很少被使用。今年在一个symfony项目中,大量使用了fastcgi cache,大大降低了服务器负载,这里对一些配置进行记录一下。

在http层中做如下配置

fastcgi_temp_path:生成fastcgi_cache临时文件目录

继续阅读

PHP中的一些坑

此贴记录下coding in php中的一些坑

先来看看switch

乍一看 应该是进入第一个case 其实不然 switch 匹配的是case中表达式的值 不能把case当if用
这里第一行case ($key >= 0 && $key <= 10)
0>=0 && 0<=10 这个条件表达式 的值为 true switch($key) 中传过来的是 0

0和true 匹配 当然匹配不上。 下面几行都是false
第二行 0 和false就搞上了(switch非严格匹配,自动转换类型) 所以当然是第二个case.

svn update XX.svn-base 系统找不到指定的文件

svn服务器架设在linux系统上,svn客户端在windows上,在update的时候可能会出现“Can’t open file.

XXXX/tmp/text-base/XX.svn-base 系统找不到指定的文件”的错误。

这是由于Linux服务器上的目标文件中存在两个相同文件名的文件。因为linux系统的文件名区分大小写,windows系统不区分文件名的大小写,例如readme.txt和ReadMe.txt在linux系统上是两个不同的文件,但是在windows下将是同一个文件,当从linux服务器更新到windows上时,就会出现上述问题。

解决办法:

TortoiseSVN –> Repo-Browser

在弹出的窗口中,选择其中重名的文件之一,右键,delete,Ok .

重新update一下。

symfony1.X 中文教程收录

  • 第一天:开始项目(中文版英文版
  • 第二天:项目(中文版英文版
  • 第三天:数据模型(中文版|英文版)
  • 第四天:控制器和视图(中文版|英文版)
  • 第五天:路由配置(中文版|英文版)
  • 第六天:更多模型知识(中文版|英文版)
  • 第七天:创建分类页(中文版|英文版)
  • 第八天:单元测试(中文版|英文版)
  • 第九天:功能测试(中文版|英文版)
  • 第十天:表单(中文版|英文版)
  • 第十一天:表单测试(中文版)|英文版)
  • 第十二天:管理程序生成器(中文版|英文版)
  • 第十三天:用户(中文版)|英文版)
  • 第十四天:休息一天(中文版|英文版)
  • 第十五天:Feed(中文版|英文版)
  • 第十六天:Web Service(中文版)|英文版)
  • 第十七天:搜索引擎(中文版|英文版)
  • 第十八天:AJAX(中文版|英文版)
  • 第十九天:Internationalization and Localization(中文版|英文版)
  • 第二十天:The Plugins(中文版|英文版)
  • 第二十一天:The Design Day(中文版|英文版)
  • 第二十二天:The Cache(中文版|英文版)
  • 第二十三天:The Deployment(中文版|英文版)
  • 第二十四天:Anther Look at symfony(中文版|英文版)

linux(mac)下的字符串处理

跨*niu平台字符串处理

linux下字符串截取是很常见的需求 这里有一些方法 列如 expr

expr 可以用来操作数字的加减乘除 列如 expr 1 + $a

but expr is a terrible command … 在mac系统上 expr根本不能调用substr命令 而且我们来man expr下 直接翻到最后一页 我们可以看到

According to the POSIX standard, the use of string arguments length, substr, index, or match produces undefined results. In this version of expr, these arguments are treated just as their respective string values.

其实我们完全可以用别的方式来替代expr这糟糕的命令 shell本身自带了语法就可以进行这些操作

列如字符串截取我们可以用很多方法来替代

而数学运算我们也可以用$[1+$a]来处理

so easy….妈妈再也不用担心我跨平台了….

mac lion下安装nginx

os x 虽然也算是unix族 但最近使用下来感觉还是和linux有很大差异性的(useradd)

搭建环境实在是折腾了一番,遂记录下来。

本机环境 os x 10.8.3

Nginx

声明:linux下安装nginx需要pcre pcre-devel zlib zlib-devel openssl openssl-devel  

其实在mac下根本不需要这么麻烦 只要安装一个pcre即可 我在编译zlib的过程中就出了好多问题。

步骤:

brew install pcre

brew install nginx

都可以去官网down下源码编译安装  

启动nginx     ./nginx 

注意:若nginx的监听端口为1024以下,则需要使用sudo nginx ,否则会出现Permission denied.(nginx默认端口为8080 )

PHP

os x 自带php  php -v查看版本

mbp:nginx haidx$ php -v
PHP 5.3.15 with Suhosin-Patch (cli) (built: Aug 28 2012 18:19:13)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

mbp:nginx haidx$ whereis php
/usr/bin/php

在/usr/bin下  版本太低 自我感觉不太良好 升级之

mbp:nginx haidx$ brew serach php
Error: Unknown command: serach
mbp:nginx haidx$ brew search php
No formula found for “php”. Searching open pull requests…

发现找不到php…   感觉不太科学… google之

发现个新玩意叫 brew tap

what is brew tap?看下面-.-

============>>>>

The main new feature in Homebrew-0.9 is brew tap.

brew-tap allows you to import formula from other repositories into your Homebrew instance. For example:

 <<<=============

安装方法:

Tap the homebrew/dupes repository into your brew installation:

Tap the repository into your brew installation:

Note: For a list of available configuration options run:

Then install php53, php54, or any formulae you might need:

That’s it!

 好了

mbp:nginx haidx$ brew install –without-apache –with-fpm –with-mysql php54
==> Installing php54 dependency: freetype
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/freetype-2.4.11.mountain_lion.bottle.tar.gz

curl: (56) Recv failure: Connection reset by peer
Warning: Bottle installation failed: building from source.
==> Downloading http://downloads.sf.net/project/freetype/freetype2/2.4.11/freetype-2.4.11.tar.gz

curl: (56) Recv failure: Connection reset by peer
Error: Download failed: http://downloads.sf.net/project/freetype/freetype2/2.4.11/freetype-2.4.11.tar.gz

感谢ccav…感谢天朝… 感谢GFW… sf是被墙的货….幸好有神器。。

echo “–proxy 127.0.0.1:8087″  >> ~/.curlrc

执行这条命令就可以了  让curl走神器通道~

未完待续。。。

 

https://github.com/josegonzalez/homebrew-php