General FAQ/ja: Difference between revisions
From LimeSurvey Manual
No edit summary |
No edit summary |
||
Line 281: | Line 281: | ||
== | ==停止したアンケートからデータを復元するには?== | ||
Revision as of 10:07, 10 December 2023
はじめに
マニュアルはなるべく読みたくないけど、LimeSurvey でできることを感じたい場合、YouTube でチュートリアル動画を見ることをお勧めします。
LimeSurvey の簡単な説明を
LimeSurvey の簡単な説明は、次の 2 つのリンクをご覧ください。
アンケートのデザインとレイアウト
より短い URL にしたい。URL から index.php を削除するにはどうすればいい?
親しみやすい URL ( それぞれの URL に /index.php を含めない ) をご希望の場合は、 /application/config/config.php を編集して変更してください。
'showScriptName' => true,
を次のように
'showScriptName' => false,
これを正しく動作させるには、Apache Web サーバーに mod_rewrite モジュールを適切にインストールしなくてはなりません。
nginx Webサーバーを使用する場合
nginx http サーバーで ( FastCGI 経由で PHP を実行 )、'urlFormat' => 'path'設定 ( 詳しくは config.php を参照 ) を使用する場合は、次の Nginx Web サイト設定をご検討ください。
server {
set $host_path "/PATH/TO/LIMESURVEY";
server_name YOUR.SERVER.FQDN;
root /PATH/TO/LIMESURVEY;
charset utf-8;
try_files $uri /index.php?$uri&$args;
# Disallow reading inside php script directory, see issue with debug > 1 on note
location ~ ^/(application|docs|framework|locale|protected|tests|themes/\w+/views) {
deny all;
}
# Disallow reading inside runtime directory
location ~ ^/tmp/runtime/ {
deny all;
}
# Allow access to well-known directory, different usage, for example ACME Challenge for Let's Encrypt
location ~ /\.well-known {
allow all;
}
# Deny all attempts to access hidden files
# such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
}
#Disallow direct read user upload files
location ~ ^/upload/surveys/.*/fu_[a-z0-9]*$ {
return 444;
}
#Disallow uploaded potential executable files in upload directory
location ~* /upload/.*\.(pl|cgi|py|pyc|pyo|phtml|sh|lua|php|php3|php4|php5|php6|pcgi|pcgi3|pcgi4|pcgi5|pcgi6|icn)$ {
return 444;
}
#avoid processing of calls to unexisting static files by yii
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
try_files $uri index.php;
fastcgi_pass 127.0.0.1:9000; # Change this to match your settings
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
'use_asset_manager' => 1,
と設定する ( または application
from the directory listを削除する ) ことでアセットマネージャーの使用を強制できます。結果は次のようになります。
回答必須の質問の * ( 赤いアスタリスク ) を取り除くには?
LimeSurvey 2でのやり方
LimeSurvey 2.xでは、必須であることを示す赤いアスタリスクはtemplate.cssファイル("asterisk"クラス)内に設定されています。それを隠すには、
- テンプレートエディタを開く
- 変更したいテンプレートのコピーを作成する
- "template.css"ファイルを選択して、asteriskクラスを検索する
- asteriskクラスの最後に次の設定を追加する: ".asterisk {display: none;}"
- template.cssを保存する
- 編集したtemplate.cssが再読み込みされ、キャッシュから取得されないように、ブラウザのキャッシュをクリアする
LimeSurvey 3 でのやり方
上記の LimeSurvey 2 の手順と似ています。
- 希望のテーマにアクセスします。既定のテーマの場合は、"拡張" ボタンをクリックしてコピーを作成します。
- テーマのリストにアクセスして、新たに作成したテーマに対応するテーマエディターをクリックします。
- 左側に、対応するテーマに対応する CSS ファイルが表示されます。
- custom.css をクリックし、以下の行を追加します。
.asterisk {display: none;}
- 変更を保存します。通常、質問テキストの先頭に表示される赤いアスタリスクが非表示になります。
Flash ファイルを埋め込むには?
まず全体設定に行き、XSSフィルターを無効にします。また、そのフィルターを無効にすることどうなるかは理解しておいてください。フィルターが有効な場合、次の手順は機能しません。
- Flashファイルを挿入する場所に移動します。これは、質問、サブ質問、回答、アンケートのようこそ/終了のテキストなど、統合されたHTMLエディタを使用できる場所であればどこでもかまいません。
- エディターツールバーの'LimeFitWin'ボタンをクリックし、フルスクリーンエディタモードを開きます。
- フルスクリーンエディタのツールバーには、Flashシンボル付きの小さなボタンがあります。クリックすると、ダイアログボックスが開きます。
- このボックスでは、既存のFlashファイルのパスを指定するか、'サーバーを閲覧'ボタンをクリックします。
- 'サーバーを閲覧'ボタンをクリックすると、ファイルブラウザが表示され、下部にはファイルアップロードフィールドが表示されます。既存のファイルを選択するか、ファイルをアップロードしてください。
それでおしまいです。この説明が不完全な場合は、適宜更新してください。
だれでも参加できる一般公開のアンケートを作るには?
だれでも参加できる一般公開のアンケートを作る場合は、アンケート参加者テーブルを作成しないでください! 概要パネルにあるアンケートリンクを共有 ( 公開 ) します。
登録の公開 - そのための必須項目
アンケート参加者テーブルを使うとともに参加登録も許可している場合は、参加者がアンケートを開くと次のメッセージを表示します。
上図のように、メールアドレスの項目のみ、必須です。
3 つの項目すべてを必須にするには、以下のようにアンケート テーマを編集してください。 「Fruity」テーマを使っている場合は、登録画面に移動して、参加者のメールアドレス項目がどう表示されるかを確認してください。
{# Participants email #}
<div class='{{ aSurveyInfo.class.registerformcolrowc }} form-group row' {{ aSurveyInfo.attr.registerformcolrowc }}>
<label {{ aSurveyInfo.attr.registerformcolrowclabel }} class='{{ aSurveyInfo.class.registerformcolrowclabel }} control-label'> {{ gT("Email address:") }} {{ include('./subviews/registration/required.twig') }}</label>
<div {{ aSurveyInfo.attr.registerformcolrowcdiv }} >
{{ C.Html.textField('register_email', aSurveyInfo.sEmail, ({'id' : 'register_email','class' : 'form-control input-sm','required' : true})) }}
</div>
</div>
その後、姓と名の項目を編集し、次のようにラベルを追加 :
{{ include('./subviews/registration/required.twig') }}
そして、この行を記入必須項目にします。
'required' : true
編集したファイルは次のようになります :
{# Participants first name #}
<div class='{{ aSurveyInfo.class.registerformcolrow }} form-group row' {{ aSurveyInfo.attr.registerformcolrow }}>
<label for='register_firstname' class='{{ aSurveyInfo.class.registerformcolrowlabel }} control-label '>{{ gT("First name:") }} {{ include('./subviews/registration/required.twig') }}</label> {# extra label #}
<div class="">
{{ C.Html.textField('register_firstname', aSurveyInfo.sFirstName, ({'id' : 'register_firstname','class' : 'form-control', 'required' : true})) }} {# mandatory field #}
</div>
</div>
{# Participants last name #}
<div class='{{ aSurveyInfo.class.registerformcolrowb }} form-group row' {{ aSurveyInfo.attr.registerformcolrowb }}>
<label {{ aSurveyInfo.attr.registerformcolrowblabel }} class='{{ aSurveyInfo.class.registerformcolrowblabel }} control-label '>{{ gT("Last name:") }} {{ include('./subviews/registration/required.twig') }}</label> {# extra label #}
<div {{ aSurveyInfo.attr.registerformcolrowbdiv }} >
{{ C.Html.textField('register_lastname', aSurveyInfo.sLastName, ({'id' : 'register_lastname', 'class' : 'form-control', 'required' : true})) }} {# mandatory field #}
</div>
</div>
これで、公開の参加登録ページは次のようになりました ( すべての項目が入力必須です ) 。
言語切り替えを非表示に
2 つの言語切り替えスイッチ ( アンケートのタイトルの近くとページの右上 ) を非表示にする手順は、多言語アンケートについての Wiki セクションで説明しています。
「回答を破棄して終了」を非表示にするには?
「回答を破棄して終了」ボタンを非表示にしたい場合は、アンケートテーマ内の nav_bar.twig ファイルを編集します。
削除 ( またはコメントアウト ) する必要がある行 :
{{ include('./subviews/navigation/clearall_links.twig') }}
これで、「回答を破棄して終了」する選択肢はなくなりました。
助けて。うっかりと…
管理者パスワードを忘れた。リセットするには?
バージョン2.x
- コマンドラインでサーバーにアクセスします(例:SSH)
- PHPにコマンドラインでアクセスできるか確認します(see http://php.net/features.commandline.php)
- LimeSurveyディレクトリーに移動します
- 次のコマンドを入力します
php application/commands/starter.php resetpassword NEW_ADMIN_NAME NEW_ADMIN_PASS
またはphp application/commands/console.php resetpassword NEW_ADMIN_NAME NEW_ADMIN_PASS
/usr/bin/phpなどphpへの完全なディレクトリーアクセス権が必要です
バージョン2.x.x 以降で FTP アクセスのみの場合
データベースのパスワードを直接変更する
Limesurvey のデータベースに直接アクセスできる場合、古いパスワードに対して新しいパスワードを SHA256 ハッシュ符号化して更新することで、上書きすることができます。ここでパスワードの SHA256 ハッシュを生成できます。
例として、次の操作でパスワードを password に :
UPDATE lime_users SET password = 0x35653838343839386461323830343731353164306535366638646336323932373733363033643064366161626264643632613131656637323164313534326438 WHERE uid =1;
これは、使用するデータベースを選択していて、接頭辞が lime_ の場合の例です。
停止したアンケートからデータを復元するには?
常に、アンケートは「停止」するのではなく、「受付期間終了」にすることをお勧めします。誤ってアンケートを停止した場合は、アンケートに変更を加えないことが重要です!
つづいて、次の手順で復元します :
- アンケートを再度、有効化
- アンケートのツールバーから回答を選択
- インポートをクリックし、「停止したアンケートテーブルから回答をインポート」メニューを選択
- 元となるテーブルを選択
- 画面右上の「インポート」ボタンをクリック
削除した質問/質問グループ/アンケートの復元方法
削除してしまうと、本当になくなってしまいます。ただし、バックアップしている場合は復元できます。
ハードウェア・ソフトウェアの要求条件
一般的な要件については、インストール手順を参照してください。
LimeSurveyの制約
処理速度について
LimeSurveyには処理速度に制限はありません。すべてはサーバーの処理速度とサーバーへの接続速度に依存します。短時間に多数のユーザーからの回答が予想され、サーバーが処理できるかどうかわからない場合は、フォーラムで類似のトピックを参照するか、LimeSurveyパートナーにコンタクトしてください(https://limesurvey.com)。
アンケートの規模について
MySQL および MariaDB
注意: ここでいう'アンケートの規模'とは、アンケートの質問(と回答)の最大数のことであり、アンケートで受け付ける最大の回答数ではありません(こちらに制限はありません)。理論的には、LimeSurveyの質問/回答の最大数に制限はありません。しかし、使用しているデータベースエンジンにはいくつかの制限があります。最も重要なのは、結果テーブルのフィールド(列)数の制限です。
- MySQL ISAM: テーブル内のVARCHAR列とCHAR列の長さの合計は最大64KBです。
- MySQL InnoDB: 最大1000列
- MS SQL Server 2000: 最大1024列。1行のサイズは最大8,060バイトであり、アンケートを有効にしても、テキストデータが多い場合、参加者は投稿できません。
- Postgres: 列の種類に応じ最大250〜1600列。既定のブロックサイズを32kに増やすと、列の最大数を4倍にすることができます。インストールのFAQおよびPostgreSQL FAQを参照してください。
mySQL ISAMエンジンは最も面倒です(詳細はmysqlのドキュメントを参照)。1行につき最大65,535バイトまで可能で、utf8文字は1文字につき最大3バイト必要なので、最大値は21,844文字となります(DBエンコーディングによって異なります)。
アンケートの規模は次のように見積もることができます。
- 複数の数値質問: 回答ごとに20文字
- 複数選択と配列質問タイプ: 回答ごとに5文字
- その他の質問タイプ: 5文字
- 余裕をみるため10%程度を追加
Microsoft SQLの場合
MSSQLには固定された上限はありません。Microsoftのウェブサイトの情報を参照ください。
アクティブ化後に回答とデータを参照する際、1行あたり8,060バイトしか表示されません。回答ではなく回答コードをエクスポートするか、一部の列のみエクスポートしてみてください。
PostgreSQLの場合
回答をエクスポートする際、SQLSTATE[54000]エラーが発生することがあります。フォーラムの投稿を参照してください。
PostgreSQLの最大カラム数を増やす方法
アンケートの質問がとても多い場合、PostgreSQLで異なるブロックサイズを定義し、より多くの列を作成することができます。PostgreSQLを再コンパイルし、BLCKSZを16KBまたは32KBなどのより高い値に設定する必要があるため、扱いにくいかもしれません。設定オプション"--with-blocksize=BLOCKSIZE"を確認してください。詳細は、PostgreSQLメーリングリストのアーカイブを参照するか、そこで質問してください(pgsql-patches(at)postgresql(dot)org)。
Debianでの手順です。(Martin Pitt提供)
sudo apt-get build-dep postgresql-8.3
apt-get source postgresql-8.3
cd postgresql-8.3-*
debian/rules patch
sensible-editor build-tree/postgresql-8.3.5/src/include/pg_config_manual.h
dpkg-buildpackage -us -uc -b -nc
注意: 2014年8月、Ubuntu 14.04で上記を再現することはできませんでした。パッチが必要です(設定オプションでは不十分です)。参照(LinuxでPostgreSQL 9.3でテスト済み): Linux上でPostgreSQL の最大カラム数を増やす方法
Fatal error: Allowed memory size
サーバー構成によっては、メモリーに問題が発生し、次のようなレポートを受けることがあります。"Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 233472 bytes) in /path/to/htdocs/limesurvey/filename.php on line 7296"
LimeSurveyの設定ファイルにオプションの設定を追加することで、制限を引き上げることができます。
アプリケーションの既定の設定の変更は、グローバルサーバー設定によって常に無効になる可能性があることに注意してください。あなたのサーバー上でメモリ制限を直接128Mに増やすには、以下を追加してみてください。
- サーバのメインのphp.iniファイルで、memory_limit = 128Mとする(アクセス権がある場合はお勧めします)
- LimeSurveyルートのphp.iniファイルで、memory_limit = 128Mとする。
- LimeSurveyルートフォルダーにある.htaccessファイルで、php_value memory_limitを32Mとする。
- config.phpで、"ini_set('memory_limit', '128M'); "とする。
特定の設定
特定の状況下では、application/config/config.phpでLimeSurveyの設定を更新する必要があります。
IE 11とWindows 7 / Windows 8
IE 11とのセッションには既知の問題があり、ユーザーがアンケートを完了できなくなる可能性があります。
この問題はセッションに一意の名前を付けることで解決します。
configファイルに以下を追加します。
// Set the name of the session
'session' => array (
'sessionName' => "YOURUNIQUESESSIONNAME",
),
同じドメイン上に2つのLimeSurveyインスタンスがある場合
同じドメイン上に2つのLimeSurveyインスタンスが別のディレクトリーにある場合、セッション設定を更新する必要があります。
たとえば、example.org/ls1とexample.org/ls2がある場合は、ls1設定ファイルを更新します。
'session' => array (
'cookieParams' => array(
'path' => '/ls1',
),
),
'request' => array(
'csrfCookie' => array( 'path' => '/ls1' )
),