Bad INI cache generated in multisite configuration eZPublish 4.2.0

Author Message

Mathieu ROUSSELLE

Thursday 26 November 2009 1:40:51 am

I have setup 3 siteaccess on a eZPublish 4.2.0 base :

  • dev1
  • dev2
  • admin_dev

I am not able to access the 3 sites simultaneously, the INI cache generated by dev1 doesn't works for dev2 and admin_dev. The problem is the same with the INI cache generated by dev2 or by admin_dev.

The site.ini.append.php are configured to use :

  • ezwebin design/extension for dev1 and dev2
  • admin for admin_dev

They are accessed by host/uri (with the corresponding virtualhost configuration)

The host system is Solaris 10 configured with UTF-8 charset, Apache 2.2.14, PHP 5.2.11 and eZPublish 4.2.0 running on an Oracle 10g database.

The 2 following procedures were formerly used and succeeded in making the 3 siteaccess work but they do not anymore :

1. Start by the admin_dev site :

  • rm the content of var/cache and var/ezwbin_site
  • connect to the admin_dev url ==> OK
  • login as an administrator ==> OK but the top menu is replaced by a serie of ????1???????????????????
  • clear all the cache (with the menu on the right) ==> OK and the top menu is back
  • connect to the url of dev1 and dev2 ==> OK

2. Start by the dev1 or dev2 site :

  • rm the content of var/cache and var/ezwbin_site
  • connect to dev1 or dev2 url ==> OK
  • connect to admin_dev url ==> OK
  • login as an administrator ==> OK

Now thoses solutions fail, I am able to display (after cleaning var/cache and var/ezwebin_site) only dev1 or dev2 or admin_dev.

I have the following trace in the error log when accessing a second siteaccess :

[ Nov 26 2009 08:54:05 ] [192.168.1.247] eZINI:
Undefined variable: 'LogDir' in group 'FileSettings' in site.ini
[ Nov 26 2009 08:54:05 ] [192.168.1.247] eZINI:
Undefined variable: 'LogFilePermissions' in group 'FileSettings' in site.ini

In the Apache error_log :

PHP Fatal error: Call to a member function processFile() on a non-object in /export/home/mrs/products/apache/htdocs/ezpublish/lib/ezutils/classes/ezexpiryhandler.php on line 58

It seems that eZPublish is unable to read the ini file and then is unable to load the expiry.php file.

Gaetano Giunta

Thursday 26 November 2009 3:26:43 am

Your comments about the procuderes used to make the interafces work make me think you have your config messed up from the beginning - everything should work out-of-the-box!

If the 3 siteaccesses are using the same db, they should use the same vardir too. Are you sure that is done correctly?

Last but not least: are you in an ez-cluster setup?

Principal Consultant International Business
Member of the Community Project Board

Mathieu ROUSSELLE

Thursday 26 November 2009 4:32:43 am

Thank you for your feedback,

As you mentionned, everything works out of the box on a linux/mysql platform (our first test).

On the Solaris/Oracle one, the manual installation procedure provided with ezoracle extension lead us to the problem described in the first resolution (???1????????? in the admin interface). I think this problem is linked with encoding issue.

Indeed, the 3 siteaccesses are using the same database and the same vardir (var/ezwebin_site), I am sure it is done correctly because when I access individually dev1, dev2 or admin_dev : var/ezwebin_site is created each time.

To answer your last question, the configuration is not an ez-cluster one, the server is single-one.

Mathieu ROUSSELLE

Thursday 26 November 2009 10:33:31 am

Partially resolved : The procedure 2 is available again.

The problem was not linked with encoding but with a bug in the RSS Feeds in ezwebin.

If you remove all the RSS export, the RSS feed is still present in the header.

When I clear the cache with the above method and access the site with Firefox, the rss url is call automatically and for unknown reason this renders other sites INI cache buggy.

Notice : the behavior of IE 8 is diferent and I was able to use procedure 2 with IE.

I have solved temporarily the problem by removing RSS link generation in link.tpl template.

{if and( is_set($pagedesign), $pagedesign.data_map.rss_feed.has_content )}
<link rel="Alternate" type="application/rss+xml" title="RSS" href="{$pagedesign.data_map.rss_feed.data_text|ezurl(no)}" />
{/if}

Gaetano Giunta

Thursday 26 November 2009 11:27:21 am

Good to hear it works now.

Can you file a bug about

- the rss link being present when all feeds have been removed

- this generating problems with the ini cache?

Principal Consultant International Business
Member of the Community Project Board

Mathieu ROUSSELLE

Friday 27 November 2009 12:21:42 am

It is already done, the bug reference is http://issues.ez.no/IssueView.php?Id=15889&activeItem=1

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.