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']) ||