Running Vbulletin on Google App Engine

vbimport

#1

For our Myce members - This post is to inform fellow Vbulletin owners with information on how to run Vbulletin on Google App Engine. I posted it to help others with setting it up

I’ve been dreaming about being able to run our website from Google App Engine. This should bring benefits as best possible performance, scalability, and easy management of the site.

While we’re not that far, I’ve been making an attempt to get Vbulletin running on Google App Egine.

Note: This work in progress, things most likely can be done a lot better. I’m testing and what works I’ll leave as it is. Feedback is much appreciated, so I can remove things that aren’t required.

We run both Wordpress and Vbulletin. Google already provides a way on how to run Wordpress on App Engine and I’ve got this working.

I’m working with Vbulletin 3.8.8 beta 3

To run Vbulletin you can use parts of the Wordpress setup. Create the database, the user and add this to your app.yaml (I assume you use vbulletin instead of wordpress)

  • url: /install/(.+).php
    script: vbulletin/install/\1.php
  • url: /admincp/(.+).php
    script: vbulletin/admincp/\1.php
  • url: /(.+).php
    script: vbulletin/\1.php

Then point your browser to your local setup’s install.php.

Usually:

localhost:port/install/install.php

Since App Engine only has PHP 5.4 and Vbulletin 3.8.7 seems to have an issue with that you’ll need to make the following changes:

Add this at the top of your /includes/config.php

@ini_set('display_errors', false);  

Change this in your /includes/class_core.php

$this->shutdown = vB_Shutdown::instance();  

to

$this->shutdown =@ vB_Shutdown::instance();  

The latter suppresses the error.

Now start the installation process and you should have it running on your local App Engine SDK installation.

Change in /includes/functions_newpost.php

On line 205 change the preg_replace function to this

return preg_replace_callback(
		'#(^|\[/(' . $skiptaglist . ')\])(.*(\[(' . $skiptaglist . ')|$))#',                
                'convert_url_to_bbcode_callback',                
                $messagetext
	);

Change below:

function convert_url_to_bbcode_callback($messagetext, $prepend) {

to (and add the code below it)

function convert_url_to_bbcode_callback($matches)
{
 
    $messagetext = $matches[1];
    $prepend = $matches[3];

in /includes/functions.php

On line 3904 change:

	$return = preg_replace(
		'#%u([0-9A-F]{1,4})#ie',
		"convert_unicode_char_to_charset(hexdec('\\1'), \$stylevar['charset'])",
		$text
	);

to:

$return = preg_replace_callback(
		'#%u([0-9A-F]{1,4})#',
		"convert_unicode_char_to_charset",
		$text
	);

Change the function on line 3942 to

function convert_unicode_char_to_charset($matches) {
    
        global $stylevar;
    
        $unicode_int = $matches[1];               
        $charset = $stylevar['charset'];

This should get you up and running. Without the modifications above, your posts will be empty and will remain empty when you edit them.