我在安装一个用Perl+PHP写的Blog系统(MovableType3.2),遇到了下面的问题。
1.首先是按手册配置好之后,上传文件,用浏览器打开管理页面的地址
(没有登录的时候输入管理页面的地址会显示登录画面)。
然后按手册输入用户名密码,单击按钮。
这时候本来应该登录成功,进入第一次使用的初始化页面。
可是我这个却没有,因为地址栏中“http://"开头的URL变成了"included://”开头,
浏览器提示included是无效的协议。
2.我偶然一次先登录了虚拟主机的后台管理系统,然后在同一个窗口里打开登录页面。
应该是因为Cookies的原因吧,登录页面被跳过了。
也就是说初始化页面显示出来了。我就按初始化页面上的按钮开始初始化。
可是一按按钮,那个毛病又来了。
根据这个现象,应该说明"http://“变"included://”的毛病和“按钮”这个东西有关,是吧?
如果对我描述的现象还是迷糊的话,可以直接去我那个虚拟空间看看。
这个是后台管理页面的地址:
href=http://sah.webhostfree.net/cgi-bin/mt/mt.cgi>http://sah.webhostfree.net/cgi-bin/m
t/mt.cgi
我没学过Perl,不太懂。看了看那个初始化页面的代码,找到几个有关的文件,请大家帮忙分析一
下。
一个是mt-upgrade.cgi,就是那个初始化页面;
一个是install.tmpl,是个模版;
还有一个是Upgrader.pm,pm文件是叫Perl模块吧?
mt-upgrade.cgi的代码比较短:
#!/usr/bin/perl -w
# Copyright 2001-2005 Six Apart. This code cannot be redistributed without
# permission from href=http://www.sixapart.com.>www.sixapart.com. For more information, consult
your
# Movable Type license.
#
# $Id: mt-upgrade.cgi 15432 2005-07-29 20:41:11Z bchoate $
use strict;
use lib 'lib';
use MT::Bootstrap App => 'MT::App::Upgrader';
install.tmpl也挺短:
<TMPL_INCLUDE NAME=header.tmpl>
<div class="upgrade">
<h2><MT_TRANS phrase="Welcome to Movable Type!"></h2>
<p><MT_TRANS phrase="Before you can begin blogging, we need to complete your
installation by initializing your database."></p>
<div class="button-bar">
<form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>">
<input type="hidden" name="__mode" value="install">
<input type="submit" value="<MT_TRANS phrase="Finish Install">" />
</form>
</div>
</div>
<TMPL_INCLUDE NAME=footer.tmpl>
Upgrader.pm比较长,摘其中upgrade一段吧:
sub upgrade {
my $app = shift;
my $install_mode;
my $driver = MT::Object->driver;
if (!$driver || !$driver->table_exists('MT::Author')) {
$install_mode = 1;
my $method = $app->request_method;
if ($method ne 'POST') {
return $app->build_page("install.tmpl");
}
} else {
$app->validate_magic or return;
}
my $steps;
eval {
local $app->{upgrading} = 1;
require MT::Upgrade;
MT::Upgrade->do_upgrade(Install => $install_mode, DryRun => 1,
App => $app);
my $steps = $app->response->{steps};
my $fn = \%MT::Upgrade::functions;
if ($steps && @$steps) {
@$steps = sort { $fn->{$a->[0]}->{priority} <=>
$fn->{$b->[0]}->{priority} } @$steps;
}
};
die $@ if $@;
$steps = $app->response->{steps};
my $json_steps;
if ($steps && @$steps) {
$json_steps = objToJson($steps);
}
my $param = {
installing => $install_mode,
up_to_date => $json_steps ? 0 : 1,
initial_steps => $json_steps,
};
return $app->build_page('upgrade_runner.tmpl', $param);
}
Upgrade.pm的其余部分可以看附件。
请帮帮忙吧,我在Google里搜也搜不到关于included://的东西。谢谢了!