[eZ publish] multi sub domain with multi language in eZ publish

Let say we have one main domain, andfour sub domain, also, we have to develop them all to French andEnglish. The structure as below:

main      www.example.com

  child_one  child_one.example.com

  child_two  child_two.example.com

  child_three  child_three.example.com

  child_four  child_four.example.com

 

Sine then, multi sub domain with multilanguage, so we will build 8 siteaccess.

 

 

1. Prepare for the environment of the server

1.1 Modify the host file.

127.0.0.1 example.com
127.0.0.1 child_one.example.com
127.0.0.1 child_two.example.com
127.0.0.1 child_three.example.com
127.0.0.1 child_four.example.com

 

 

1.2 Modify the httpd.conf of the apache to set upthe virtual host

代码
<VirtualHost *:80>
<Directory
"/var/www/example">
Options FollowSymLinks
AllowOverride all
Allow from all
<
/Directory>

<IfModule mod_php5.c
>
php_admin_flag safe_mode Off
php_admin_value register_globals
0
php_value magic_quotes_gpc
0
php_value magic_quotes_runtime
0
php_valueallow_call_time_pass_reference
0
<
/IfModule>

DirectoryIndex index.php

<IfModule mod_rewrite.c
>
RewriteEngine On
RewriteRule content
/treemenu/?/index_treemenu.php [L]
Rewriterule ^
/var/storage/.* - [L]
Rewriterule ^
/var/[^/]+/storage/.* -[L]
RewriteRule ^
/var/cache/texttoimage/.*- [L]
RewriteRule^
/var/[^/]+/cache/texttoimage/.* - [L]
RewriteRule^
/var/[^/]+/cache/public/.* - [L]
Rewriterule^
/design/[^/]+/(stylesheets|images|javascript)/.* - [L]
Rewriterule ^
/share/icons/.* - [L]
Rewriterule^
/extension/[^/]+/design/[^/]+/(stylesheets|images|flash|javascripts?)/.*- [L]
Rewriterule^
/packages/styles/.+/(stylesheets|images|javascript)/[^/]+/.* - [L]
RewriteRule^
/packages/styles/.+/thumbnail/.* - [L]
RewriteRule ^
/favicon\.ico - [L]
RewriteRule ^
/robots\.txt - [L]
# Uncomment the following lines whenusing popup style debug.
#
RewriteRule^/var/cache/debug\.html.* - [L]
#
RewriteRule^/var/[^/]+/cache/debug\.html.* - [L]
RewriteRule .* /index.php
<
/IfModule>

DocumentRoot
"/var/www/example"
ServerName example.com
ServerAlias example.comchild_one.example.com child_two.example.com child_three.example.comchild_four.example.com
<
/VirtualHost>

 

Note: After modifying the httpd.conffile, remember to restart the apache!

 

 

2. Set the settings of eZ publish

2.1 Create and set the global settings

In the direciton settings/override,create a file “site.ini.append.php”, here is an example ofsettings

代码
<?php /* #?ini charset="utf-8"?

[DatabaseSettings]
DatabaseImplementation
=ezmysqli
Server
=127.0.0.1
Port
=
User
=root
Password
=
Database
=example
Charset
=
Socket
=disabled

[ExtensionSettings]
ActiveExtensions[]
=example
ActiveExtensions[]
=ezie
ActiveExtensions[]
=ezoe
ActiveExtensions[]
=ezodf
ActiveExtensions[]
=zz_developer
ActiveExtensions[]
=ezjscore
ActiveExtensions[]
=ezfind
ActiveExtensions[]
=customsurvey
ActiveExtensions[]
=ezgoogleanalytics
ActiveExtensions[]
=ezscriptmonitor
ActiveExtensions[]
=ezsurvey
ActiveExtensions[]
=recaptcha
ActiveExtensions[]
=swark
ActiveExtensions[]
=ezsiteaccessoperator

[Session]
SessionNameHandler
=custom

[SiteSettings]
SiteName
=example
DefaultAccess
=main_fre
SiteList[]
=main_fre
SiteList[]
=main_eng
SiteList[]
=child_one_fre
SiteList[]
=child_one_eng
SiteList[]
=child_two_fre
SiteList[]
=child_two_eng
SiteList[]
=child_three_fre
SiteList[]
=child_three_eng
SiteList[]
=child_four_fre
SiteList[]
=example_admin

[FileSettings]
VarDir
=var/example

[SiteAccessSettings]
CheckValidity
=false
AvailableSiteAccessList[]
=main_fre
AvailableSiteAccessList[]
=main_eng
AvailableSiteAccessList[]
=child_one_fre
AvailableSiteAccessList[]
=child_one_eng
AvailableSiteAccessList[]
=child_two_fre
AvailableSiteAccessList[]
=child_two_eng
AvailableSiteAccessList[]
=child_three_fre
AvailableSiteAccessList[]
=child_three_eng
AvailableSiteAccessList[]
=child_four_fre
AvailableSiteAccessList[]
=child_four_eng
AvailableSiteAccessList[]
=example_admin
ForceVirtualHost
=true
RemoveSiteAccessIfDefaultAccess
=enabled

RequireUserLogin
=false
RelatedSiteAccessList[]
=epam_fre
RelatedSiteAccessList[]
=epam_eng
RelatedSiteAccessList[]
=pro_fre
RelatedSiteAccessList[]
=pro_eng
RelatedSiteAccessList[]
=public_fre
RelatedSiteAccessList[]
=public_eng
RelatedSiteAccessList[]
=projects_fre
RelatedSiteAccessList[]
=projects_eng
RelatedSiteAccessList[]
=extranet_fre
RelatedSiteAccessList[]
=extranet_eng
RelatedSiteAccessList[]
=epamarne_fre
RelatedSiteAccessList[]
=epamarne_eng
RelatedSiteAccessList[]
=epam_site_admin
ShowHiddenNodes
=false

[DesignSettings]
DesignLocationCache
=disabled

[MailSettings]
Transport
=SMTP
TransportServer
=
TransportUser
=
TransportPassword
=
AdminEmail
=david.li@bysoft.fr
EmailSender
=

[TemplateSettings]
TemplateCache
=disabled
TemplateCompile
=disabled
TemplateOptimization
=disabled
TemplateCompression
=disabled
DevelopmentMode
=enabled

[ContentSettings]
ViewCaching
=disabled
StaticCache
=disabled

[OverrideSettings]
Cache
=disabled

[RegionalSettings]
TranslationCache
=disabled

[RoleSettings]
UserPolicyCache
=disabled
EnableCaching
=false

[RSSSettings]
CacheTime
=0
*/ ?>

 

 

