Actions

トラブルシューティング

From LimeSurvey Manual

Revision as of 08:20, 16 August 2018 by Bravehorse (talk | contribs) (Created page with "===データベースが見つからないというメッセージが出る===")

概要

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

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

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

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

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

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

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

     'urlFormat' => 'path',			


次のように改めます。

     'urlFormat' => 'get',

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

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

管理にログインした後

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

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

  • PHPセッションの問題
  • UTF8エンコーディングの問題
  • IE(6、7、8)の問題

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に変更する。

UTF8エンコーディング:

任意のファイル(大抵はconfig.php)を編集した場合、特別な言語の文字をサポートするためにUTF8として保存しないでください。常にANSI/ISO形式で.phpファイルを保存してください。1.87から、'全体設定'ダイアログを使用して、アプリケーション内で最も重要な設定(サイト名、管理者名など)を行うことができます。

IEのcookie :

IE(6、7、8)では、サーバーのホスト名でアンダースコア"_"をサポートしていません。そのような場合、cookieは管理も設定もされません。したがって、apacheまたはIISの下で、サーバーのホスト名を変更してください。

多数の質問/回答オプション/サブ質問を含むページを送信した後、保存されない

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サーバを再起動することを忘れないでください(service apache2 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 を実行します。

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

This may happen if you navigate to wrong url

  • Make sure you go to limesurvey/admin/install/index.php instead of limesurvey/index.php !

Above fixes do not solve the problem

This may happen if you have not restarted IIS

  • Restart IIS

Things that were easy to forget:

  • .php needs to be associated to php5isapi.dll filter (It did this for me automagically)
  • limesurvey/tmp directory needs writer permission for survey uploads
  • updating doc_root in php.ini and $rootdir in config.php

Missing files ("No such file or directory")

When uploading LimeSurvey to your server it might happen that the connection is interrupted so that some files are not transferred or not transferred completely. Depending on the files you can receive error message at different part of LimeSurvey usage. Normally missing files throw errors like

"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" OR

"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"

Solution

1. Delete all uploaded files.

2. Re-upload the files.

(3. If necessary: Re-install by browsing to /limesurveyfolder/admin/install)

After submitting a page you end up at the general index page/at a 404 page or you get the message 'The CSRF token could not be verified'

or

After clicking 'Next' on page having a big number of answers/subquestions not all responses are saved

or

After clicking 'Next' I end up on the same page

or

Using quick translation system don't save answers or subquestions

or

When exporting a big number of response fields not all are exported

This is most likely because of a limiting setting in your webserver: max_input_vars . This setting limits the maximum number of variables that can be POSTed (submitted) to the server. Default is set to 1000 but if you have a question with lots of answer options or a survey page with lots and lots of questions/answers this limit might be exceeded. You will need to set this in your PHP configuration (php.ini).

Also check your PHP settings if your host is using the Suhosin extension for Apache which may be set to be too limiting on a couple of settings.

For example the two settings "suhosin.post.max_vars" and "suhosin.request.max_vars" are both set to a value of 200 by default. Increase those settings both to 400 or higher so users can complete and submit long surveys.

If you still have problems, try switching the module to simulation_mode (and so basically deactivate it), as the maximum value always depends on your particular survey.

Another reason might be a proxy or a similar software not allowing big post requests or requesting the same page several times in the background (which leads to a new CSRF-key being created). In that case try a different internet connection.

No questions are shown when using MSSQL Server with FreeTDS on Linux

If you check carefully any question group there is a space in the group relevance which makes the entire group non-relevant. The underlying problem is that your FreeTDS returns spaces on empty fields because of a misconfiguration. You can fix this problem by forcing the FreeTDS protocol version to at least 8.0. So edit freetds.conf (e.g. /etc/freetds/freetds.conf) and change the according line to

    tds version = 8.0

Thath should fix this issue.

After taking the survey

Texts that were entered by the participant appear as question marks in the results

This happens if your database itself does not by default use an UTF-8 charset. This can happen when you have to create the database using a provider administration panel. You can fix this problem by executing the following SQL command on your database (using for example phpMyAdmin)

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

Replace <your_database_name> with the name of your database. After you did that deactivate your survey and activate it, again.