はじめに
- 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. error: /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/メイソン/Request.pm:249 /usr/share/perl5/HTML/メイソン/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 ドキュメントルート /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
%user を印刷
メイソン.スピーディ2
#!/usr/bin/perl -w 厳密に使用します。 HTML::Mason::CGIHandler を使用します。 { 私たちの ($user, %session); $user = "bla"; } my $h = HTML::Mason::CGIHandler->new ( data_dir => "$ENV{DOCUMENT_ROOT}/../mason", allow_globals => [qw(%session $user)], ); $h->handle_request;