久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

EZ Publish/EZ Publish 集群的使用

來自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

EZ Publish | EZ Publish安裝與卸載 | EZ Publish的使用 | EZ Publish常見問題 | EZ Publish其他

集群概述[ ]

集群特性允許在多臺(tái)WEB 服務(wù)器上運(yùn)行同一個(gè)eZ Publish 站點(diǎn)。集群站點(diǎn)會(huì)有更好的性能也可以承受更多的訪問量。

可以將所有內(nèi)容相關(guān)的緩存,圖片和二進(jìn)制文件保存在數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)事務(wù)被用來保證所有的集群節(jié)點(diǎn)使用相同的緩存文件并訪問相同的圖片和二進(jìn)制文件。換言之,當(dāng)內(nèi)容被上傳,變化會(huì)自動(dòng)對(duì)所有節(jié)點(diǎn)生效。這個(gè)特性在3.10 中得到了很大的改善。

注意:當(dāng)使用集群時(shí),建議使用虛擬主機(jī)模式運(yùn)行eZ Publish。

  • 3.10 引入的變化

在3.10 版本以前,清除緩存會(huì)物理刪除緩存文件。這一操作可能非常耗時(shí)。

從3.10 版本開始,系統(tǒng)會(huì)將緩存標(biāo)記為不可用而不是從數(shù)據(jù)庫(kù)或文件系統(tǒng)中物理刪除。這可以標(biāo)記每個(gè)特別緩存文件為過期或設(shè)置全局過期時(shí)間(在需要很多變化時(shí),例如:當(dāng)清除特定類型的所有緩存,后者常被使用)。全局過期時(shí)間是一個(gè)時(shí)間戳,它可以被用來作為系統(tǒng)中所有緩存的過期時(shí)間。如果全局過期時(shí)間被設(shè)置為一個(gè)特定日期,所有比這個(gè)日期舊的緩存文件都不會(huì)被使用。注意,在重建緩存的時(shí)候,系統(tǒng)會(huì)重用舊的/過期的文件內(nèi)容。

如果要從數(shù)據(jù)庫(kù)中物理刪除緩存文件,需要添加"—purge"參數(shù)來執(zhí)行"bin/php/ezcache.php"。下例演示了如何刪除所有兩天前的內(nèi)容緩存。

php bin/php/ezcache.php --clear-id=content --purge --expiry='-2 days'

如果要了解更多信息,可以用"—help"參數(shù):

php bin/php/ezcache.php --help

注意:3.10 不支持基于PostgreSQLOracle 數(shù)據(jù)庫(kù)的集群。代碼針對(duì)使用InnoDB 引擎的MySQL 數(shù)據(jù)庫(kù)做了性能優(yōu)化。MySQL 的數(shù)據(jù)庫(kù)連接數(shù)必須被增加30-50%。這樣做的原因是新的集群代碼在將內(nèi)容寫入數(shù)據(jù)庫(kù)時(shí)會(huì)建立另外一個(gè)連接(這個(gè)連接用于檢查得到寫入鎖后,文件是否被修改過)。如果持續(xù)連接被啟用,集群將不會(huì)與普通數(shù)據(jù)庫(kù)操作共用連接,所以之前的連接數(shù)將翻倍。

  • 3.9 版本引入的修改

從3.9 版本開始,系統(tǒng)引入了一個(gè)附加的HTTP 頭"Served-by"。這一特性用于測(cè)試和調(diào)試目的。當(dāng)您需要在客戶端檢查內(nèi)容來源于哪個(gè)服務(wù)器時(shí),這一特性變得很有用。下例演示了服務(wù)器回應(yīng)的片段。

...
Last-Modified: Fri, 29 Jun 2007 09:35:54 GMT
Served-by: 62.70.12.230
Content-Language: en-GB
...
  • 集群如何工作

需要在不同服務(wù)器見保持同步的數(shù)據(jù)被保存在數(shù)據(jù)庫(kù)中:

