php优化,操作码优化,缓存优化

by admin on 2018年12月15日

MVC 简介

1、MVC 是同种架构情势
程序分层,分工合作,既互相独立,又协同工作,分为三重合:模型层、视图层和控制层

2、MVC 是同等种思维模式
View:视图层,为用户提供UI,重点关注数据的见,为用户提供界面
Model:模型层,业务数据的音信表示,关注帮助业务的音讯做,经常是基本上只工作实体的重组
Controller:控制层,调用业务逻辑来合适的数额(Model),传递数据给视图用于呈现

MVC 设计模式在 B/S 下的运:
图片 1

①:浏览器发送请求到控制器(这里而清楚控制器的用意)
②:控制器不克处理要必须付出模型层来拍卖就去做客数据库
③:模型层将拍卖好之结果回到给控制层
④:控制层将逻辑视图响应给浏览器(浏览器彰显的凡渲染了之视图)

MVC 本质:MVC
的大旨思想是事情数据抽取同业务数据显现相分离;分离有利于程序简化,方便编程

无异于、php缓存加速器软件类

前者控制器格局

前者控制器格局(Front Controller
Pattern)是故来提供一个会聚的要处理机制,所有的请皆以由一个十足的处理程序处理。该处理先后可以做验证/授权/记录日志,或者跟请求,然后将要传给相应的处理程序。

  • 前端控制器(Front Controller)-
    处理应用程序所有品类请求的单个处理程序,应用程序可以是基于 web
    的应用程序,也得以是因桌面的应用程序。
  • 调度器(Dispatcher) –
    前端控制器可能行使一个调度器对象来调度请求到对应的有血有肉处理程序。
  • 视图(View) – 视图是也请而创设的靶子。

前者控制器的显要意图:

  • 指前端控制器将我们的伸手分发给大家的控制器去特别成业务数据
  • 将扭转的政工数据分发给方便的视图模版来转最后之视图界面

图片 2

xcache,eaccelerator,zend,apc
何以抉择:
建议xcache,eaccelerator,二选一,首选xcache
xcache更快

SpringMVC 基本概念

图片 3

本着组件表达:
1、DispatherServlet:前端控制器 用户要到达前端控制器,分外给 MVC 中之
C,而 DispatherServlet
是全体工艺流程的为主,它来调用其他零件来处理用户之呼吁,前端控制器的存降低了此外零件之间的耦合度。
2、HandlerMapping:处理器映射器
它的意就是吓于去押视频而将在电影票因电影票下面的座位号找到座位间座位就是
Handler,电影票和位置的席位号便是 URL HandlerMapping
负责遵照用户要找到 Handler 即处理器,SpringMVC
提供了不同的映射器实现不同之投射模式,例如:配置文件措施,实现接口形式,表明形式非凡。
3、Handler:处理器 Handler
是后端控制器,在前者控制器的操纵下后端控制器对实际的用户请求举办处理,Handler
涉及到现实的用户业务要,所以一般情状下用程序员按照工作需开发。
4、Handler艾达pter:处理器适配器 通过 HandlerAdapter
对总计机进行实践,这是适配器格局之选取,通过适配器可以对重新多类型的电脑举办实践。播放的影片是
3D 的卿看不清楚,因而电影院和你说若而想看清电影就非得戴 3D
眼镜。也就是说 Handler 满意一定之要求才可以给实施。
5、ViewResolver:视图解析器 ViewResolver 负责用处理结果生成 View
视图,ViewResolver
首先冲逻辑视图名解析成物理视图名即现实的页面地址,再生成View视图对象,最后对View举办渲染将处理结果通过页面呈现受用户。

图片 4

工作原理讲表达:
1、用户发送请求到 SpringMVC 框架提供的 DispatcherServlet
那个前端控制器(精晓 struts2 的情侣呢都知道其实
struts2呢发生一个前端控制器 web.xml 中之 filter 标签便是)。
2、前端控制器会失去追寻处理器映射器(HandlerMapping),处理器映射器遵照请求
url
找到切实可行的微处理器,生成处理器对象以及电脑拦截器(假设发则变化)一连再次回到给
DispatcherServlet 。
3、遵照处理器映射器再次回到的微处理器,DispatcherServlet
会招来“合适”的处理器适配器(HandlerAdapter)
4、处理器适配器 HandlerAdpater 会去履行处理器(Handler
开发的下会叫受成 Controller 也受后端控制器在 struts2 中action
也是一个后端控制器)执行前会出转换器、数据绑定、校验器等等就地点这一个才会合失去正在实践
Handler
5、后端控制器 Handler 执行到位之后回来一个 ModelAndView 对象 。
6、处理器适配器 HandlerAdpater 会将之 ModelAndView 重返前端控制器
DispatcherServlet。前端控制器会将ModelAndView 对象交给视图解析器
ViewResolver。
7、视图解析器 ViewResolver 解析 ModelAndView 对象后回到逻辑视图。
8、前端控制器 DispatcherServlet
对逻辑视图进行渲染(数据填充)之后回到真正的情理 View 并应给浏览器。