2.2 Create all the sub domainsiteaccess

In the direction settings/siteaccess,webuild 10 folders as

main_fre

main_eng

child_one_fre

child_one_eng

child_two_fre

child_two_eng

child_three_fre

child_three_eng

child_four_fre

child_four_eng

Basicly, under all the folders, thereis a “site.ini.append.php”, the common content of XXX_fre as:

代码
<?php /* #?ini charset="utf-8"?

[SiteSettings]
LoginPage=embedded

[UserSettings]
RegistrationEmail=

[DesignSettings]
SiteDesign=epam
AdditionalSiteDesignList[]=base

[RegionalSettings]
Locale=fre-FR
ContentObjectLocale=fre-FR
SiteLanguageList[]=eng-GB
SiteLanguageList[]=fre-FR
TextTranslation=enabled

[ContentSettings]
TranslationList=eng-GB

[DebugSettings]
DebugOutput=enabled
DebugRedirection=disabled

[TemplateSettings]
Debug=disabled
ShowXHTMLCode=disabled
ShowUsedTemplates=enabled

[DatabaseSettings]
SQLOutput=disabled
*/ ?>

 

Of course, there is another folder“example_admin” which is used for the admin, we don't payattention to it here.

 

2.3 Develop a extension for the developers

Build the zz_developer extension andlocate it under extension/zz_developer, the structure as below:

代码
| | |~zz_developer/
| | | `~settings/
| | | |~siteaccess/
| | | | |~main_eng/
| | | | | `-site.ini.append.php*
| | | | |~main_fre/
| | | | | `-site.ini.append.php*
| | | | |~example_admin/
| | | | | `-site.ini.append.php*
| | | | |~child_one_eng/
| | | | | `-site.ini.append.php*
| | | | |~child_one_fre/
| | | | | `-site.ini.append.php*
| | | | |~child_two_eng/
| | | | | `-site.ini.append.php*
| | | | |~child_two_fre/
| | | | | `-site.ini.append.php*
| | | | |~child_three_eng/
| | | | | `-site.ini.append.php*
| | | | |~child_three_fre/
| | | | | `-site.ini.append.php*
| | | | |~child_four_eng/
| | | | | `-site.ini.append.php*
| | | | |~child_four_fre/
| | | | | `-site.ini.append.php*
| | | `-site.ini.append.php*

 

 

In thezz_developer/site.ini.append.php, we have the code:

代码
<?php /* #?ini charset="utf-8"?

[SiteSettings]
SiteURL=example.com

[MailSettings]
AdminEmail=david.li@bysoft.fr
Transport=sendmail
EmailSender=

[SiteAccessSettings]
MatchOrder=uri;host
HostMatchMapItems[]=example.com;example_fre
HostMatchMapItems[]=child_one.example.com;child_one_fre
HostMatchMapItems[]=child_two.example.com;child_two_fre
HostMatchMapItems[]=child_three.example.com;child_three_fre
HostMatchMapItems[]=child_four.example.com;child_four_fre
*/ ?>

 

In the main_fre/site.ini.append.php andmain_eng/site.ini.append.php, by default, we have nothing in it, butin the child_one_fre/site.ini.append.php,child_one_eng/site.ini.append.php, child_two_fre/site.ini.append.php,child_two_eng/site.ini.append.php,child_three_fre/site.ini.append.php,child_three_eng/site.ini.append.php,child_four_fre/site.ini.append.php,child_four_eng/site.ini.append.php, we have different content.

For example, under thechild_one_XXX/site.ini.append.php, we have the code:

<?php /* #?ini charset="utf-8"?

[SiteSettings]
#child_one sub domain
IndexPage=/content/view/full/70/
RootNodeDepth=2
DefaultPage=/content/view/full/70/
*/ ?>

 

Note: Remember to change the node id toyour sub domain.

 

 

Ok, now we have builded the multi subdomain with multi language yet.

 

 

 

posted @ 2010-11-10 11:29  DavidHHuan  阅读(827)  评论(0编辑  收藏  举报