? 二進(jìn)制文件

? 圖片和圖片別名

? 內(nèi)容相關(guān)的緩存

內(nèi)容視圖緩存
模板緩存塊
過期緩存
URL 別名緩存
RSS 緩存
用戶信息緩存
類標(biāo)識(shí)符緩存
排序鍵值緩存

其它文件在文件系統(tǒng)中保存,包括(但不限于):

? INI 文件

? 模板文件

? 編譯的模板

? PHP 文件

? 日志文件

? 與內(nèi)容無(wú)關(guān)的緩存

全局INI 緩存
INI 緩存
代碼頁(yè)緩存
字符變換緩存
模板緩存
模板重設(shè)緩存
  • 內(nèi)容視圖緩存

當(dāng)eZ Publish 顯示一個(gè)頁(yè)面(一個(gè)內(nèi)容節(jié)點(diǎn))時(shí),它會(huì)執(zhí)行"content"模塊的"view"視圖并在pagelayout 中包含視圖的輸出。如果視圖的輸出被緩存,緩存文件會(huì)被讀取并使用。否則,系統(tǒng)會(huì)從eZ Publish 數(shù)據(jù)庫(kù)中提取內(nèi)容,生成必要的模板,生成WEB 頁(yè)面并在返回結(jié)果前將生成的XHTML 保存在文件系統(tǒng)中。

如前說述,這些文件現(xiàn)在可以(從3.8 版本開始)被保存在數(shù)據(jù)庫(kù)中因而文件(以及改動(dòng))可以被簡(jiǎn)單迅速地在所有的服務(wù)器中共享。

  • 圖片和圖片別名

上述解決方案也被用于圖片和圖片別名(圖片變種)。但是,解決方案有一點(diǎn)復(fù)雜因?yàn)橹钡阶罱?3.8),圖片都是被Apache 直接提供的。因?yàn)閃EB 服務(wù)器不能直接與數(shù)據(jù)庫(kù)溝通,圖片需要由一個(gè)稱為"index_image.php"的PHP 腳本來提供。這條規(guī)則應(yīng)用于所有與內(nèi)容有關(guān)的圖片,但是不適用于界面中的圖片。請(qǐng)注意,需要為Apache 添加新的rewrite 規(guī)則來要求Apache 在提供圖片的時(shí)候使用"index_image.php"。

  • 集群文件處理器

在3.8 中引入了一種新的文件管理器機(jī)制。它允許在數(shù)據(jù)庫(kù)中對(duì)文件進(jìn)行保存,提取,重命名,刪除等操作。集群文件處理器在"kernel/classes/clusterfilehandlers"目錄中。以下為系統(tǒng)內(nèi)建的集群文件處理器:

? ezfs(eZFSFileHandler)

? ezdb(eZDBFileHandler)

eZFSFileHandler

這個(gè)處理器允許使用文件系統(tǒng)來處理文件。

  • eZDBFileHandler

這個(gè)處理器允許使用數(shù)據(jù)庫(kù)處理文件(在集群環(huán)境中,這通常包括圖片,上傳的二進(jìn)制文件,內(nèi)容有關(guān)的緩存等等)。它被劃分為不同的后臺(tái)實(shí)現(xiàn)以支持不同的數(shù)據(jù)庫(kù)(注意:目前只有MySQL 被支持)。

  • 自定義處理器

可以開發(fā)自己的處理器和/或后臺(tái)實(shí)現(xiàn)來擴(kuò)展系統(tǒng)。這可以通過擴(kuò)展系統(tǒng)實(shí)現(xiàn)(不是通過修改eZ Publish內(nèi)核文件)。

"file.ini"中的"[ClusteringSettings]"下的"[ExtensionDirectories[]"數(shù)組是eZ Publish 用來尋找附加集群文件處理器的位置。默認(rèn)情況下,eZ Publish 會(huì)在擴(kuò)展的"clusterfilehandlers"子目錄內(nèi)尋找。

