設定ガイド

設定ガイド

新しい Sahana Eden サイトを立ち上げる時の設定方法を解説します。

ファイルのパーミッション

Linux へのインストール向けです。

chown web2py ~web2py/applications/admin/cron
chown web2py ~web2py/applications/admin/cron/crontab
chown web2py ~web2py/applications/admin/cache/
chown web2py ~web2py/applications/admin/databases/
chown web2py ~web2py/applications/admin/errors/
chown web2py ~web2py/applications/admin/sessions/
chown web2py ~web2py/applications/admin/uploads/
cd web2py/applications
bzr branch lp:sahana-eden eden
chown web2py eden/cron
chown web2py eden/cache/
chown web2py eden/databases/
chown web2py eden/errors/
chown web2py eden/sessions/
chown web2py eden/static/img/markers
chown web2py eden/static/scripts/tools
chown web2py eden/static/styles/S3/sahana.css
chown web2py eden/static/styles/S3/sahana.min.css
chown web2py eden/uploads/
mkdir eden/uploads/gis_cache
mkdir eden/uploads/images
mkdir eden/uploads/tracks
chown web2py eden/uploads/gis_cache
chown web2py eden/uploads/images
chown web2py eden/uploads/tracks

便利なエイリアスの定義

Linux へのインストール向けです。

vim ~/.bashrc
alias w2p='cd ~web2py;sudo -H -u web2py python web2py.py -S eden -M'
alias compile='cd ~web2py;python web2py.py -S eden -R applications/eden/static/scripts/tools/compile.py'
alias pull="cd ~web2py/applications/eden;sed -i 's/deployment_settings.base.migrate = False/deployment_settings.base.migrate = True/g' models/000_config.py;bzr pull;rm -rf compiled;cd ~web2py;sudo -H -u web2py python web2py.py -S eden -M -R applications/eden/static/scripts/tools/noop.py;/etc/init.d/apache2 force-reload"
alias migrateoff="sed -i 's/deployment_settings.base.migrate = True/deployment_settings.base.migrate = False/g' ~web2py/applications/eden/models/000_config.py"

スクリプトにしておくと、管理が楽でしょう。 (英語版のページにはスクリプトが添付されています)

データベースの設定

実運用環境では MySQL を使いましょう:

  • models/000_config.py を編集してください。

セキュリティの設定

最初にログインする前に、 models/000_config.py を以下のように編集してください:

deployment_settings.auth.hmac_key = "(何か適切なキーに変更)"

権限(Role)の設定

デフォルトの設定では、最初に登録したユーザーに管理者 (Administrator)権限が付与されます。

他のユーザーには「認証済み (Authenticated)」レベルのアクセス権限が付与されます。この権限には、デフォルトの設定では全てのレコードの閲覧・更新・削除が許可されています。

一般のユーザーが自分で登録を行えるようにするなら、「編集者(Editor)」セキュリティポリシーを有効にした方がよいでしょう (管理(Administration)|設定(Settings)メニューでできます)。このポリシーでは、一般のユーザーがレコードを追加 (かつ、自分のレコードを変更) でき、他のユーザーのレコードは変更できません。

ユーザーに権限を追加するには、管理メニューに移動して、「ユーザー管理 (User Management)」で「メンバーシップ(Membership)」を選びます。

古い情報: セキュリティポリシーは models/zzz.py で変更できます。

設定項目

 http://127.0.0.1:8000/sahana/admin/setting/1/update で設定できる内容

  • Admin の名前・メール・電話番号

Web Setup で設定可能にする予定です。

オプションの中には、 models/000_config.py を編集しないと設定できないものもあります:

deployment_settings.auth.registration_requires_verification = False
deployment_settings.auth.registration_requires_approval = False
deployment_settings.base.public_url = "http://127.0.0.1:8000"
deployment_settings.base.migrate = True
deployment_settings.mail.server = "127.0.0.1:25"
deployment_settings.mail.sender = "sahana@your.org"
deployment_settings.mail.approver = "useradmin@your.org"
deployment_settings.L10n.utc_offset = "UTC +0000"

これらも Web Setup で設定可能にしたいのですが、インストール時に一度設定するだけのものなので、優先順位は低めです。

models/000_config.py で不要なモジュールを無効化できます。

アプリケーションメニューを再編成して、サイトに関係のあるものだけを表示できます:

  • models/01_menu.py を編集してください。
  • s3.menu_modules のセクションを設定します。

ユーザーの混乱を避けるために一部のフィールドを表示したくない場合、モデルを編集する (と、将来 trunk の内容をマージしたときに変更を上書きしてしまう) 代わりに、以下のように models/zzz_local.py を使えます:

