Actions

トラブルシューティング

From LimeSurvey Manual

Revision as of 03:53, 7 April 2019 by Bravehorse (talk | contribs)



次のウィキセクションはLimeSurveyコミュニティメンバーの経験に基づくものです。最新の情報については、LimeSurveyフォーラムをチェックしてください。専門的なサポートについては、当社のLimeSurvey認定パートナー(https://limesurvey.com)にお問い合わせください。


概要

このページには、インストールの典型的な技術的問題とその解決方法が記載されています。インストール中に発生した問題については、インストールに関するFAQを参照してください。

管理ログインページを開くとき

エラーメッセージ: インストール後に"指定された入力ファイルがない"

どのURLでもアンケートリストページになる

インストール時に、LimeSurveyはURL形式について最適な解決方法を決定しようとします。場合によってはこれが正しく動作しないことがあります。

設定ファイルを編集してLimeSurveyに別のURLマネージャーシステムを使用させる必要があります。

/application/config/config.phpの次の部分について、

     'urlFormat' => 'path',			

次のように改めます。

     'urlFormat' => 'get',

次に短い管理URLを使用して管理画面を開きます。

   http://<yourserver.net>/<limesurvey_dir>/admin

管理にログインした後

管理ページで何をしてもログイン画面に戻る

これは主に次の理由で発生します。

  • PHPセッションの問題
  • UTF8エンコーディングの問題
  • IEの問題

PHPセッション:

  1. php.iniのupload_tmp_dirとsession.save_pathを更新する
  2. 設定済みのセッションを作成してディレクトリーをアップロードする
  3. IIS: IISゲストユーザーアカウントの作成および変更の権限割り当て
  4. Apache: 設定されたディレクトリーへの書き込み権限がWebサーバーにあることを確認する
  5. php.iniの変数"session.use_cookies"が1に設定されているか確認する
  6. php.iniの変数"session.auto_start"を確認し、1に設定されている場合は、0に変更する。

Internet Explorerの問題 LimeSurveyは、Internet Explorerによる管理インターフェースへのアクセスをサポートしなくなりました。

UTF8エンコーディング:

任意のファイル(大抵はconfig.php)を編集した場合、特別な言語の文字をサポートするためにUTF8として保存しないでください。常にANSI/ISO形式で.phpファイルを保存してください。

多数の質問/回答オプション/サブ質問を含むページを送信してもうまくいかない

PHP 5.3.9で導入されたmax_input_varsという新しい設定がありました(以前のPHPバージョンにもバックポートされました)。この設定は、サーバーにPOST(送信)できる変数の最大数を制限します。 既定では1000に設定されていますが、多くの回答オプションがある質問やたくさんの質問/回答を含むアンケートページがある場合、この制限を超える可能性があります。これをPHP設定ファイル(php.ini)で指定する必要があります。

Linux上でFreeTDSとMSSQL Serverを使用すると日付が正しく表示されない

FreeTDSのlocales.confファイルを見つけて編集します。FreeTDSを使用している他のアプリケーションがない場合は、次の内容に置き換えます。

[default]
    date format = %Y-%m-%d %H:%M:%S.%z

FreeTDSを使用している他のアプリケーションがある場合は、まず編集する必要があるロケールを確認します。

保存し、サーバーを再起動します。日付が正しく表示されるはずです。これでうまくいかない場合は、間違ったファイルを編集している可能性がありますのでやり直してください。

アンケートや管理画面に特殊な文字(漢字、キリル文字、ギリシャ文字、アラビア文字)を入力すると疑問符「?」で表示される

これは、データベース自体がUTF-8文字セットを使用するように作成されていない場合に発生します。これは、プロバイダーの管理パネルを使用してデータベースを作成する必要がある場合に発生します。この問題を解決するには、データベース上で次のSQLコマンドを実行します(phpMyAdminでの例)。 ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

<your_database_name>をデータベースの名前に置き換えます。LimeSurveyをインストールする前にこれを行う必要があります。

PageSpeedによってLimesurveyで問題が生じる

LimeSurveyのバーチャルホストに、ModPagespeed offを追加します。

このようにしないと、ConfortUpdateを使用することも、データをエクスポートすることもできなくなります。多分ほかの何かも失敗するでしょう。

アンケート実施中

"セッション期限切れ"エラー

次のようなメッセージが表示されることがあります。

ERROR

We are sorry but your session has expired.(申し訳ありませんが、セッションが期限切れとなりました。)

Either you have been inactive for too long, you have cookies disabled for your browser, or there were problems with your connection.(長時間アクティブでなかったか、ブラウザーでcookieが使えないか、接続に問題があったため発生しました。)

サーバー上でSuhosinを有効にしている場合は、アンケートの途中でこのエラーが発生する原因かもしれません。

注意: アンケートが実施中でない場合、動作が異なる場合がありますが、アンケートの途中でアンケートの公開リストにリダイレクトされることがあります。解決策は同じです。

SuhosinはPHPインストールの高度な保護システムですが、Suhosinの既定の設定ではLimeSurveyに問題が発生する可能性があります。

まず、Suhosinの文書に従って、Suhosinのログを使用して、設定がsuhosin.log.sapi = 511 と suhosin.simulation = on であることを確認し、テストします。

設定ファイルは通常/etc/php5/apache2/conf.d/suhosin.iniにありますが、phpinfo(LimeSurvey管理 > 全体設定 > PHPInfoを表示 > 行 : "Additional .ini files parsed")を確認し、正しいパスを取得します。

パラメーターが反映されるよう必ずApache/Nginxサーバーを再起動してください(service apache2 restartまたはservice nginx restart)。

シミュレーションがオンの場合、Suhosinは何もブロックしておらず、エラーはログに記録されます(通常はシステムログ/var/log/syslog)。"ALERT-SIMULATION - configured POST variable limit exceeded"などのSuhosinが発するエラーメッセージが表示される場合、以下の設定を試してください(LimeSurveyでうまく機能するようです)。

suhosin.memory_limit = 128
suhosin.post.max_value_length = 5000000
suhosin.post.max_vars = 5000
suhosin.request.max_value_length = 5000000
suhosin.request.max_vars = 5000

これらのパラメータを使用すると、suhosin.simulationを"off"の値に戻すことができます(サーバーが保護され、LimeSurveyが引き続き動作します)。

Suhosinの既定値は、Limesurveyではうまく機能しません。サーバーをしっかりと保護したいなら、シミュレーションモードを使って設定を調整し、varsの場合は1000〜5000、value_lengthの場合は1000000〜5000000で適切な値を探ってください。

注意: 最近追加された追加のPHP設定があり、これも調整する必要があります。max_input_varsという設定は、suhosin.post.max_varsと同じですが、php.iniで個別に設定する必要があります。

言語を変更できない

どの言語を選択しても、インターフェース(管理者とユーザー)は常に英語で表示されます。通常、これはPHPバージョンのバグが原因です。PHPのバージョンを更新すること以外に修正する方法はありません。

一般的なエラー(IIS利用時)

Index.phpが開かない

考えられる原因: これは、必要な拡張機能をインストールしていない場合に発生する可能性があります。

  • マルチバイト文字とMSSQL(またはMySQL)拡張をインストールする必要があります。


考えられる原因: ISAPIフィルターが構成されていない

  • IISでは、ウェブサイト(ディレクトリレベルで行うことができます)で、php5isapi.dllを使用するように設定する必要があります。


Index.phpが開かず、"php.exe -i"から.dllがないというエラーが出る

これは、あまりにも多くの拡張機能をインストールすると起こることがあります。

  • すべてのPHP拡張機能をインストールすると、依存関係がすべて満たされていないため、PHPが失敗することがあります(たとえば、oracleパッケージにはoracleのdllが必要です)。
  • 必要な拡張機能だけインストールします。
  • テストするには、コマンドラインから php.exe -i を実行します。

データベースが見つからないというメッセージが出る

これは間違ったURLに移動している場合に起こります。

  • limesurvey/index.phpではなく、limesurvey/admin/install/index.phpに移動します。

上記では問題が解決しない

これは、IISを再起動しなかった場合に発生する可能性があります。

  • IISを再起動します。

忘れやすいもの。

  • .phpをphp5isapi.dllフィルターに関連付ける必要があります
  • limesurvey/tmpディレクトリーは、アンケートのアップロードのため、書き込み権限が必要です
  • php.iniでdoc_root、config.phpで$rootdirを変更します

ファイルが見当たらない("No such file or directory")

LimeSurveyをサーバーにアップロードすると、接続が中断され、一部のファイルが転送されない、または完全に転送されないことがあります。ファイルによっては、LimeSurveyのさまざまな機能や部分にアクセスするたびに、異なるエラーメッセージが表示されることがあります。ファイルが不足する場合、次のようなエラーが表示されます。

"Warning: require_once(/path/to/your/limesurvey/installation/filename) [function.require-once]: failed to open stream: No such file or directory in /path/to/your/limesurvey/installation/filename on line 12345" または、

"Fatal error: require_once() [function.require]: Failed opening required 'require_once(/path/to/your/limesurvey/installation/filename)' (include_path='.:/x/y/z) in /path/to/your/limesurvey/installation/filename on line 12345"

解決策

1. アップロードしたファイルをすべて削除します

2. ファイルを再度アップロードします

(3. 必要な場合、/limesurveyfolder/admin/installを参照して再インストールしてください)

ページを送信した後、一般的なインデックスページか404ページが表示されるか、'The CSRF token could not be verified'というメッセージが表示される

または

多数の回答/サブ質問を持つページで'次へ'をクリックしてもすべての回答が保存されない

または

'Next'をクリックしても同じページのままになる

または

クイック翻訳システムを使用すると回答/サブ質問が保存されない

または

多数の回答フィールドをエクスポートしても、すべてがエクスポートされない

  • これはウェブサーバーの設定によって制限されている可能性が高いです。max_input_vars。この設定は、サーバーにPOST(送信)できる変数の最大数を制限します。

既定では1000に設定されていますが、多くの回答オプションがある質問やたくさんの質問/回答を含むアンケートページがある場合、この制限を超える可能性があります。PHP設定(php.ini)を編集する必要があります。

  • ホストでSuhosin extension for Apacheを使用している場合は、PHP設定もチェックしてください。いくつかの設定を制限するようになっている可能性があります。
  • たとえば、2つの設定"suhosin.post.max_vars" と "suhosin.request.max_vars" は、既定では200と設定されています。これらの設定を400以上にして、ユーザーが長いアンケートを完了して提出できるようにします。
  • それでも問題が解決しない場合は、モジュールをsimulation_modeに切り替えて(つまり、基本的には無効にして)、最大値を実際のアンケートに応じて設定します。

別の理由として、プロキシまたは類似のソフトウェアが、大量の投稿要求を許可しないか、同じページをバックグラウンドで何度も要求する(新しいCSRFキーが作成されることになります)場合です。その場合は、別のインターネット接続を試してください。

LinuxでFreeTDSとMSSQL Serverを使用しているときに質問が表示されない

質問グループを慎重にチェックすると、グループの出現条件に空白文字があり、グループ全体が出現条件に当てはまらないようになっています。根本的な問題は、あなたのFreeTDSが誤った設定により空のフィールドに空白文字を返すことです。この問題は、FreeTDSプロトコルのバージョンを少なくとも8.0にすることで解決できます。従って、freetds.conf(例えば/etc/freetds/freetds.conf)を編集して、該当する行を次のように変更してください。

    tds version = 8.0

これで解決するはずです。

アンケート実施後

参加者が入力されたテキストが結果の中で疑問符として表示される

これは、データベース自体が既定でUTF-8文字セットを使用していない場合に発生します。これは、プロバイダー管理パネルを使用してデータベースを作成する必要がある場合に発生します。この問題は、データベース上で次のSQLコマンドを実行することで解決できます(たとえばphpMyAdminなどを使用)。

   ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

<your_database_name>をデータベースの名前に置き換えます。その後、アンケートを無効にしてから再度有効にしてください。