如果有一個(gè)擴(kuò)展"myExtension",它包括一個(gè)集群文件處理器"cfh"。應(yīng)該在"file.ini.append.php"文件中的"[ClusteringSettings]"下添加如下配置:

FileHandler=cfh
ExtensionDirectories[]=myExtension

這些配置會(huì)要求eZ Publish 使用位于"extension/myExtension/clusterfilehandlers/cfhfilehandler.php"的自定義集群文件處理器。

集群的配置[ ]

以下步驟演示了如何配置eZ Publish 在數(shù)據(jù)庫(kù)中保存圖片,二進(jìn)制文件和內(nèi)容相關(guān)的緩存。

1. 清除緩存(可選)

建議(但不是必須)在啟動(dòng)集群功能之前清除所有eZ Publish 緩存。步驟如下:

php bin/php/ezcache.php --clear-all -–purge

運(yùn)行緩存腳本之后,確保所有緩存文件已經(jīng)被清除(通常在"var/cache/"和"var/<站點(diǎn)入口名稱>/cache/")。如果還有殘留文件,手動(dòng)刪除它們。

2. 修改"file.ini"配置

在"file.ini"的重設(shè)文件中添加如下配置:

[ClusteringSettings]
FileHandler=ezdb
DBBackend=mysql
DBHost=localhost
DBPort=3306
DBSocket=
DBName=name
DBUser=user
DBPassword=pass
DBChunkSize=65535

用實(shí)際的數(shù)據(jù)庫(kù)連接信息替換"localhost","name","user"和"pass"(大部分情況下,這些設(shè)置與"[DatabaseSettings]"下的配置相同)。確保"DBSocket"的配置正確(如果在"site.ini"的重設(shè)文件中"[DatabaseSettings]"下的配置為"Socket=disabled",則設(shè)置為空)。

在"FileHandler"配置中指定"ezdb",這會(huì)要求eZ Publish 使用指定的數(shù)據(jù)庫(kù)保存圖片,二進(jìn)制文件和內(nèi)容相關(guān)的緩存。"DBBackend"配置指定"ezdb"文件處理器應(yīng)該使用何種數(shù)據(jù)庫(kù)后端(目前,只支持"MySQL")。"DBChunkSize"指定了從數(shù)據(jù)庫(kù)中提取文件時(shí),內(nèi)容塊的大?。ㄗ止?jié))。

3. 創(chuàng)建新腳本用來提供圖片

所有的圖片(除了界面圖片)將會(huì)由PHP 腳本提供。Apache 會(huì)被要求用特定的PHP 腳本"index_cluster.php"來處理圖片。這個(gè)腳本必須引入"index_image.php"以及一系列配置。這個(gè)技巧可以另圖片的處理更快因?yàn)橄到y(tǒng)不需要從數(shù)據(jù)庫(kù)讀取配置。在eZ Publish 的安裝目錄中創(chuàng)建"index_cluster.php"并輸入如下內(nèi)容:

<?php
define( 'STORAGE_BACKEND', 'mysql' );
define( 'STORAGE_HOST', 'localhost' );
define( 'STORAGE_PORT', 3306 );
define( 'STORAGE_SOCKET', '' );
define( 'STORAGE_USER', 'user' );
define( 'STORAGE_PASS', 'pass' );
define( 'STORAGE_DB', 'name' );
define( 'STORAGE_CHUNK_SIZE', 65535 );
include_once( 'index_image.php' );
?>

確保數(shù)據(jù)庫(kù)的配置與"file.ini.append.php"中的"[ClusterSettings]"配置相同。

4. 創(chuàng)建新的數(shù)據(jù)庫(kù)表

需要在數(shù)據(jù)庫(kù)中手動(dòng)創(chuàng)建一些表。可以在"kernel/classes/clusterfilehandlers/dbbackends/mysql.php"中找到表結(jié)構(gòu)。表結(jié)構(gòu)的定義在文件開頭的注釋中。

