中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php加速器(XCache),php以模塊的形式編譯

發布時間:2020-08-05 20:13:27 來源:網絡 閱讀:547 作者:LJ_baby 欄目:web開發

PHP簡介

PHP是通用服務器端腳本編程語言,其主要用于web開發以實現動態web頁面,它也是最早實現將腳本嵌入HTML源碼文檔中的服務器端腳本語言之一。同時,php還提供了一個命令行接口,因此,其也可以在大多數系統上作為一個獨立的shell來使用。


PHP Zend Engine

Zend Engine是開源的、PHP腳本語言的解釋器,由C語言開發且經過高度優化,并能夠做為PHP的后端模塊使用。Zend Engine為PHP提供了內存和資源管理的功能以及其它的一些標準服務,其高性能、可靠性和可擴展性在促進PHP成為一種流行的語言方面發揮了重要作用。

Zend Engine的出現將PHP代碼的處理過程分成了兩個階段:首先是分析PHP代碼并將其轉換為稱作Zend opcode的二進制格式(類似Java的字節碼),并將其存儲于內存中;第二階段是使用Zend Engine去執行這些轉換后的Opcode。


PHP的Opcode

Opcode是一種PHP腳本編譯后的中間語言,就像Java的ByteCode,或者.NET的MSL。PHP執行PHP腳本代碼一般會經過如下4個步驟(確切的來說,應該是PHP的語言引擎Zend):

1、Scanning(Lexing)(掃描) —— 將PHP代碼轉換為語言片段(Tokens)

2、Parsing(分析) —— 將Tokens轉換成簡單而有意義的表達式

3、Compilation(編譯) —— 將表達式編譯成Opocdes

4、Execution(執行) —— 順次執行Opcodes,每次一條,從而實現PHP腳本的功能


php的加速器

PHP進程(對應一次請求)編譯的結果無法被第二個PHP進程使用(opcode無法共享),這使得每一次對動態頁面的請求都需要進行掃描,分析,編譯,執行,即使是一模一樣的請求也需要也需要經歷這4個步驟。然后就有了各種PHP加速器。

php的加速器是基于PHP的特殊擴展機制,如opcode緩存擴展,也可以將opcode緩存于php的共享內存中,從而可以讓同一段代碼的后續重復執行時跳過編譯階段以提高性能。由此也可以看出,這些加速器并非真正提高了opcode的運行速度,而僅是通過分析opcode后并將它們重新排列以達到快速執行的目的。常見的php加速器有:APC (Alternative PHP Cache),eAccelerator,XCache,NuSphere PhpExpress,Zend Optimizer和Zend Guard Loader........其中XCache快速而且穩定,經過嚴格測試且被大量用于生產環境。項目地址:http://xcache.lighttpd.net/


XCache的安裝

安裝的版本是xcache-3.1.0.tar.bz2

1、安裝

[root@www ~]# ll
total 20532
.....
-rw-r--r--.  1 root root    146444 Jul  5 10:41 xcache-3.1.0.tar.bz2
.....
[root@www ~]# tar xf xcache-3.1.0.tar.bz2 
[root@www ~]# cd xcache-3.1.0
[root@www xcache-3.1.0]# /usr/local/php-5.4/bin/phpize  #準備一個模塊以實現編譯php支持
                                      #第三方模塊(與當前的php整合)
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525

/usr/local/php-5.4/bin/phpize 這里必須要執行這一步,執行完成之后,安裝包的目錄下才會有configure腳本文件


[root@www xcache-3.1.0]# ./configure --enable-xcache --with-php-config=/usr/local/php-5.
4/bin/php-config
.......
[root@www xcache-3.1.0]# make && make install

安裝結束時,會出現類似如下行:

Installing shared extensions:/usr/local/php-5.4/lib/php/extensions/no-debug-non-zts-20100525


2、編輯php.ini,整合php和xcache

首先將xcache提供的樣例配置導入php.ini

[root@www xcache-3.1.0]# mkdir /etc/php.d
[root@www xcache-3.1.0]# cp xcache.ini /etc/php.d

說明:xcache.ini文件在xcache的源碼目錄中。


接下來編輯/etc/php.d/xcache.ini,找到zend_extension開頭的行,修改為如下行:

extension = /usr/local/php-5.4/lib/php/extensions/no-debug-non-zts-20100525/xcache.so

注意:如果php.ini文件中有多條zend_extension指令行,要確保此新增的行排在第一位。

xcache.ini中的幾項參數:

; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size  =               60M                             #用于緩存的內存大小
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count =                 1                              #設置成cpu的核心數
; just a hash hints, you can always store count(items) > slots
xcache.slots =                8K
; ttl of the cache item, 0=forever
xcache.ttl   =                 0
; interval of gc scanning expired items, 0=no scan, other values is in seconds
xcache.gc_interval =           0

完成之后中心加載服務

[root@www xcache-3.1.0]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done


訪問配置頁面:

php加速器(XCache),php以模塊的形式編譯

php加速器(XCache),php以模塊的形式編譯

已加載xcache


用ab命令對php服務器進行壓測,命令格式如下

ab -n num -c num url

-n   #共多少次請求

-c    #并發請求數


先把緩存功能關掉:

[root@www php.d]# mv xcache.ini xcache.ini.bak
[root@www php.d]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

開始測試:

[root@www ~]# ab -n 200 -c 5 http://admin.xiaoxiao.com/index.php
This is ApacheBench, Version 2.3 <$Revision: 1554214 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking admin.xiaoxiao.com (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests

php加速器(XCache),php以模塊的形式編譯


啟動xcache:

[root@www php.d]# mv xcache.ini.bak xcache.ini
[root@www php.d]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done
[root@www ~]# ab -n 500 -c 20 http://admin.xiaoxiao.com/index.php
.........

php加速器(XCache),php以模塊的形式編譯

速度是兩倍多一點,效果還是挺明顯的~~

.................^_^


php以模塊的形式工作

php以模塊的形式與httpd整合,兩者只能運行在同一臺服務器上。

首先解決依賴關系,安裝libxml2-devel,bzip2-devel,libmcrypt-devel。若需要添加GD庫,libjpeg-turbo-devel,libpng-devel,freetype-devel,把這3個包也裝上,然后進行編譯。

[root@CentOS-6 php-5.4.26]# ./configure --prefix=/usr/local/php-5.4 --with-mysql=mysqlnd
 --with-pdo-mysql=mysqlnd --with-openssl --with-mysqli=mysqlnd --enable-mbstring --wit
 h-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml
   --enable-sockets --with-apxs2=/usr/local/apache-2.4.9/bin/apxs --with-mcrypt  --with-con
   fig-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-gd --enable-ma
   intainer-zts
[root@CentOS-6 php-5.4.26]# make && make install

--enable-maintainer-zts             #如果httpd使用的mpm為event或者worker,這項一定要加上,

                                                    #若果使用的是prefork,這項一定不能加

--with-apxs2=/usr/local/apache/bin/apxs       #apx是httpd的鉤子函數,它能夠實現為apache編

                                                                          #譯第三方模塊,php要編譯成apache模塊,需要指

                                                                                 #定函數的位置

添加配置文件

[root@CentOS-6 php-5.4.26]# cp php.ini-production /etc/php.ini

編輯apache配置文件httpd.conf,使httpd支持php

添加如下兩行

   AddType application/x-httpd-php  .php        #一般情況下加這一行就行
   AddType application/x-httpd-php-source  .phps

識別默認頁面

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

添加測試頁面,后重新加載httpd服務

[root@CentOS-6 ~]# vim /usr/local/apache-2.4.9/htdocs/index.php
<?php
      phpinfo();
?>
.......
[root@CentOS-6 ~]# service httpd force-reload
Reloading httpd:

php加速器(XCache),php以模塊的形式編譯

php模塊已能夠正常工作.................^_^


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

句容市| 绥棱县| 平乐县| 馆陶县| 桐梓县| 兴山县| 思茅市| 秦皇岛市| 云阳县| 体育| 盐城市| 汕头市| 临沧市| 开阳县| 甘洛县| 广河县| 贵定县| 天等县| 兴国县| 岳西县| 嘉善县| 五峰| 丁青县| 阿坝县| 江北区| 大埔县| 开封市| 青阳县| 天气| 河源市| 论坛| 腾冲县| 长岭县| 唐海县| 博爱县| 石嘴山市| 射阳县| 南郑县| 新疆| 北票市| 龙口市|