Recent Topics

1 Jun 06, 2009 18:10    

My b2evolution Version: 2.4.7 - 3.xb

I successfully installed b2evolution versions 2.4.7 and 3.x-beta into an Java-based application server connected successfully to an MySQL DB. I used [url=http://quercus.caucho.com/]Caucho's Quercus[/url] Java PHP enabler module, sitting on an Java application server, instead of the regular PHP modules for GNU/Linux.

It took some considerable effort but its cool and possibly more secure due to the Java runtime foundation. Notwithstanding, I am experiencing some issues that I suspect are due to char encoding and/or related aspects.

For instance, selecting Dashboard => Global, the entries look as below:

string::1: Warning: required argument missing [disp_coll_name] string::1: Warning: required argument missing [disp_coll_name]

Blog A Title admin
http://localhost:8080/quercus-3.2.1/blog

/blog1.php English (US) string::1: Warning: required argument missing [disp_actions] PropertiesEditDel

Additionally, other sort of errors appear instead of displaying a regular view of a blog, for example:

Additional information about this error:
Requested Blog from T_blogs without ID!

For those of you who have come across the similar bare strings during the development of b2evolution testing, I would appreciate some insight on possible resolutions.

I am simple attempting to enable b2evolution on more platforms.

2 Jun 07, 2009 23:35

Well, are there any line numbers and file names on the error messages?
Any chance for a public link?

3 Jun 08, 2009 00:15

Tblue wrote:

Well, are there any line numbers and file names on the error messages?
Any chance for a public link?

At the moment I am testing / evaluating in my local machine. However, after some further testing with two different no-cost application servers, [url=http://www-01.ibm.com/software/webservers/appserv/community/]IBM WebSphere Application Server Community Edition (WASCE)[/url] v2.1.1.2 and its equivalent [url=http://geronimo.apache.org/]Apache Geronimo[/url] v2.1.4 --in addition to [url=http://www.caucho.com/]Caucho's own Resin[/url] 3.2.1, I decided to file a bug report due to an still unimplemented [url=http://bugs.caucho.com/view.php?id=3551]function in Quercus[/url]:
[show] com.caucho.quercus.QuercusExecutionException: com.caucho.quercus.UnimplementedException
`mb_detect_encoding' has not been implemented. A more recent version of
Quercus may be available at http://www.caucho.com/download Requests for
unimplemented features can be entered in the bugtrack http://bugs.caucho.com

com.caucho.quercus.UnimplementedException: `mb_detect_encoding' has not
been implemented. A more recent version of Quercus may be available at
http://www.caucho.com/download Requests for unimplemented features can
be entered in the bugtrack http://bugs.caucho.com

At this particular instance, I assume that the ISO-8859-1 / UTF-8 encoding may be the issue since the error above ocurs at the very first log-in instance by the administrator.

Here is a link to an snapshot of the very first instance of b2evo 2.4.7 [url=http://www.chingonazo.com/readonly/resin-3.1.9_06-07-2009.png]entry into the back office.[/url]

I appreciate your interest, Tblue.

:idea: EDIT=> and here is another screenshot example from b2evo 3.xbeta when user selects to [url=http://www.chingonazo.com/readonly/resin-3.2.1_06-07-2009.png]view the blog from the upper right of the b2evo panel[/url].

4 Jun 08, 2009 17:01

Could you please set

$debug = 1;


in conf/_advanced.php? This will cause b2evo to show backtraces on errors (which are useful for us). Thanks!

5 Jun 08, 2009 19:56

Can you replicate the error by going admin > dashboard > [global sub tab] ?

¥

6 Jun 14, 2009 15:17

Tblue wrote:

Could you please set

$debug = 1;


in conf/_advanced.php? This will cause b2evo to show backtraces on errors (which are useful for us). Thanks!

Greetings, Tblue-

Well here is an rather [url=http://www.chingonazo.com/readonly//wasce_Caucho-Quercus_b2evo3.x-beta_backoffice-Dashboard-Global.png]long snapshot from the outcome[/url] (created with [url=https://addons.mozilla.org/en-US/firefox/addon/1146]Firefox ScreenGrab![/url]) --after setting the variable as you suggested above-- in b2evo3.x-beta conf/_advanced.php

I have developed an extensive blog entry for the procedure to follow for the b2evolution installation into IBM WASCE or Apache Geronimo and Caucho's Quercus Java PHP enabler module/servlet --if you or anyone else cares to give it a try.

¥åßßå wrote:

Can you replicate the error by going admin > dashboard > [global sub tab] ?

¥

The outcome is the same whichever path an user takes to arrive at the [global sub tab]. Please, see snapshot referenced to in this reply as well as previous ones.

Best regards.

7 Jun 14, 2009 16:01

Thanks for your effort. Well, the $debug setting was meant to give you/us/me more debugging information on fatal b2evolution errors (like in your "display regular view of blog" issue). ;)

Concerning the global blog list issue, I think I have an idea why it does not work... Well, more like *where* it does not work. ;) So we need to do some remote debugging; could you please change line 995 in inc/_core/ui/results/_results.class.php from

#pre_dump( '{'.$output.'}' );


to

pre_dump( '{'.$output.'}' );


(that means, uncomment it by removing the hash) and post a new screenshot of your global blog list? Thanks!

8 Jun 15, 2009 13:08

Tblue wrote:

Thanks for your effort. Well, the $debug setting was meant to give you/us/me more debugging information on fatal b2evolution errors (like in your "display regular view of blog" issue). ;)

Well ...er, yes, of course! :lol:

Tblue wrote:

Concerning the global blog list issue, I think I have an idea why it does not work... Well, more like *where* it does not work. ;) So we need to do some remote debugging; could you please change line 995 in inc/_core/ui/results/_results.class.php from

#pre_dump( '{'.$output.'}' );


to

pre_dump( '{'.$output.'}' );


(that means, uncomment it by removing the hash) and post a new screenshot of your global blog list? Thanks!

Done. And here is the [url=http://www.chingonazo.com/readonly/wasce_Caucho-Quercus_b2evo3.x-beta_backoffice-Dashboard-Global_06-15-2009.png]output screen shot[/url] with the uncommented directive.

I will be attempting to connect the Apache2 web server to WASCE/Geronimo by means of the mod_jk module later in the week (I still have to build it). This way I may be able to get further insight on this troubling issue.

Best regards, Tblue.

PS ...and here is a default [url=http://www.chingonazo.com/readonly/blog-view_backtrace.png]blog view backtrace screenshot[/url].

9 Jun 15, 2009 13:46

Altought not 100%, it's still great know that b2evolution (almost) works on quercus.

10 Jun 15, 2009 14:22

Thanks, nanahuatl.

Default blog view: Weird, it seems like no arguments get passed to a few methods/functions?! Or maybe the backtrace doesn't work properly with Quercus? I don't know.

Global blog list: Could you please try to change line 1375 in inc/_core/ui/results/_results.class.php from:

$content = preg_replace( '!\# (\w+) \#!ix', "\$row->$1", $content );


to:

$content = preg_replace( '!\\# (\w+) \\#!ix', "\$row->$1", $content );


I'm not sure if this will help, but I've no other ideas...

Tblue

11 Jun 15, 2009 14:42

Just for kicks, inc/collections/views/_coll_list.view.php approx 102, try changing it to look like this and see if one of your errors meanders off

$Results->cols[] = array(
						'th' => T_('Name'),
						'order' => 'blog_shortname',
						'td' => '<strong>%disp_coll_name( "#blog_shortname#", #blog_ID# )%</strong>',
					);

¥

12 Jun 16, 2009 13:12

Tblue wrote:

Thanks, nanahuatl.

Default blog view: Weird, it seems like no arguments get passed to a few methods/functions?! Or maybe the backtrace doesn't work properly with Quercus? I don't know.

Well, the thing that bugs me is that "they" assert that WP (among certain other PHP based apps) works with Quercus --I still have to verify that myself.

Tblue wrote:

Global blog list: Could you please try to change line 1375 in inc/_core/ui/results/_results.class.php from:

$content = preg_replace( '!\# (\w+) \#!ix', "\$row->$1", $content );


to:

$content = preg_replace( '!\\# (\w+) \\#!ix', "\$row->$1", $content );


I'm not sure if this will help, but I've no other ideas...

Tblue

Here is the [url=http://www.chingonazo.com/readonly/wasce_Caucho-Quercus_b2evo3.x-beta_backoffice-Dashboard-Global_06-16-2009.png]screen shot reflecting your last idea[/url](s)/help, Tblue. Needless to say, I appreciate your interest and suggestions.

¥åßßå wrote:

Just for kicks, inc/collections/views/_coll_list.view.php approx 102, try changing it to look like this and see if one of your errors meanders off

$Results->cols[] = array(
						'th' => T_('Name'),
						'order' => 'blog_shortname',
						'td' => '<strong>%disp_coll_name( "#blog_shortname#", #blog_ID# )%</strong>',
					);

¥

...and here is Dashboard=>Global [url=http://www.chingonazo.com/readonly/wasce_Caucho-Quercus_b2evo3.x-beta_backoffice-Dashboard-Global_06-16-2009_kicks.png] screenshot "just for kicks"[/url] reflecting the final result of your suggestion aggregated to those of Tblue's.

Thanks, ¥åßßå.

PS => I have built the mod_jk module and enabled WASCE/Geronimo Java application server to make connections to Apache2 on behalf of Quercus PHP servlet and ...sigh, still no success.

This is an [url=http://www.chingonazo.com/readonly/wasce_Caucho-Quercus_b2evo3.x-beta_backoffice-Dashboard-Global_06-16-2009_Apache2.png]snapshot of the Default blog[/url] which is probably more consistent now (with Apache) to what would probably be expected of an backtrace.

13 Jun 16, 2009 18:20

Hi nanahuatl! I tried quercus and got only a "/home/walter/devel/resin/resin-3.1.9/php/teste/b2evolution/blogs/inc/_main.inc.php:139: Fatal Error: 'Log_noop' is an unknown class name. " error.

There's some place where I can find more information about how to install something on quercus?

I followed http://www.caucho.com/resin-3.0/quercus/index.xtp and just added my b2evolution folder inside quercus, adding in the xml:

<web-app id="/teste" root-directory="${resin.home}/php/teste"/>

(being teste my b2evolution directory.)

If i could run this on quercus, I could take a look on the problems that you said.

14 Jun 16, 2009 18:21

Are you running quercus on geronimo? I'm just running the quercus internal webserver.

15 Jun 17, 2009 14:54

Walter wrote:

Hi nanahuatl! I tried quercus and got only a "/home/walter/devel/resin/resin-3.1.9/php/teste/b2evolution/blogs/inc/_main.inc.php:139: Fatal Error: 'Log_noop' is an unknown class name. " error.

There's some place where I can find more information about how to install something on quercus?

Well the information is all spread out throughout the Web. For instance, look at this [url=http://wiki.caucho.com/Quercus:_Wordpress]link at the Caucho's wiki[/url]; notwithstanding, if you read carefully you can notice an contradiction by the poster ;) .

Walter wrote:

I followed http://www.caucho.com/resin-3.0/quercus/index.xtp and just added my b2evolution folder inside quercus, adding in the xml:

<web-app id="/teste" root-directory="${resin.home}/php/teste"/>

(being teste my b2evolution directory.)

If i could run this on quercus, I could take a look on the problems that you said.

First, Walter, I am glad that you have that spark of curiosity to enable b2evolution on other platforms. Second, do not add any XML directives at this moment --since you are in the figuring out phase of Resin-- because those only introduce superfluous results of the kind you mentioned.

If you were to download, say (the latest open source) Resin 3.2.1, and subsequently expanded the compressed archive, the directory path of interest for us would be:

resin-3.2.1/webapps/ROOT

This is the root directory for your web applications like b2evolution's blogs subdirectory. The HTTP connector that handles requests from browsers will show whatever resource(s) you have in there.

Now analyzing further the resources available there, you should note:

resin-3.2.1/webapps/ROOT/WEB-INF

At that node, create an lib subdirectory to hold the mysql-connector-java-x.y.z-bin.jar file that, if you read the resource link above or my blog entry, you know that it can be downloaded from [url=http://dev.mysql.com/downloads/connector/j/5.1.html]MySQL's Download Connector/J 5.1[/url].

Hence, the above path should now look like:

resin-3.2.1/webapps/ROOT/WEB-INF/lib/mysql-connector-java-x.y.z-bin.jar

Assuming, for an specific instance, that you have placed your b2evolution blogs standard as follows:

resin-3.2.1/webapps/ROOT/blogs

And using the Sun Microsystems JDK (I tested builds 1.6.0_07 & 1.6.0_14) changing your file system location to start Resin JAR server at:

resin-3.2.1/lib/resin.jar

You would access your be2evolution from your browser at:

http://localhost:8080/blogs/[install]

A couple of notes: The IBM runtime that comes with the IBM Java SDK does not appear to satisfy Resin; hence, use the Sun JDK.

Do not try to place the content of blogs subdirectory directly onto its parent ROOT directory --you will get ...er, weird errors like the one you reported. And this the reason that I suggested the structure above (and reiterated below):

resin-3.2.1/webapps/ROOT/blogs

After you have this basic setup "working" --that is, you have installed b2evolution-- then you may begin experimenting with XML or whatever parameter modifications you desire.

Good luck!

16 Jun 17, 2009 15:34

Walter wrote:

Are you running quercus on geronimo?

Indeed, I am running Quercus on IBM WASCE/Apache Geronimo. Java application servers like those are used by small and large business organizations; thus, enabling b2evolution to run on them improves the prospects of b2evolution adoption.

Walter wrote:

I'm just running the quercus internal webserver.

Well, I think you mean the HTTP connector bundled by default with the Resin, WASCE/Geronimo, and other, Java application server platform. Quercus is only the module/servlet enabling the PHP support on those Java platforms.

As an aside, the one that I enabled with mod_jk to access an external web server like Apache is referred to as web server connector. I am not trying to be a pedant; however, understanding early the difference will shed light on performance variations as you (hopefully) continue your experimentation.

Regards..

17 Jun 17, 2009 18:01

Thanks!
I got b2evolution running on quercus. I had little experience with java, and your tips nanahuatl were of great help.

And now, the debugging!

I have discovered the reason for this screen: http://www.chingonazo.com/readonly/resin-3.2.1_06-07-2009.png.

The problem lies on our db abstraction, in function get_var. It uses PHP funcition get_object_vars, and in C-PHP it returns a array in teh order that the vars were declared in the class, but in quercus it returns on a unpecified order.

By example, running in plain PHP, it returns:


rray
(
    [blog_ID] => 1
    [blog_shortname] => Blog A
    [blog_name] => Blog A Title
    [blog_owner_user_ID] => 1
    [blog_advanced_perms] => 0
    [blog_tagline] => Tagline for Blog A
    [blog_description] => 
    [blog_longdesc] => This is the long description for the blog named 'Blog A'. 
    [blog_locale] => en-US
    [blog_access_type] => relative
    [blog_siteurl] => blog1.php
    [blog_urlname] => a
    [blog_notes] => 
    [blog_keywords] => 
    [blog_allowcomments] => post_by_post
    [blog_allowtrackbacks] => 0
    [blog_allowblogcss] => 1
    [blog_allowusercss] => 1
    [blog_skin_ID] => 1
    [blog_in_bloglist] => 1
    [blog_links_blog_ID] => 
    [blog_media_location] => default
    [blog_media_subdir] => 
    [blog_media_fullpath] => 
    [blog_media_url] => 
    [blog_UID] => 
)


But in quercus:


Array
(
    [blog_media_subdir] => 
    [blog_media_location] => default
    [blog_allowtrackbacks] => 0
    [blog_keywords] => 
    [blog_siteurl] => blog1.php
    [blog_notes] => 
    [blog_allowblogcss] => 1
    [blog_advanced_perms] => 0
    [blog_ID] => 1
    [blog_media_fullpath] => 
    [blog_longdesc] => This is the long description for the blog named 'Blog A'. 
    [blog_links_blog_ID] => 
    [blog_locale] => en-US
    [blog_skin_ID] => 1
    [blog_name] => Blog A Title
    [blog_shortname] => Blog A
    [blog_UID] => 
    [blog_media_url] => 
    [blog_access_type] => relative
    [blog_urlname] => a
    [blog_description] => 
    [blog_tagline] => Tagline for Blog A
    [blog_allowcomments] => post_by_post
    [blog_owner_user_ID] => 1
    [blog_in_bloglist] => 1
    [blog_allowusercss] => 1
)

all the same variables, in a different order. (They should map to a HashMap on java, or something were the order doesn't matter, sorry by my fault on the java field). After that, it tries to load the blogs from cache using blog Id on index 0, but index 0 on quercus is blog_media_subdir. I've take a look on wordpress, and as it uses the same DB abstraction from b2evo, it should be a miracle that it works ;)

Trying to think about. Maybe quercus 4.x solved that? Maybe this could be unspecified by the language? (As I remember, Python got some problems on dict order when ported to other plataforms).

Still looking the other bugs!

19 Jun 18, 2009 12:59

Walter wrote:

Solved in quercus 4.0 http://bugs.caucho.com/view.php?id=3253

...humm, I was expecting an exclamation of success from you, Walter. Nevertheless, in the absence of such --and assuming that Caucho might label as Quercus 4 the current module/servlet embeded in the Resin 4 development snapshot-- I downloaded resin-4.0.0.tar.gz

There are improvements, evidently. For instance selecting Files, from b2evo 3.x-beta second bar, does not bomb into an exception any more; similarly, selecting Skin Settings tab for an given blog does not cause an exception.

Notwithstanding, the issue that you referenced in your prior post continues unabated. Accordingly, the version of Quercus in Resin 4 does not display the blogs, list them, or [url=http://www.chingonazo.com/readonly/resin-4_Antispam_tab.png]display the Antispam blacklist[/url] from the Antispam tab under the Tools menu.

The main issue initially reported continues to be the obstacle despite the improvements to Quercus development release of 05-05-2009.

20 Jun 18, 2009 14:03

I will download quercus 4 and make some tests today.

21 Jun 18, 2009 14:32

Lets try another one ( inc/_core/ui/results/_results.class.php approx 1366 change the last couple of lines )

	function parse_col_content( $content )
	{
		// Make variable substitution for STRINGS:
		$content = preg_replace( '#\$ (\w+) \$#ix', "'.format_to_output(\$row->$1).'", $content );
		// Make variable substitution for URL STRINGS:
		$content = preg_replace( '#\£ (\w+) \£#ix', "'.format_to_output(\$row->$1, 'urlencoded').'", $content );
		// Make variable substitution for escaped strings:
		$content = preg_replace( '#² (\w+) ²#ix', "'.htmlentities(\$row->$1).'", $content );
		// Make variable substitution for RAWS:
//		$content = preg_replace( '!\# (\w+) \#!ix', "\$row->$1", $content );
		$content = preg_replace( '!\#(\w+)\#!ix', "\$row->$1", $content );

¥

*edit*
If that doesn't work then try changing the last regex to :

//		$content = preg_replace( '!\# (\w+) \#!ix', "\$row->$1", $content );
//		$content = preg_replace( '!\#(\w+)\#!ix', "\$row->$1", $content );
		$content = preg_replace( '#\#(\w+)\##ix', "\$row->$1", $content );

22 Jun 18, 2009 18:04

Hi nanahuatl. Have done some tests with Resin 4.0. What follows:

get_object_vars is still broken on Resin 4.0, and had still some problems with provate attributes, as I reported on http://bugs.caucho.com/view.php?id=3565

So, getting the public blogs working with our current database layer, that depends upon get_obejct_vars will always fail.

The latest hacks suggested by yabs cure the admin bugs.

There's another 'brand' of b2evolution, whissip, that has some different code on db layer that don't depends upon get_object_vars. The public view of the blogs works on whissip (I had maybe some cache bugs, some nullpointerexception, after some F5 everything went fine).

23 Jun 19, 2009 12:27

Walter wrote:

Hi nanahuatl. Have done some tests with Resin 4.0. What follows:

get_object_vars is still broken on Resin 4.0, and had still some problems with provate attributes, as I reported on http://bugs.caucho.com/view.php?id=3565

Given the fact that Caucho aims to offer an competitive alternative with the Quercus PHP module/servlet, your focused bug report to Caucho is very important.

I could not have provided such a specific bug report, hence thanks for taking the time to play with Quercus, Walter.

I also want to thank Tblue and Yabba for their most helpful suggestions and/or input.

[...]

Walter wrote:

There's another 'brand' of b2evolution, whissip, that has some different code on db layer that don't depends upon get_object_vars. The public view of the blogs works on whissip (I had maybe some cache bugs, some nullpointerexception, after some F5 everything went fine).

Well thanks for letting me know about whissip --I was unaware of its existence-- possibly I will give it a spin sometime down the road. Notwithstanding, Walter, my main interest was b2evolution as it becomes more secure and robust with each successive release. I just hope that Caucho fixes the issue that you reported before the general availability (i.e., stable) version of Quercus 4.

Best regards and once again thanks to all.


Form is loading...