- 论坛徽章:
- 0
|
我在安装一个用Perl+PHP写的Blog系统(MovableType3.2),遇到了下面的问题。
1.首先是按手册配置好之后,上传文件,用浏览器打开管理页面的地址
(没有登录的时候输入管理页面的地址会显示登录画面)。
然后按手册输入用户名密码,单击按钮。
这时候本来应该登录成功,进入第一次使用的初始化页面。
可是我这个却没有,因为地址栏中“http://"开头的URL变成了"included://”开头,
浏览器提示included是无效的协议。
2.我偶然一次先登录了虚拟主机的后台管理系统,然后在同一个窗口里打开登录页面。
应该是因为Cookies的原因吧,登录页面被跳过了。
也就是说初始化页面显示出来了。我就按初始化页面上的按钮开始初始化。
可是一按按钮,那个毛病又来了。
根据这个现象,应该说明"http://“变"included://”的毛病和“按钮”这个东西有关,是吧?
我没学过Perl,不太懂。看了看那个初始化页面的代码,找到几个有关的文件,请大家帮忙分析一
下。
一个是mt-upgrade.cgi,就是那个初始化页面;
一个是install.tmpl,是个模版;
还有一个是Upgrader.pm,pm文件是叫Perl模块吧?
mt-upgrade.cgi的代码比较短:
- #!/usr/bin/perl -w
- # $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);
- }
复制代码
请帮帮忙吧,我在Google里搜也搜不到关于included://的东西。谢谢了! |
|