介绍
- 我试图在我的 Ubuntu 桌面上设置 mason。
- 这是一个非常简单的设置,但在阅读了 masonbook.com 和 mansonhq.com 的部分内容后,我仍然遇到了问题
- 我希望有人能给我一个提示。请参阅下文了解更多详情。
本地服务器
- Ubuntu 11.04 桌面
- Mason 1.44(Ubuntu 自带)
- perl/mason 的新手
文件
- mason.seedy2 - 这是一个 cgi 脚本。基本上,我设置了一个全局变量 --> $user. 我想在 index1.html 中使用它
- index1.html - 简单的 html 文件
- apache.conf - 我不确定我做对了
错误
1. 在浏览器中输入 http://localhost:81/index1.html 2. 错误:编译/var/www/test/sj3/public_html/index1.html时出错: 全局符号“$user”需要在 /var/www/test/sj3/public_html/index1.html 第 2 行显示包名。 语境: 1:2: 3:
4: 代码栈:/usr/share/perl5/HTML/Mason/Interp.pm:450 /usr/share/perl5/HTML/Mason/Request.pm:249 /usr/share/perl5/HTML/Mason/Request.pm:212 /usr/share/perl5/HTML/Mason/ApacheHandler.pm:94 /usr/share/perl5/Class/Container.pm:275 /usr/share/perl5/Class/Container.pm:353 /usr/share/perl5/HTML/Mason/Interp.pm:348 /usr/share/perl5/HTML/Mason/ApacheHandler.pm:874 /usr/share/perl5/HTML/Mason/ApacheHandler.pm:828 (评估 34):8 -e:0
apache.conf
# 监听其他端口
听 81
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test/sj3/public_html
PerlSetVar MasonCompRoot /var/www/test/sj3/public_html/
PerlSetVar MasonDataDir /var/www/test/sj3/mason/
动作 html-mason /cgi-bin/mason.speedy2
SetHandler perl 脚本
PerlHandler HTML::Mason::ApacheHandler
index1.html
打印%用户
mason.speedy2
#!/usr/bin/perl -w
使用严格;
使用 HTML::Mason::CGIHandler;
{
我们的($用户,%会话);
$user = "bla";
}
我的 $h = HTML::Mason::CGIHandler->new
(
data_dir => "$ENV{DOCUMENT_ROOT}/../mason",
allow_globals => [qw(%session $user)],
);
$h->handle_request;