Hey there,

I have tried to accomplish an update using the installation directory
taken from the 3.0.4 tarball at phpbb.com.
A tough job !

Here's what I did:

aptitude install phpbb3
- apache2
- dbconfig: no

Add the patches from
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=437836 to enable
multi-board support that I use (be careful: the patches do not all work,
see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=437836#92)

I use auto_prepend_file for my PHP CGIs:

        <?php

        // phpbb2
        if (strstr($_SERVER["SCRIPT_FILENAME"], "/usr/share/phpbb2/")) {
        $dbms = 'mysql';
        $dbhost = 'localhost';
        $table_prefix = 'phpbb_';

        $dbname = 'web15_db1';
        $dbuser = 'web15_u1';
        $dbpasswd = 'pass';

        define('PHPBB_INSTALLED', true);
        }

        // phpbb3
        if (strstr($_SERVER["SCRIPT_FILENAME"], "/usr/share/phpbb3/")) {
        $dbms = 'mysql';
        $dbhost = 'localhost';
        $table_prefix = 'phpbb_';

        $dbname = 'web15db2';
        $dbuser = 'web15u2';
        $dbpasswd = 'pass';

        //phpbb3
        $acm_type = 'file'; // reqd at least in update script
        $url_forum = 'xxx.com'; // phpbb3 debian

        define('PHPBB_INSTALLED', true);
        }

Note that $acm_type and $url_forum need to be added for the new version,
wherever you define them.
Note that you can use another $table_prefix with the SAME database (I
only did it differently because for testing it was more convenient).

Now I populate the db:

mysql -u web15u2 -p web15db2 <
/usr/share/dbconfig-common/data/phpbb3/install/mysql

If you use another $table_prefix you would have to change that file
first! (find/replace)

Now get the install folder from the official tarball and put it into
/usr/share/phpbb3/www/install/

Patch the installer using the attached patch (==> installer.patch), as
the original one does not work. I wonder how anyone was ever able to
successfully use that. Maybe with register_globals=on ?

Before running the updater/installer I change permissions of several
folders.
I would suggest treating these like a temp directory, just letting
www-data inside is out since the days where we started using php as
fastcgi and such.
- chmod 1753 /var/cache/phpbb3/cache/ /var/lib/phpbb3/avatars/
/var/lib/phpbb3/avatars/gallery/ /var/lib/phpbb3/avatars/upload/
/usr/share/phpbb3/www/images/ranks/
/usr/share/phpbb3/www/images/smilies/ (owner can stay root)
(Note to maintainer: we should discuss all of this -- maybe also create
further symlinks from /usr/share/phpbb3/www/images/{ranks,smilies}
somewhere into /var/lib/phpbb3/ ??)

When using open_basedir it obviously needs to allow access to all those
directories of both the old and new installations:
[php.ini] open_basedir =
${open_basedir}:/usr/share/phpbb2/:/var/lib/phpbb2/:/var/cache/phpbb3/:/var/lib/phpbb3/

Run the updater (goto your.site/install/), follow the instructions (give
it the data to your OLD install and use Board path: ../../phpbb2/site/)

There may be some

functions_convert.php [ 2294 ]:
Could not copy file ./../../../phpbb2/site/images/smiles/icon_arrow.gif
 to ./../images/smilies/icon_arrow.gif
Please check that the target directory exists and is writable by the
webserver.

in one of the steps. I wouldn't know why. I ignored it as I am now tired.

Goto the forum, login as one of the previous administrative users,
create a search index as directed and remove the install folder. The
install will then be available.

Cheers!

JM
diff -ru phpBB3/install/install_convert.php install.phpbb3/install_convert.php
--- phpBB3/install/install_convert.php  2008-12-12 16:20:38.000000000 +0100
+++ install.phpbb3/install_convert.php  2010-02-14 20:07:17.000000000 +0100
@@ -92,6 +92,7 @@
        {
                global $lang, $template, $phpbb_root_path, $phpEx, $cache, 
$config, $language, $table_prefix;
                global $convert;
+                               global $dbms, $dbname, $dbuser, $dbpasswd, 
$dbhost, $table_prefix;
 
                $this->tpl_name = 'install_convert';
                $this->mode = $mode;
@@ -337,6 +338,7 @@
        function get_convert_settings($sub)
        {
                global $lang, $language, $template, $db, $phpbb_root_path, 
$phpEx, $config, $cache;
+                               global $dbms, $dbname, $dbuser, $dbpasswd, 
$dbhost, $table_prefix;
 
                require($phpbb_root_path . 'config.' . $phpEx);
                require($phpbb_root_path . 'includes/constants.' . $phpEx);
@@ -586,6 +588,7 @@
        {
                global $template, $user, $phpbb_root_path, $phpEx, $db, $lang, 
$config, $cache;
                global $convert, $convert_row, $message_parser, $skip_rows, 
$language;
+                               global $dbms, $dbname, $dbuser, $dbpasswd, 
$dbhost, $table_prefix;
 
                require($phpbb_root_path . 'config.' . $phpEx);
                require($phpbb_root_path . 'includes/constants.' . $phpEx);
@@ -635,7 +638,7 @@
                if (empty($convert->options) || empty($convert->options['tag']) 
||
                        !isset($convert->options['dbms']) ||
                        !isset($convert->options['dbhost']) ||
-                       !isset($convert->options['dbport']) ||
+                   //                  !isset($convert->options['dbport']) ||
                        !isset($convert->options['dbuser']) ||
                        !isset($convert->options['dbpasswd']) ||
                        !isset($convert->options['dbname']) ||

Reply via email to