图片 5

仲、php缓存加速器

SpringMVC 配置

1、前端控制器需要在 web.xml 中布局

<!-- 配置前端控制器 -->
<servlet>
    <servlet-name>web-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--加载前端控制器配置文件 上下文配置位置-->
    <init-param>
        <!-- 备注:
            contextConfigLocation:指定 SpringMVC 配置的加载位置,如果不指定则默认加载
            WEB-INF/[DispatcherServlet 的 Servlet 名字]-servlet.xml
         -->
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
    <!-- 表示随WEB服务器启动 -->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>web-dispatcher</servlet-name>
    <!-- 备注:可以拦截三种请求
        第一种:拦截固定后缀的url,比如设置为 *.do、*.action, 例如:/user/add.action 此方法最简单,不会导致静态资源(jpg,js,css)被拦截
        第二种:拦截所有,设置为/,例如:/user/add  /user/add.action此方法可以实现REST风格的url,
        很多互联网类型的应用使用这种方式.但是此方法会导致静态文件(jpg,js,css)被拦截后不能正常显示.需要特殊处理
        第三种:拦截所有,设置为/*,此设置方法错误,因为请求到Action,当action转到jsp时再次被拦截,提示不能根据jsp路径mapping成功
    -->
    <!-- 默认匹配所有的请求 -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

2、在 spring/spring-web.xml 配置视图解析器

<!-- 配置视图解析器 -->
<!-- InternalResourceViewResolver:支持JSP视图解析 -->
<!-- viewClass:JstlView 表示JSP模板页面需要使用JSTL标签库,所以classpath中必须包含jstl的相关jar包; -->
<!-- prefix 和 suffix:查找视图页面的前缀和后缀,最终视图的址为: -->
<!-- 前缀+逻辑视图名+后缀,逻辑视图名需要在controller中返回ModelAndView指定,比如逻辑视图名为hello,-->
<!-- 则最终返回的jsp视图地址 "WEB-INF/jsp/hello.jsp" -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 决定视图类型,如果添加了jstl支持(即有jstl.jar),那么默认就是解析为jstl视图 -->
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <!-- 视图前缀 -->
    <property name="prefix" value="/WEB-INF/jsp/" />
    <!-- 视图后缀 -->
    <property name="suffix" value=".jsp" />
</bean>

3、在 spring/spring-web.xml 配置 评释格局

<!-- 自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter, -->
<!-- 可用在xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。 -->
<mvc:annotation-driven/>

4、在 spring/spring-web.xml 配置 扫描web 相关的 bean

<!-- 组件扫描器:可以扫描 @Controller、@Service、@Repository 等等 -->
<context:component-scan base-package="com.controller" />

央一个PHP程序时,PHP引擎会解析该次,并拿那些编译为一定操作码,那是只要履的代码的如出一辙种植二进制表示情势。
进而,此操作码有PHP引擎执行并弃。操作码缓存将保存之编译后的操作码,
连于产一样不佳调整用该页面时选择它。这会省去成千上万再编译的时。
以提高PHP引擎的进行效用,PHP缓存加速器设计之目标是缓存PHP解析过的操作码,
那般同样的要访问过来,PHP引擎就未待分析转换了,可以直接调用PHP的操作码,
然虽然提高了web服务响应速度,从而升级了用户之造访体验。

SpringMVC 中之诠释

老三、原理分析

@Controller

@Controller
注明,用于标识是仿佛是一个后端控制器(类似struts中的action),首要意图就是是经受页面的参数,转发页面。
@Controller 源码:

@Target({ElementType.TYPE}) // 表明只能定义在类上面
@Retention(RetentionPolicy.RUNTIME) //保留策略是RUNTIME,在JVM加载类时,会把注解加载到JVM内存中(它是唯一可以用反射来读取注解的策略)
@Documented //@Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员。
@Component //spring框架规定当一个类不好归类(service、dao、controller)的时候可以使用这个注解,由此可见即便好归类内部还是使用的@Component注解
public @interface Controller {
    /**
     * The value may indicate a suggestion for a logical component name,
     * to be turned into a Spring bean in case of an autodetected component.
     * @return the suggested component name, if any
     */
    String value() default "";
}

