PHP 缓存优化

OPcache 是 PHP 中的 Zend 扩展,可以大大提升 PHP 的性能。 OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。 原理 Opcode 是一种 PHP 文件被 Zend 引擎编译后的中间语言,就像 Java 的 ByteCode,或 .NET 的 MSL,Zend 引擎在执行代码时会经过如下 4 个步骤: Scanning,re2c 进行词法分析和语法分析,将 PHP 代码转换为语言片段(Tokens) Parsing,将 Tokens 转换成简单而有意义的表达式 Compilation,将表达式编译成 Opcodes Execution,顺次执行 Opcodes,每次一条,从而实现 PHP 脚本的功能 如果你在 php.ini 中开启了 Opcache,那么每次请求来临时,Zend 引擎就不需要重复执行前面 3 步,从而大幅提升运行的性能 配置 opcache.enable 启用操作码缓存,默认为 1 开启 opcache.memory_consumption OPcache 的共享内存大小,以兆字节为单位。默认 64,可适当调大。 opcache.interned_strings_buffer 用来存储预留字符串的内存大小,以兆字节为单位。默认值为 8,建议根据服务器内存大小,设置一个大于 64 的值即可 通过字符串驻留(string interning)的技术来改善性能。例如,如果你在代码中使用了 1000 次字符串 foobar,Zend 引擎在第一次使用这个字符串时会分配一个不可变的内存区域来存储这个字符串,之后的 999 次都会直接引用这个内存区域,而不需要重复创建。...

一月 23, 2017

Lumen

增加 Cookie 安装 composer require illuminate/cookie 配置 $app->singleton('cookie', function () use ($app) { return $app->loadComponent('session', 'Illuminate\Cookie\CookieServiceProvider', 'cookie'); }); $app->bind('Illuminate\Contracts\Cookie\QueueingFactory', 'cookie');

七月 1, 2016

PHP-FPM 编译

适用于 CentOS、Debain 与 Ubuntu 系统进行编译安装与部署 在 CentOS 下执行安装 yum install -y libacl libacl-devel libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel enchant enchant-devel gd gd-devel gmp gmp-devel libmcrypt libmcrypt-devel libtidy libtidy-devel libxslt libxslt-devel argon2 libargon2-devel libtidy libtidy-devel gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel 如果是 Debain 或 Ubuntu 下执行安装 apt-get install libacl1 libacl1-dev libxml2 libxml2-dev libbz2-dev libcurl3 libcurl3-dev enchant libenchant-dev libjpeg-dev libpng-dev libxpm-dev libfreetype6-dev libgmp-dev libgmp3-dev libmcrypt-dev libtidy-dev libxslt-dev libssl-dev libargon2-0 libargon2-0-dev build-essential libpcre3 libpcre3-dev autoconf zlib1g-dev 使用 Debian x86 版本出现 `GMP` 错误,则需要手动建立软链接 ln -s /usr/include/x86_64-linux-gnu/gmp....

六月 13, 2016