# 不要なフィールドを表示しない
tablename = 'pr_person'
table = db[table]
table.pr_pe_label.readable = False
table.pr_pe_label.writable = False
table.local_name.readable = False
table.local_name.writable = False
table.opt_pr_gender.readable = False
table.opt_pr_gender.writable = False
table.opt_pr_age_group.readable = False
table.opt_pr_age_group.writable = False
table.email.readable = False
table.email.writable = False
table.mobile_phone.readable = False
table.mobile_phone.writable = False
table.date_of_birth.readable = False
table.date_of_birth.writable = False
table.opt_pr_nationality.readable = False
table.opt_pr_nationality.writable = False
table.opt_pr_country.readable = False
table.opt_pr_country.writable = False
table.opt_pr_religion.readable = False
table.opt_pr_religion.writable = False
table.opt_pr_marital_status.readable = False
table.opt_pr_marital_status.writable = False
table.occupation.readable = False
table.occupation.writable = False

地図関連の設定

 http://localhost:8000/sahana/gis/config/update/1

デフォルトのマップ位置:

  • Lat
  • Lon
  • Zoom

関係のあるエリアだけに制限する:

  • Min Lon
  • Max Lat
  • Min Lon
  • Max Lat

ベースレイヤの選択:

OpenStreetMap, Google, Yahoo, Bing を試して、どの地図や衛星画像がベストか検討してください。

Google, Yahoo, MultiMap レイヤーの API キー:

"*.sahanafoundation.org" では、この Google Key を使っています

  • ABQIAAAAgB-1pyZu7pKAZrMGv3nksRR1-chREdZE62d-MGawPNPOGidOJBQQCwHsElsSGbD5VMpNj7DBMNxjTg

境界線情報 (Admin Boundaries) のインポート:

時刻を指定してタスクを実行する

cron/crontab を編集して、メールや SMS の送信を有効にします:

# メールの送信タスクを 5 分毎に実行する場合
*/5   *       *       *       *       root *msg/process_email_via_api
# SMS の送信を 5 分毎に実行する場合
*/5   *       *       *       *       root *msg/process_sms_via_api

チケットビューア

以下のコードを web2py の routes.py に追加しておけば、エラーページの表示やチケットの表示ができます。

  • routes.py がなければ routes.example.py をコピーしてください。
routes_logging = False
routes_onerror = [
        ('eden/401', '/eden/default/user/login'),
        ('eden/*', '/eden/errors/index'),
        ('*/*', '/eden/errors/index'),
    ]

favicon.ico と robots.txt

二つの方法で設定できます:

  • mod_rewrite を使った設定
    DocumentRoot /home/web2py/applications
    RewriteEngine On
    RewriteRule .*favicon.*\.ico$ /eden/static/favicon.ico [L]
    RewriteRule .*robots\.txt$ /eden/static/robots.txt [L]
    RewriteRule ^/$ /eden/ [R]
    
  • web2py/routes.py での設定: routes.example.py をコピーして編集してください。

テーマの設定

Webサーバーに以下のファイルの書き込み権限を与えます:

chown www-data /path/to/web2py/applications/eden/static/scripts/tools
chown www-data /path/to/web2py/applications/eden/static/styles/S3/sahana.css
chown www-data /path/to/web2py/applications/eden/static/styles/S3/sahana.min.css

カラースキームの設定:

ロゴの設定:

  • ロゴを static/img にコピーします。
  • Admin パネルでロゴを指定します。

フッタの設定:

  • views/footer.html を修正します。

DeveloperGuidelinesThemes

インターネット上でホスティングする場合

一部のファイルは、サーバーから直接ではなく、 CDN からダウンロードさせられます。
CDN の利用には大きく2つの利点があります:

Google を jQuery の CDN にするには views/sahana_scripts_min.html コメントアウトを外します。

Cachefly を ext-all.js と ext-all.css の CDN にするには views/gis/gis_scripts_min.html とviews/gis/ol_js_loaders.html のコメントアウトを外します。

パフォーマンスを最適化するには

  • 000_config.py で、データベースのマイグレーション機能を無効にします : deployment_settings.base.migrate = False にします。
  • アプリケーションをバイトコードにコンパイルします:
    cd /home/web2py
    python web2py.py -S eden -M -R applications/eden/static/scripts/tools/compile.py
    
  • 000_config.py で、データベースのプリポピュレーションを無効にします : deployment_settings.base.prepopulate = False
  • SQLite の代わりに MySQL や PostgreSQL を使います。
    • よくアクセスするテーブルをインデックス化します。
  • モジュールをロードするときに、 models/00_db.py で置き換えたモジュール名を使うのではなく、ハードコードしてロードします。

InstallationGuidelines

Comments