1、apache接收客户PHP程序要。
2、apache将php程序要传递让libphp5.so。
3、libphp5.so定位磁盘上的Php文件,并加载到内存中。
4、libphp5.so编译源代码成为opcode树。
5、libphp5.so执行opcode树。
PHP缓存加速器解决之虽是上述第4步问题,将opcode内容举行缓存,目标是避免
PHP每趟要都再编译解析PHP程序代码,因为以高访问量的网站上,大量之还编译
会见吃很多资源与波,所以就之中的瓶颈就是是PHP的重新编译既影响了响应速度,
还要加剧了服务器的载重,为了缓解这些题材,PHP加速器就这样诞生了。…

@RequestMapping

此注脚的企图目的就是跟@Controller不均等了,这一个讲明可以定义在接近方面吧可以定义在措施方面。

/**
* 1.@RequestMapping:除了修饰方法,还可以修饰类
* 2.类定义处:提供初步的请求信息映射.相对于WEB应用的根目录(窄化请求)
* 3.方法处:提供进一步的细分映射信息。相对于类定义处的URL。
*      若类定义处为标注@RequestMapping,则方法出的URL相对于WEB应用的根目录
*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
    String[] value() default {};
    RequestMethod[] method() default {}; //限制请求方式
    String[] params() default {}; //要求请求的URL包含指定的参数
}

代码实例

@Controller
@RequestMapping("/demo")
public class IndexController {
    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public String index(Model model, HttpServletRequest request) {
        // 在游览器访问 http://localhost:8080/demo/test 将进入这里
        model.addAttribute("originURL", "");
        model.addAttribute("controllerName", "index");
        return "index";
    }
}

@RequestMapping 还扶助 Ant 方格的求

?:匹配文件中的一个字符
*:匹配文件中任意字符
**:**匹配多层路径

/user/*/createUser : 匹配 -/user/aa/createUser 或者 -/user/aa/createUser
/user/**/createUser : 匹配 -/user/aa/createUser 或者 -/user/createUser 或者 -/user/aa/cc/createUser
/user/createUser?? : 匹配 -/user/aa/createUseraa

季、版本问题

@PathVariable

@PathVariable 这么些注明协助现在即刻较流行的 Restful 风格的 URL。
先说说之注明的意,帮助用 url 中的占位符参数绑定到目标措施的参数上,
该效用吗是 SpringMVC 实现 Restful 风格 url 的显要情势。

代码实例

// http://localhost:8080/demo/sss
@RequestMapping(value = "/{slug:.+}", method = RequestMethod.GET)
    public String index2(@PathVariable("slug") String slug, Model model) {
    LOG.info("DemoController index2 slug  " + slug);
    // common
    model.addAttribute("originURL", "demo/");
    model.addAttribute("controllerName", "demo");
    model.addAttribute("controllerMethod", "index2");
    model.addAttribute("slug", slug);
    return "demo";
}

//slug = sss

我们耳熟能详的呼吁应该是 POST 和 GET 请求,这片单请求也是不过常用之而实在
HTTP1.1 请求还有 PUT、DELETE 等8栽来表名请求的动作。

当 SpringMVC 中一经贯彻 PUT 和 DELETE 请求需要以 web.xml
额外部署一个过滤器,那个过滤器的用意就是是把 POST 请求变为 PUT 和 DELETE
请求。
有关 Restful 的情计划单独写。

php5.3.x可以据此eaccelerator-0.9.6本子,倘若应用0.9.5.2本子在make阶段会报错
php5.2.x可以用eaccelerator-0.9.5.2本子。。。。版本很重点,,,安装该软件或者用考虑perl的编译问题。

@RequestParam

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
    String value() default "";//值即为请求参数的参数名
    boolean required() default true;//该参数是否是必须。默认值为true
    String defaultValue() default ValueConstants.DEFAULT_NONE;//请求参数的默认值
}

