PHP服務(wù)加速緩存優(yōu)化
公司主營(yíng)業(yè)務(wù):網(wǎng)站制作、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出廣東免費(fèi)做網(wǎng)站回饋大家。PHP緩存原理:
當(dāng)客戶端請(qǐng)求一個(gè)PHP程序時(shí),服務(wù)器的PHP引擎會(huì)解析改PHP程序,并將其編譯為特定的操作碼(Operate Code 簡(jiǎn)稱 opcode),
改文件是執(zhí)行PHP代碼后的一種二進(jìn)制表示形式。默認(rèn)情況下,這個(gè)編譯好的操作碼文件由PHP引擎執(zhí)行后丟棄。而操作碼緩存的原理:
將編譯后的操作碼保存下來(lái),并放到共享內(nèi)存中,下一次調(diào)用PHP時(shí)重用。(節(jié)省了PHP引擎的編譯時(shí)間)
LA(N)MP環(huán)境PHP緩存加速器的原理:
1)apache(nginx)接收到客戶端的PHP程序訪問(wèn)請(qǐng)求。
2)apache(nginx)把程序傳遞給PHP處理模塊libphp5.so(php的FCGI--php-fpm)進(jìn)程。
3)PHP引擎(php-fpm進(jìn)程)讀取磁盤上的PHP文件,并將器加載到內(nèi)存中解析。
4)PHP處理模塊libphp5.so(php解析器php.ini)將PHP源碼編譯成cpdode,把cpcode緩存起來(lái)。
5)apache(nginx)接收到客戶端的請(qǐng)求后,PHP引擎直接讀取opcode文件。如果沒(méi)有找到則重復(fù)1-4步。建立緩存。
補(bǔ)充知識(shí):
locale 計(jì)算機(jī)軟件運(yùn)行的語(yǔ)言環(huán)境:
# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
locale 把按照所涉及到的使用習(xí)慣的各個(gè)方面分成12 大類,這12 個(gè)大類分別是:
語(yǔ)言符號(hào)及其分類(LC_CTYPE)
數(shù)字(LC_NUMBERIC)
比較習(xí)慣(LC_COLLATE)
時(shí)間顯示格式(LC_TIME)
貨幣單位(LC_MONETARY)
信息主要是提示信息,錯(cuò)誤信息,狀態(tài)信息,標(biāo)題,標(biāo)簽,按鈕和菜單等(LC_MESSAGES)
行么書寫方式(LC_NAME)
地址書寫方式(LC_ADDRESS)
電話號(hào)碼書寫方式(LC_TELEPHONE)
度量衡表達(dá)方式(LC_MEASUREMENT)
默認(rèn)紙張尺寸大小(LC_PAPER)
對(duì)locale 自身包含信息的概述(LC_IDENTIFICATION)
而這些信息的配置通常放在/usr/share/i18n/locales 目錄下。
部分軟件需求Perl.為了解決Perl的一些環(huán)境問(wèn)題帶來(lái)錯(cuò)誤??梢酝ㄟ^(guò)修改環(huán)境變量來(lái)避免。
# echo 'export LC_ALL=C' >> /etc/profile
# tail -1 /etc/profile
# source /etc/profile
安裝Perl相關(guān)的軟件依賴包 # yum install perl-devel 或 # yum install perl-CPAN
安裝 PHP XCache 緩存加速模塊
X Cache 把PHP程序編譯后的數(shù)據(jù)(opcode)緩存到共享內(nèi)存里,避免相同的程序重復(fù)編譯。
用戶請(qǐng)求相同的PHP程序時(shí),可以直接使用緩存中已編譯好的數(shù)據(jù),提高訪問(wèn)速度。
# wget https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2 --no-check-certificate
# tar jxvf xcache-3.2.0.tar.bz2
# /application/php/bin/phpize
phpize 作用:用來(lái)擴(kuò)展PHP擴(kuò)展模塊的,通過(guò)phpize可以建立PHP的外掛模塊。
提供軟件包平臺(tái)環(huán)境分析和編譯安裝的必須的工具。
#./configure --enable-xcache --with-php-config=/application/php/bin/php-config
# make
# make install
# ll /application/php5.5.38/lib/php/extensions/no-debug-non-zts-20121212/
看看是否含有 xcache.so 表明 安裝是否完成。
安裝數(shù)據(jù)庫(kù)緩存及其它PHP擴(kuò)展插件
memcached緩存軟件:mem內(nèi)存 cache緩存。d 即daemon(服務(wù)器端進(jìn)程模式服務(wù))
memcached分2部分:服務(wù)器端(memcached)和客戶端(memcache)
一般場(chǎng)景:數(shù)據(jù)存放在數(shù)據(jù)庫(kù)中, web訪問(wèn)的時(shí)候,要不停的訪問(wèn)數(shù)據(jù)庫(kù)。加入memcached好處:通過(guò)自身內(nèi)存中緩存
數(shù)據(jù)庫(kù)的查詢結(jié)果,減少數(shù)據(jù)庫(kù)的訪問(wèn)次數(shù),訪問(wèn)內(nèi)存比訪問(wèn)硬盤效率要高。
memcached的服務(wù)的工作步驟:
1.先檢查memcached服務(wù)的緩存中是否存在。如果存在直接返回請(qǐng)求數(shù)據(jù)
2.memcached不存在數(shù)據(jù),訪問(wèn)數(shù)據(jù)庫(kù)
3.數(shù)據(jù)庫(kù)取出數(shù)據(jù),返回給客戶端
4.同時(shí)把新取到的數(shù)據(jù)緩存一份給memcached服務(wù)緩存。備用。
memcache 客戶端PHP擴(kuò)展插件(memcache2.2.7.tgz)
# wget http://pecl.php.net/get/memcache-2.2.7.tgz
# ./configure --enable-memcache --with-php-config=/application/php/bin/php-config
# make
# make install
# ll /application/php5.5.38/lib/php/extensions/no-debug-non-zts-20121212/
是否包含 memcache.so
安裝:PDO_MYSQL擴(kuò)展模塊
下載地址:# wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
一般在編譯PHP的時(shí)候以參數(shù)的形式加入此模塊:--with-pdo-mysql=mysqlnd
如果源碼包編譯安裝和前面的安裝無(wú)異(略步驟)
平臺(tái)分析如下:
# ./configure --with-php-config=/application/php/bin/php-config --with-pdo-mysql-mysql=/application/mysql
安裝圖像處理程序及imagick 擴(kuò)展模塊
安裝圖像軟件:ImageMagick
安裝imagick模塊
# wget http://pecl.php.net/get/imagick-3.4.3.tgz
# /application/php/bin/phpize
# ./configure --with-php-config=/application/php/bin/php-config
配置模塊生效:修改php.ini文件。把加載模塊的地址修改。
extension_dir = "/application/php/lib/php/extensions/no-debug-non-zts-20121212"
extension=memcache.so
extension=imagick.so
配置XCache 插件加速
1.首先修改 xcache 自帶的配置文件 xcache.ini ,然后將修改的文件添加到 php.ini(引擎文件)文件的后面
# grep -vE "^;|^$" /data/xcache-3.2.0/xcache.ini > xcache.ini.bak
其中主要修改:一下參數(shù)
xcache.size = 256M
xcache.count = 2
xcache.ttl = 86400
xcache.gc_interval = 3600
xcache.var_size = 64M
**** xcache.size 非0表示啟用緩存。后面的數(shù)值代表允許mmap(一種內(nèi)存共享機(jī)制)的大值
xcache.count 官方推薦服務(wù)器CPU的個(gè)數(shù) # grep -c processor /proc/cpuinfo(匹配CPU個(gè)數(shù))
xcache.ttl ttl(time to live) 設(shè)定cache對(duì)象的生存期
xcache.gc_interval 回收器掃描過(guò)期對(duì)象回收內(nèi)存空間的時(shí)間間隔(如果設(shè)為0.則不回收,啟動(dòng)緩存必須開(kāi)啟回收)
xcache.var_size 變量的緩存
# cat xcache.ini.bak >> /application/php/lib/php.ini
因?yàn)?XCache 使用共享內(nèi)存作為存儲(chǔ)空間,如果有必要可以調(diào)整共享內(nèi)存大小參數(shù)。
# tail /etc/sysctl.conf
kernel.msgmnb = 65536
# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
2.重新啟動(dòng)PHP查看xcache加載情況
# pkill php-fpm
# /application/php/sbin/php-fpm
# /application/php/bin/php -v
PHP 5.5.38 (cli) (built: Feb 1 2017 22:43:58)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
with XCache v3.2.0, Copyright (c) 2005-2014, by mOo
with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo
3.配置web界面的查看xcache緩存加速信息。
修改php.ini 文件中的
xcache.admin.user = "mOo" #把mOo 替換
xcache.admin.pass = "md5 encrypted password"
# 這里是利用md5算法生成加密串
例如:
# echo -n '123456' | md5sum
e10adc3949ba59abbe56e057f20f883e -
將內(nèi)容替換成e10adc3949ba59abbe56e057f20f883e
引用xcache相關(guān)的頁(yè)面;
# cd /data/xcache-3.2.0
# cp -a ./htdocs/ /application/nginx/html/blog/xadmin
# chown -R nginx.nginx /application/nginx/html/blog/xadmin
# pkill php-fpm
# /application/php/sbin/php-fpm
下面附上 :壓測(cè)效果對(duì)比:(昨天為沒(méi)有加入xcache緩存的數(shù)據(jù),右邊為加入xcache緩存效果)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前名稱:php服務(wù)緩存加速-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article10/dijido.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站收錄、企業(yè)網(wǎng)站制作、搜索引擎優(yōu)化、商城網(wǎng)站、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容