5. 將文件導(dǎo)入數(shù)據(jù)庫(kù)

需要將"var"目錄中的文件復(fù)制到數(shù)據(jù)庫(kù)。在"eZ Publish"的根目錄中執(zhí)行如下腳本(用實(shí)際的站點(diǎn)入口名替換"ezwebin_site"):

php bin/php/clusterize.php -s ezwebin_site

這個(gè)腳本會(huì)將"var"目錄中的文件,圖片,圖片別名復(fù)制到數(shù)據(jù)庫(kù)中。

6. 編譯模板(可選)

因?yàn)樗芯彺鏋榭?,需要重新編譯模板。注意,這一步可以省略,而模板會(huì)在被請(qǐng)求時(shí)被編譯。在eZ Publish 根目錄中執(zhí)行以下腳本:

php bin/php/eztc.php -s ezwebin_site

為每個(gè)站點(diǎn)入口執(zhí)行這個(gè)腳本

7. 更新Apache 配置文件

Apache 需要知道在提供圖片時(shí)應(yīng)該使用哪個(gè)PHP 腳本。這個(gè)腳本只是簡(jiǎn)單地從數(shù)據(jù)庫(kù)提取并提供圖片。將以下規(guī)則添加到.htaccess 文件中其它規(guī)則之上:

Rewriterule ^/var/([^/]+/)?storage/images-versioned/.* /index_cluster.php [L]
Rewriterule ^/var/([^/]+/)?storage/images/.* /index_cluster.php [L]

如果".htaccess"文件不存在,在Apache 配置文件中添加以上規(guī)則。

8. 重啟Apache 并測(cè)試站點(diǎn)

重啟Apache。重啟Apache 之后,系統(tǒng)會(huì)以集群模式啟動(dòng)。確認(rèn)站點(diǎn)正常工作,內(nèi)容圖片可以被顯示且內(nèi)容二進(jìn)制文件可以被訪問(在瀏覽器中登錄到管理界面,試著點(diǎn)擊不同鏈接)。

9. 從文件系統(tǒng)中刪除導(dǎo)入的文件

如果站點(diǎn)正常工作,可以從文件系統(tǒng)中刪除原始的內(nèi)容圖片和二進(jìn)制文件(因?yàn)樗鼈円呀?jīng)被成功導(dǎo)入數(shù)據(jù)庫(kù))。需要調(diào)查"var"目錄(特別是"var/storage/"和"var/<name_of_siteaccess>/storage/"目錄)。如果這些目錄中有任何內(nèi)容圖片或二進(jìn)制文件,可以手動(dòng)刪除它們。

撤銷集群配置[ ]

總是可以將站點(diǎn)出集群模式切換回標(biāo)準(zhǔn)模式:在文件系統(tǒng)中保存圖片,二進(jìn)制文件和內(nèi)容相關(guān)的緩存。以下步驟解釋了如何切換。假設(shè)eZ Publish 站點(diǎn)現(xiàn)在使用MySQL 保存文件。

1. 清除緩存(可選)

建議(不是必須)在撤銷集群之前清除緩存。

php bin/php/ezcache.php --clear-all --purge
2. 撤銷圖片和文件的集群

需要將圖片,二進(jìn)制文件,內(nèi)容相關(guān)的緩存從數(shù)據(jù)庫(kù)復(fù)制回文件系統(tǒng)??梢杂?bin/php/clusterize.php-u"來實(shí)現(xiàn)。執(zhí)行之前確保有足夠的磁盤空間。

下例演示了如何運(yùn)行這個(gè)腳本(用實(shí)際的站點(diǎn)入口替換"ezwebin_site")。

php bin/php/clusterize.php -u -s ezwebin_site

以上腳本將會(huì)遍歷數(shù)據(jù)庫(kù)中保存的文件并將它們復(fù)制到"var"下面正確的子目錄中。