// http://localhost:8080/demo/para?slug=google
@RequestMapping(value = "/para", method = RequestMethod.GET)
public String index3(@RequestParam(value = "slug", defaultValue = "") String slug, Model model) {
    model.addAttribute("originURL", "demo/");
    model.addAttribute("controllerName", "demo");
    model.addAttribute("controllerMethod", "index3");
    model.addAttribute("slug", slug);
    return "demo";
}
slug = google

此外还有少数只要擢升一下,参数没有加斯阐明也克投成功,这是承诺为
SpringMVC 框架协理请求参数和目的措施参数一致的时节可概括这些阐明。

五、安装Php加速软件

@ResponseBody

/**
 * Annotation that indicates a method return value should be bound to the web
 * response body. Supported for annotated handler methods in Servlet environments.
 * 
 * 这个注解指明一个方法的返回值应该绑定在 web response body 中,在 Servlet 环境中支持注解处理方法
 * 
 * <p>As of version 4.0 this annotation can also be added on the type level in
 * which case it is inherited and does not need to be added on the method level.
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ResponseBody {
}

代码

// http://localhost:8080/demo/json
@RequestMapping(value = "/json", method = RequestMethod.POST)
public @ResponseBody Domain index7(HttpServletRequest request, Model model) {

    LOG.info("DemoController demo index7");
    model.addAttribute("originURL", "demo/");
    model.addAttribute("controllerName", "demo");
    model.addAttribute("controllerMethod", "index7");

    Domain domain = new Domain();
    domain.setDomain("gggoogle.com");
    domain.setId(100);
    return domain;
}

/* response body
{
    "id": 100,
    "domain": "gggoogle.com"
}
*/

Eaccelerator:

SpringMVC 数据绑定

简单说一下景色:
对此一个注册页面有多消息譬如:用户称、密码、确认密码、邮箱、手机、兴趣等等。这时候就会怀想会免可以将那些个参数包装在一个目的被(POJO),用之POJO来做靶子措施的形参下边。可以说的凡
SpringMVC 是扶助用 POJO
作为目的参数的。当然为是设遵照一些条条框框的,就是表单的 name 属性值要同
POJO
的属于性值要一致。当然了,这样以会有一个初的疑团支非扶助级联属性答案是支撑之。

public class Address {
    private String city;
    ...
}

public class Persion {
    private String name;
    private Address address;
    ...
}

<form action="/demo/pojo">
    NAME:<input type="text" name="name" />
    CITY:<input type="text" name="address.city" />
</form>

@RequestMapping(value = "/pojo", method = RequestMethod.POST)
public String index4(Persion persion, Model model) {
    model.addAttribute("originURL", "demo/");
    model.addAttribute("controllerName", "demo");
    model.addAttribute("controllerMethod", "index4");
    model.addAttribute("persion", persion);
    return "demo";
}

5.1.1)配置环境变量LC_ALL

SpringMVC 使用 Servlet API

足行使 Servlet
原生的API作为靶子措施的参数。具体辅助以下体系:HttpServletRequest、HttpServletResponse、HttpSession、java.security.Principal、Locale、InputStream、OutputStream、Reader、Writer

// http://localhost:8080/demo/req?slug=facebook
@RequestMapping(value = "/req", method = RequestMethod.GET)
public String index5(HttpServletRequest request, Model model) {
    String slug = request.getParameter("slug");
    model.addAttribute("originURL", "demo/");
    model.addAttribute("controllerName", "demo");
    model.addAttribute("controllerMethod", "index5");
    model.addAttribute("slug", slug);
    return "demo";
}

Reference:

[root@aliyun ~]# echo 'export LC_ALL=C'>>/etc/profile
[root@aliyun ~]# . /etc/profile

5.1.2)安装perl相关软件

[root@aliyun ~]# yum -y install perl-devel

5.1.3)安装php
eaccelerator缓存加速模块    
 http://blog.csdn.net/zqtsx/article/details/9770715

下载源码:http://eaccelerator.net/

5.1.4)在php程序中实践如下,在php程序中安装插件几乎都要实践如下的操作

[root@aliyun eaccelerator-0.9.6]# /application/php/bin/phpize 
phpize是用来扩展php模块的,通过phpize可以建立php的外挂模块

5.1.5)起初编译、安装

[root@aliyun eaccelerator-0.9.6]# ./configure --enable-eaccelerator=shared --with-php-config=/application/php/bin/php-config
make && make install

