XAMPP-1.8.3上部署老的mediawiki-1.21.2遇到错误

来源:互联网 发布:java项目怎么打包上线 编辑:程序博客网 时间:2024/05/22 06:53
F:\repo\mediawiki-1.21.2>c:\xampp-1.8.3\php\php maintenance/update.phpMediaWiki 1.21.2 UpdaterGoing to run database updates for fnstwikiDepending on the size of your database this may take a while!Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0Turning off Content Handler DB fields for this part of upgrade....ipblocks table does not exist, skipping new field patch....ipblocks table does not exist, skipping new field patch.Creating interwiki table ...done.Adding default interwiki definitions ...done.Set $wgShowExceptionDetails = true; in LocalSettings.php to show detailed debugging information.

然后遇到了错误:

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in F:\repo\mediawiki-1.21.2\includes\MagicWord.php on line 876Warning: Invalid argument supplied for foreach() in F:\repo\mediawiki-1.21.2\includes\MagicWord.php on line 877

感觉应该是PHP升级之后API的不兼容导致。

这里:

https://www.mediawiki.org/wiki/Topic:Rz2zo0m88rrxqrfn

然后是这里:

https://gerrit.wikimedia.org/r/#/c/107259/1/includes/MagicWord.php

修改之后:

    /**     * Get the base regex     */    function getBaseRegex() {        if ( is_null( $this->baseRegex ) ) {            $this->baseRegex = array( 0 => '', 1 => '' );            foreach ( $this->names as $name ) {                $magic = MagicWord::get( $name );                $case = intval( $magic->isCaseSensitive() );                foreach ( $magic->getSynonyms() as $i => $syn ) {                    // Group name must start with a non-digit in PCRE 8.34+                    $it = strtr( $i, '0123456789', 'abcdefghij' );                    $group = "(?P<{$it}_{$name}>" . preg_quote( $syn, '/' ) . ')';                    if ( $this->baseRegex[$case] === '' ) {                        $this->baseRegex[$case] = $group;                    } else {                        $this->baseRegex[$case] .= '|' . $group;                    }                }            }        }        return $this->baseRegex;    }

但是还是不行,见鬼了

好吧,把数据库直接升级到mediawiki-1.23.3看看:

F:\repo\mediawiki-1.23.3>c:\xampp-1.8.3\php\php maintenance/update.phpMediaWiki 1.23.3 UpdaterGoing to run database updates for fnstwiki-mwDepending on the size of your database this may take a while!Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0Turning off Content Handler DB fields for this part of upgrade....ipblocks table does not exist, skipping new field patch....ipblocks table does not exist, skipping new field patch.Creating interwiki table ...done.Adding default interwiki definitions ...done.Set $wgShowExceptionDetails = true; in LocalSettings.php to show detailed debugging information.Notice: Uncommitted DB writes (transaction from DatabaseUpdater::doUpdates). in F:\repo\mediawiki-1.23.3\includes\db\Database.php on line 4147
结果还是不行:

A database query error has occurred. This may indicate a bug in the software.

看看怎么回事:

$wgDBprefix = "mw_"; //是这里吗?不像

重新运行更新脚本:

F:\repo\mediawiki-1.23.3>c:\xampp-1.8.3\php\php maintenance/update.phpMediaWiki 1.23.3 UpdaterGoing to run database updates for fnstwiki-mw_Depending on the size of your database this may take a while!Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0Turning off Content Handler DB fields for this part of upgrade....have ipb_id field in ipblocks table....have ipb_expiry field in ipblocks table....already have interwiki table...indexes seem up to 20031107 standards....hitcounter table already exists....have rc_type field in recentchanges table....index new_name_timestamp already set on recentchanges table....have user_real_name field in user table....querycache table already exists....objectcache table already exists....categorylinks table already exists....have pagelinks; skipping old links table updates...il_from OK...have rc_ip field in recentchanges table....index PRIMARY already set on image table....have rc_id field in recentchanges table....have rc_patrolled field in recentchanges table....logging table already exists....have user_token field in user table....have wl_notificationtimestamp field in watchlist table....watchlist talk page rows already present....user table does not contain user_emailauthenticationtimestamp field....page table already exists....have log_params field in logging table....logging table has correct log_title encoding....have ar_rev_id field in archive table....have page_len field in page table....revision table does not contain inverse_timestamp field....have rev_text_id field in revision table....have rev_deleted field in revision table....have img_width field in image table....have img_metadata field in image table....have user_email_token field in user table....have ar_text_id field in archive table....page_namespace is already a full int (int(11))....ar_namespace is already a full int (int(11))....rc_namespace is already a full int (int(11))....wl_namespace is already a full int (int(11))....qc_namespace is already a full int (int(11))....log_namespace is already a full int (int(11))....have img_media_type field in image table....already have pagelinks table....image table does not contain img_type field....already have unique user_name index....user_groups table exists and is in current format....have ss_total_pages field in site_stats table....user_newtalk table already exists....transcache table already exists....have iw_trans field in interwiki table....wl_notificationtimestamp is already nullable....index times already set on logging table....have ipb_range_start field in ipblocks table....no page_random rows needed to be set...have user_registration field in user table....templatelinks table already exists...externallinks table already exists....job table already exists....have ss_images field in site_stats table....langlinks table already exists....querycache_info table already exists....filearchive table already exists....have ipb_anon_only field in ipblocks table....index rc_ns_usertext already set on recentchanges table....index rc_user_text already set on recentchanges table....have user_newpass_time field in user table....redirect table already exists....querycachetwo table already exists....have ipb_enable_autoblock field in ipblocks table....index pl_namespace on table pagelinks includes field pl_from....index tl_namespace on table templatelinks includes field tl_from....index il_to on table imagelinks includes field il_from....have rc_old_len field in recentchanges table....have user_editcount field in user table....page_restrictions table already exists....have log_id field in logging table....have rev_parent_id field in revision table....have pr_id field in page_restrictions table....have rev_len field in revision table....have rc_deleted field in recentchanges table....have log_deleted field in logging table....have ar_deleted field in archive table....have ipb_deleted field in ipblocks table....have fa_deleted field in filearchive table....have ar_len field in archive table....have ipb_block_email field in ipblocks table....index cl_sortkey on table categorylinks includes field cl_from....have oi_metadata field in oldimage table....index usertext_timestamp already set on archive table....index img_usertext_timestamp already set on image table....index oi_usertext_timestamp already set on oldimage table....have ar_page_id field in archive table....have img_sha1 field in image table....protected_titles table already exists....have ipb_by_text field in ipblocks table....page_props table already exists....updatelog table already exists....category table already exists....category table already populated....have ar_parent_id field in archive table....have user_last_timestamp field in user_newtalk table....protected_titles table has correct pt_title encoding....have ss_active_users field in site_stats table....ss_active_users user count set......have ipb_allow_usertalk field in ipblocks table....pl_namespace, tl_namespace, il_to indices are already UNIQUE....change_tag table already exists....tag_summary table already exists....valid_tag table already exists....user_properties table already exists....log_search table already exists....have log_user_text field in logging table....l10n_cache table already exists....index ls_field_val already set on log_search table....index change_tag_rc_tag already set on change_tag table....have rd_interwiki field in redirect table....transcache tc_time already converted....*_mime_minor fields are already long enough....iwlinks table already exists....index iwl_prefix_title_from already set on iwlinks table....have ul_value field in updatelog table....have iw_api field in interwiki table....iwl_prefix key doesn't exist....have cl_collation field in categorylinks table....categorylinks up-to-date....collations up-to-date....msg_resource table already exists....module_deps table already exists....ar_page_revid key doesn't exist....index ar_revid already set on archive table....ll_lang is up-to-date....user_last_timestamp is already nullable....index user_email already set on user table....up_property in table user_properties already modified by patch patch-up_property.sql....uploadstash table already exists....user_former_groups table already exists....index type_action already set on logging table....have rev_sha1 field in revision table....batch conversion of user_options: nothing to migrate. done....user table does not contain user_options field....have ar_sha1 field in archive table....index page_redirect_namespace_len already set on page table....have us_chunk_inx field in uploadstash table....have job_timestamp field in job table....index page_user_timestamp already set on revision table....have ipb_parent_block_id field in ipblocks table....index ipb_parent_block_id already set on ipblocks table....category table does not contain cat_hidden field....have rev_content_format field in revision table....have rev_content_model field in revision table....have ar_content_format field in archive table....have ar_content_model field in archive table....have page_content_model field in page table.Content Handler DB fields should be usable now....site_stats table does not contain ss_admins field....recentchanges table does not contain rc_moved_to_title field....sites table already exists....have fa_sha1 field in filearchive table....have job_token field in job table....have job_attempts field in job table....have us_props field in uploadstash table....ug_group in table user_groups already modified by patch patch-ug_group-length-increase-255.sql....ufg_group in table user_former_groups already modified by patch patch-ufg_group-length-increase-255.sql....index pp_propname_page already set on page_props table....index img_media_mime already set on image table.Making iwl_prefix_title_from index non-UNIQUE ...done.Adding index iwl_prefix_from_title to table iwlinks ...done.Adding ar_id field to table archive ...done.Adding el_id field to table externallinks ...done.Adding rc_source field to table recentchanges ...done.Adding index log_user_text_type_time to table logging ...done.Adding index log_user_text_time to table logging ...done.Adding page_links_updated field to table page ...done.Adding user_password_expires field to table user ...done....site_stats is populated...done.Populating rev_len column...doing rev_id from 1 to 200...doing rev_id from 201 to 400...doing rev_id from 401 to 600...doing rev_id from 601 to 800...doing rev_id from 801 to 1000...doing rev_id from 1001 to 1200...doing rev_id from 1201 to 1400...doing rev_id from 1401 to 1600...doing rev_id from 1601 to 1800...doing rev_id from 1801 to 2000...doing rev_id from 2001 to 2200...doing rev_id from 2201 to 2400...doing rev_id from 2401 to 2600...doing rev_id from 2601 to 2800...doing rev_id from 2801 to 3000...doing rev_id from 3001 to 3200...doing rev_id from 3201 to 3400...doing rev_id from 3401 to 3600...doing rev_id from 3601 to 3800...doing rev_id from 3801 to 4000...doing rev_id from 4001 to 4200...doing rev_id from 4201 to 4400...doing rev_id from 4401 to 4600...doing rev_id from 4601 to 4800...doing rev_id from 4801 to 5000...doing rev_id from 5001 to 5200...doing rev_id from 5201 to 5400...doing rev_id from 5401 to 5600...doing rev_id from 5601 to 5800Populating ar_len column...archive table seems to be empty.rev_len and ar_len population complete [0 revision rows, 0 archive rows]....Update 'populate rev_sha1' already logged as completed....img_sha1 column of image table already populated....protocol-relative URLs in externallinks table already fixed....fa_sha1 column of filearchive table already populated.Purging caches...done.Done in 0:04.

终于OK了。这里mediawiki配置文件里table前缀要根据备份的sql文件写对,然后确保运行了数据库更新脚本。

0 0
原创粉丝点击