3. 修改"file.ini"配置

編輯"file.ini"的重設(shè)文件并注釋以下內(nèi)容:

[ClusteringSettings]
#FileHandler=ezdb
#DBBackend=mysql
#DBHost=localhost
#DBPort=3306
#DBSocket=
#DBName=name
#DBUser=user
#DBPassword=pass
#DBChunkSize=65535

注意,您也可以直接刪除以上配置。

4. 禁用提供圖片的腳本

重命名或刪除"index_cluster.php"。

5. 修改Apache 配置

注釋或刪除以下Apache 配置:

Rewriterule ^/var/([^/]+/)?storage/images-versioned/.* /index_cluster.php [L]
Rewriterule ^/var/([^/]+/)?storage/images/.* /index_cluster.php [L]
6. 重啟Apache 并測(cè)試站點(diǎn)

重啟Apache 服務(wù)器。重啟之后,站點(diǎn)應(yīng)該可以使用"var"目錄下的圖片,文件和內(nèi)容相關(guān)的緩存。確保站點(diǎn)正常工作(在瀏覽器中登錄管理界面,試著點(diǎn)擊不同鏈接)。

7. 刪除數(shù)據(jù)庫(kù)中的集群表

如果站點(diǎn)正常工作,您可以從數(shù)據(jù)庫(kù)中刪除之前使用的圖片,文件和內(nèi)容緩存。

DROP TABLE ezdbfile;
DROP TABLE ezdbfile_data;

參考來源[ ]

EZ Publish使用手冊(cè)導(dǎo)航

EZ Publish安裝卸載

EZ Publish正常安裝 | EZ Publish手動(dòng)安裝 | EZ Publish自動(dòng)安裝 | EZ Publish虛擬主機(jī)設(shè)置 | EZ Publish使用擴(kuò)展 | EZ Publish的卸載

EZ Publish的使用

模板使用:

EZ Publish節(jié)點(diǎn)模板 | EZ Publish系統(tǒng)模板 | EZ Publish Pagelayout頁(yè)頭信息 | EZ Publish Pagelayout變量 | EZ Publish 模板注釋 | EZ Publish 模板變量類型 | EZ Publish 模板變量用法 | EZ Publish 調(diào)查數(shù)組和對(duì)象 | EZ Publish 模板控制結(jié)構(gòu) | EZ Publish 函數(shù)與操作符 | EZ Publish URL處理 | EZ Publish 內(nèi)容提取 | EZ Publish 模板重設(shè)系統(tǒng)
系統(tǒng)功能: EZ Publish 系統(tǒng)記帳 | EZ Publish 策略功能 | EZ Publish 多語(yǔ)言使用(一) | EZ Publish 多語(yǔ)言使用(二) | EZ Publish 集群的使用 | EZ Publish 安裝包的使用 | EZ Publish Cronjob腳本的使用 | EZ Publish 多貨幣功能 | EZ Publish 通知功能
其他功能: EZ Publish 增值稅(VAT)系統(tǒng) | EZ Publish 改進(jìn)的商品配送系統(tǒng) | EZ Publish 多語(yǔ)言URL別名 | EZ Publish 登錄后高級(jí)重定向 | EZ Publish 檢索引擎 | EZ Publish WebDAV | EZ Publish 視圖緩存

EZ Publish常見問題

EZ Publish 安裝常見問題 | EZ Publish 使用常見問題

EZ Publish其他

EZ Publish內(nèi)部結(jié)構(gòu) | EZ Publish內(nèi)容與界面 | EZ Publish內(nèi)容管理(一) | EZ Publish內(nèi)容管理(二) | EZ Publish配置模型 | EZ Publish模塊與視圖 | EZ Publish URL 翻譯 | EZ Publish 界面 | EZ Publish訪問控制 | EZ Publish網(wǎng)絡(luò)商店 | EZ Publish工作流