/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/     这下面的模块就是安装成功了
-rwxr-xr-x 1 root root 414117 Sep  8 10:12 eaccelerator.so

 

Xcache:   

其次独加快模块,那么些跟方的老二挑选同尽管丰富了,不用都设置xcache是一个又赶忙以安静的php
opcode缓存器。经过精美的测试并以大流量/高负荷的生产机器上平稳运转,经过测试并援助所有现行php分支的底风行披露版,并匡助线程安全/windows,与同类opcode缓存器相比更胜一筹。
xcache的少数只特性:
将php代码举办编译(表现类似于.net和java的编译,内部机制不同),这样好毫无再行读取php文件,加速整个程序的周转效能;
得缓存数据到内存,直接可以就此,例如你的片段请勿会师平常改变的数量,只所以平等糟从数据库读取出来后保存至xcache中,就绝不还失去读取数据库了。

5.2.1)

/application/php/bin/phpize 

5.2.2)编译安装

./configure --enable-xcache --with-php-config=/application/php/bin/php-config
make && make install

安装好之后查看路径模块
[root@aliyun xcache-1.3.2]# ll /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
total 876
-rwxr-xr-x 1 root root 414117 Sep  8 10:12 eaccelerator.so
-rwxr-xr-x 1 root root 475399 Sep  8 11:03 xcache.so
注意,nginx,apache的模块路径可能不一样

  

Memcache:
memcache是一个胜性能的分布式的内存对象缓存系统,通过在内存里维护一个集合的丕的hash表,它会用来存储各个格式的数码,包括图像、视频、文件和数据库检索的结果相当。简单来讲哪怕是拿数据调用到内存中,然后起内存读取,从而大大提升读取速度。
memcache分为服务端软件(memcached-1.4.3.tar.gz)和客户端插件(名字倘若:memcache-2.2.5.tgz)两单部分,本文就是客户端插件在Php服务着之装。

5.3.1)编译安装

[root@aliyun tools]# tar -xf memcache-2.2.5.tgz 
[root@aliyun tools]# cd memcache-2.2.5
[root@aliyun memcache-2.2.5]# /application/php/bin/phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
[root@aliyun memcache-2.2.5]# ./configure --with-php-config=/application/php/bin/php-config 
make && make install

[root@aliyun memcache-2.2.5]# ll /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
total 1120
-rwxr-xr-x 1 root root 414117 Sep  8 10:12 eaccelerator.so
-rwxr-xr-x 1 root root 246576 Sep  8 12:59 memcache.so
-rwxr-xr-x 1 root root 475399 Sep  8 11:03 xcache.so

 

PDO_MYSQL(可选):
PDD扩张为php访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都得以经一样的函数执行查询并获取数据。

5.4.1)安装

[root@aliyun tools]# tar zxf PDO_MYSQL-1.0.2.tgz 
[root@aliyun tools]# cd PDO_MYSQL-1.0.2
[root@aliyun PDO_MYSQL-1.0.2]# /application/php/bin/phpize
[root@aliyun PDO_MYSQL-1.0.2]# ./configure --with-php-config=/application/php/bin/php-config --with-pdo-mysql=/application/mysql
make && make install

 

ImageMagick:

ImageMagick是一个免费的创办、编辑、合成图的软件。它可以读取、转换、写副强格式的图形。图片切割、颜色替换、各类力量的动,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片展开旋转。ImageMagick是免费软件:全部源码开放,可以擅自使用,复制,修改,公布,它遵循GPL许可协议,可以运行为大部分底操作系统,ImageMagick的绝大多数效用的施用还来命令行工具。

5.5.1)安装图像处理程序及imagick扩张模块,,,,安装之时段注意版本,我以centos7达到安装的时候,,ImageMagick-7.0.7-0
imagick-3.4.3

[root@server tmp]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
3.10.0-327.el7.x86_64

5.5.2)编译安装

tar -zxf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make && make install

make报错:会出perl的吹拂,内存不够的吹拂,等等,内存要尽量大点,要不然编译一贯包内存不够的擦,,,可以先make
,然后make install

 

imagick php
imagick插件需要ImageMagick软件之支撑,所以必须要先行安装ImageMagick。一个得以供php调用ImageMagick效用的扩大。使用此扩张可以使PHP具备与ImageMagick相同之机能。

5.6.1)编译安装

[root@aliyun tools]# tar -zxf imagick-2.3.0.tgz 
[root@aliyun tools]# cd imagick-2.3.0
[root@aliyun imagick-2.3.0]#  /application/php/bin/phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
[root@aliyun imagick-2.3.0]# ./configure --with-php-config=/application/php/bin/php-config 
make && make install 

 

 

六、配置php加速和环城扩充模块

改/application/php/lib/php.ini
这么些是自家好改变的php.ini配置文件之岗位,每个人之恐怕都不等同,默认在/etc下,有有关参数可以安排

6.1)配置memcache.so、pdo_mysql.so、imagick.so老三独模块**

a.执行vi /application/php/lib/php.ini编辑查找extension_dir="./"参数
修改为extension_dir = "/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/"
模块的路径
windows的不管

b.按住shift+g到文件结尾,增加以下几行,然后保存:,让模块生效
extension = memcache.so
extension = pdo_mysql.so
extension = imagick.so

这亟待更启php-fpm

[root@aliyun lib]# pkill php-fpm
[root@aliyun lib]# /application/php/sbin/php-fpm    

足由此phpinfo();验证以下,是否见效,假设生效就会合发出相应的模块。。。

6.2)配置eaccelerator插件生效

a.配置eaccelerator缓存目录
[root@aliyun ~]# mkdir -p /tmp/eaccelerator
[root@aliyun ~]# chown -R nginx.nginx /tmp/eaccelerator/
cat >> /application/php/lib/php.ini<<EOF
[eaccelerator]
extension=eaccelerator.so
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
EOF

倘安排了zend,下边是只要放在zend前边

eacc查看加速状态,要立竿见影最好重开服务器和php-fpm

[root@aliyun ~]# /application/php/bin/php -v
PHP 5.3.27 (cli) (built: Sep  4 2017 21:33:58) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
    with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerator

[root@aliyun ~]# ll /tmp/eaccelerator/
total 64
drwxrwxrwx 18 root root 4096 Sep 11 10:07 0
drwxrwxrwx 18 root root 4096 Sep 11 10:07 1
drwxrwxrwx 18 root root 4096 Sep 11 10:07 2
drwxrwxrwx 18 root root 4096 Sep 11 10:07 3
drwxrwxrwx 18 root root 4096 Sep 11 10:07 4
drwxrwxrwx 18 root root 4096 Sep 11 10:07 5
drwxrwxrwx 18 root root 4096 Sep 11 10:07 6
drwxrwxrwx 18 root root 4096 Sep 11 10:07 7
drwxrwxrwx 18 root root 4096 Sep 11 10:07 8
drwxrwxrwx 18 root root 4096 Sep 11 10:07 9
drwxrwxrwx 18 root root 4096 Sep 11 10:07 a
drwxrwxrwx 18 root root 4096 Sep 11 10:07 b
drwxrwxrwx 18 root root 4096 Sep 11 10:07 c
drwxrwxrwx 18 root root 4096 Sep 11 10:07 d
drwxrwxrwx 18 root root 4096 Sep 11 10:07 e
drwxrwxrwx 18 root root 4096 Sep 11 10:07 f

[root@aliyun ~]# find /tmp/eaccelerator/ -type f
/tmp/eaccelerator/2/4/eaccelerator-31546.068039
/tmp/eaccelerator/2/4/eaccelerator-31546.358039
/tmp/eaccelerator/2/f/eaccelerator-31546.284529
/tmp/eaccelerator/2/f/eaccelerator-31546.584529
……

  

6.3)配置xcache插件加速,,,那个与eaccelerator只要配置一个哪怕好了,配置有限独或会合发出龃龉

[root@aliyun xcache-1.3.2]# ls xcache.ini 
xcache.ini
3 ;zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so    注释该行
6 ;zend_extension_ts = c:/php/extensions/php_xcache.dll     注释该行
8 extension = xcache.so                         取消注释
25 xcache.size  =               128M
27 xcache.count =                 1
31 xcache.ttl   =                 86400
33 xcache.gc_interval =           3600
36 xcache.var_size  =            0

将修改后的xcache.ini合并到php.ini结尾
[root@aliyun xcache-1.3.2]# cat xcache.ini >> /application/php/lib/php.ini

 

 

生环境插件的装提议
1)效用性插件,假设开发人士没要求,可以少未考虑设置,如:PDO_MYSQL,memecache,imagick
2)优化性插件eaccelerator,xcache,ZendOptimizer,apc可以随意4选用1装置。,前片个好点。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图