Алдаа засварлах
From LimeSurvey Manual
Ерөнхий
Энэ хуудсанд амжилттай суулгасны дараа гарч болох техникийн ердийн асуудлууд болон тэдгээрийн шийдлийг жагсаасан болно. Суулгалтын явцад гарсан асуудлыг засах шаардлагатай бол Суулгалтын түгээмэл асуултууд-ыг үзнэ үү.
Удирдлагын нэвтрэх хуудсыг нээхийг оролдоход
Алдааны зурвас: суулгасны дараа "No input file specified"
эсвэл
Ямар ч URL таныг судалгааны жагсаалт хуудас руу аваачна
Суулгалтын явцад LimeSurvey URL-ийн форматад хамгийн тохиромжтой шийдлийг тодорхойлохыг оролддог. Заримдаа энэ нь зөв ажилладаггүй.
Та тохиргооны файлаа засах замаар LimeSurvey-г өөр URL удирдагчийн системийг ашиглахад албадах хэрэгтэй.
/application/config/config.php файлд дараахийг солино уу:
'urlFormat' => 'path',
дараахаар:
'urlFormat' => 'get',
Дараа нь админы богино URL ашиглан удирдлагын самбарыг нээж үзнэ үү:
http://<yourserver.net>/<limesurvey_dir>/admin
Удирдлагад нэвтэрсний дараа
Админ хуудсан дээрх аливаа үйлдэл таныг нэвтрэх дэлгэц рүү буцаана
Үүнд дараах гол шалтгаанууд байж болно:
- PHP сессийн асуудал
- UTF8 кодчилолын асуудал
- IE-ийн асуудал
PHP сесс :
- php.ini файлд upload_tmp_dir болон session.save_path утгыг шинэчилнэ үү
- Тохируулсан сесс болон байршуулалтын хавтсуудыг үүсгэнэ үү
- IIS: IIS guest хэрэглэгчийн акаунтад үүсгэх болон өөрчлөх зөвшөөрөл олгоно уу
- Apache: Вэб серверт тохируулсан хавтсанд бичих зөвшөөрөл байгаа эсэхийг шалгана уу
- php.ini файлд "session.use_cookies" хувьсагч 1 гэж тохируулагдсан эсэхийг шалгана уу.
- php.ini файлд "session.auto_start" хувьсагчийг шалгана уу. Хэрэв 1 бол 0 болгож өөрчилнө үү.
Internet Explorer-ийн асуудал LimeSurvey нь удирдлагын интерфэйс рүү Internet Explorer-ээр нэвтрэхийг цаашид дэмжихгүй.
UTF8 кодчилол :
Хэрэв та ямар нэгэн файлыг (ихэнхдээ config.php) засварлавал тусгай хэлний тэмдэгтийг дэмжих гэж UTF8 хэлбэрээр хадгалж болохгүй! .php файлуудыг үргэлж жинхэнэ ANSI/ISO форматаар хадгална уу.
Олон тооны асуулт/хариултын сонголт/дэд асуулт агуулсан хуудсыг илгээх нь ажиллахгүй байна
PHP 5.3.9-д (мөн зарим хуучин PHP хувилбарт буцаан нэмэгдсэн) шинэ тохиргоо нэвтэрсэн: max_input_vars. Энэ тохиргоо нь серверт POST хийж (илгээж) болох хувьсагчийн хамгийн их тоог хязгаарладаг. Уламжлалт утга нь 1000 боловч олон хариултын сонголттой асуулт эсвэл маш олон асуулт/хариулт бүхий судалгааны хуудас байвал энэ хязгаараас хэтэрч болно. Үүнийг PHP тохиргооны файлд (php.ini) тохируулах шаардлагатай.
Linux дээрх FreeTDS-тэй MSSQL Server ашиглахад огноо буруу харагдаж байна
FreeTDS-ийн locales.conf файлыг олж засна уу. Хэрэв FreeTDS ашигладаг өөр програм байхгүй бол агуулгыг дараахаар бүтнээр нь солино уу:
[default]
date format = %Y-%m-%d %H:%M:%S.%z
Хэрэв FreeTDS ашигладаг өөр програмууд байгаа бол эхлээд ямар locale-ийг засах хэрэгтэйг шалгах нь зүйтэй.
Хадгалаад серверээ дахин эхлүүлнэ үү. Одоо огноо зөв харагдах ёстой. Хэрэв энэ нь ажиллахгүй бол буруу файлыг засварласан байж магадгүй тул дахин давтан хийнэ үү.
Судалгаа эсвэл удирдлагадаа тусгай тэмдэгт (хятад, кирилл, грек, араб) оруулахад тэмдэгт бүр асуултын тэмдэг болж харагдаж байна уу?
Энэ нь таны мэдээллийн сан өөрөө UTF-8 тэмдэгтийн багц ашиглахаар үүсгэгдээгүй үед гардаг. Үүнийг үйлчилгээ үзүүлэгчийн удирдлагын самбараар мэдээллийн сан үүсгэх шаардлагатай үед гарч болно. Та дараах SQL командыг мэдээллийн сан дээрээ (жишээлбэл phpMyAdmin ашиглан) ажиллуулснаар энэ асуудлыг засаж болно ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
<your_database_name>-ийг өөрийн мэдээллийн сангийн нэрээр солино уу. Үүнийг LimeSurvey-г суулгахаас өмнө хийх шаардлагатай.
PageSpeed нь Limesurvey-д зарим асуудал үүсгэдэг
Та LimeSurvey-н virtualhost-д ModPagespeed off гэж оруулах хэрэгтэй.
Эс бөгөөс та ComfortUpdate-г ашиглах боломжгүй, мөн мэдээлэл экспортлох боломжгүй болно. Магадгүй өөр зүйл ч бас ажиллахгүй байж болно.
Судалгаа бөглөх үед
"Session has expired" алдаа
Та заримдаа дараах төрлийн зурвас хүлээн авч болно:
ERROR
Уучлаарай, таны холболтын хугацаа дууссан байна.
Та хэт удаан идэвхгүй байсан, хөтөч дээрээ күүкийг идэвхгүй болгосон, эсвэл холболтод асуудал гарсан байж болзошгүй.
Хэрэв таны серверт Suhosin идэвхтэй байгаа бол судалгааны дундуур энэ алдаа гарах шалтгаан нь тэр байж болно.
Suhosin нь PHP суулгацад зориулсан дэвшилтэт хамгаалалтын систем боловч Suhosin-ы үндсэн тохиргоо LimeSurvey-д асуудал үүсгэж болно.
Эхлээд Suhosin баримт бичгийн дагуу suhosin.log.sapi = 511 болон suhosin.simulation = on гэж тохируулж, Suhosin логийг ашиглан шалгаж, туршина уу.
Тохиргооны файл ихэвчлэн /etc/php5/apache2/conf.d/suhosin.ini дотор байрладаг боловч зөв замыг мэдэхийн тулд phpinfo-г шалгаж болно (LimeSurvey администраци > Олон улсын тохиргоонууд > PHP мэдээг үзүүлэх товч > Мөр: "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_lengths-д 1000000-аас 5000000 хүртэлх тохиромжтой утгыг олох хэрэгтэй.
Би хэлийг өөрчилж чадахгүй байна!
Та ямар хэл сонгосноос үл хамааран интерфейс (админ болон хэрэглэгч) үргэлж англи хэлээр харагдана. Ихэвчлэн энэ нь таны PHP хувилбар доторх алдаанаас болдог. PHP хувилбараа шинэчлэхээс өөр засвар байхгүй.
Түгээмэл алдаанууд (IIS-д чиглэсэн)
Index.php нээгдэхгүй байна
Боломжит шалтгаан: Шаардлагатай өргөтгөлүүдийг суулгаагүй бол ийм зүйл гарч болно
- Multi-byte string болон 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' гэсэн мессеж гарч байна
эсвэл
Олон тооны хариулт/дэд асуулттай хуудсан дээр 'Дараах' товчийг дарсны дараа бүх хариулт хадгалагдахгүй байна
эсвэл
Дараах товчийг дарсны дараа би нэг хуудсан дээр үлдэж байна
эсвэл
Хурдан орчуулах системийг ашиглахад хариулт эсвэл дэд асуултууд хадгалагдахгүй байна
эсвэл
Олон тооны хариултын талбарыг экспортлоход бүгд экспортлогдохгүй байна
- Энэ нь таны вэб серверийн хязгаарлалттай тохиргоо болох max_input_vars -ээс шалтгаалсан байх магадлалтай. Энэ тохиргоо нь серверт POST хийж (илгээж) болох хувьсагчдын хамгийн их тоог хязгаарладаг.
Үндсэн утга нь 1000 байдаг боловч хэрэв танд олон хариултын сонголттой асуулт эсвэл маш олон асуулт/хариулттай судалгааны хуудас байвал энэ хязгаарыг хэтрүүлж магадгүй. Та PHP тохиргооны файлаа (php.ini) засах шаардлагатай.
- Мөн таны хостинг Apache-д зориулсан Suhosin өргөтгөл-ийг ашиглаж байгаа бол PHP тохиргоогоо шалгана уу, учир нь зарим тохиргоо хэт хязгаарлалттай байж болно.
- Жишээлбэл, "suhosin.post.max_vars" болон "suhosin.request.max_vars" гэсэн хоёр тохиргоо хоёулаа анхдагчаар 200 утгатай байдаг. Хэрэглэгчид урт судалгааг гүйцээж илгээх боломжтой болохын тулд эдгээр хоёр тохиргоог 400 буюу түүнээс дээш болгоно уу.
- Хэрэв асуудал хэвээр байвал модулийг simulation_mode руу шилжүүлж (ингэснээр үндсэндээ идэвхгүй болгож) үзээрэй, учир нь хамгийн их утга нь таны судалгаанаас хамаардаг.
- Өөр нэг шалтгаан нь том POST хүсэлтийг зөвшөөрдөггүй эсвэл ар талд нэг хуудсыг олон удаа хүсдэг (энэ нь шинэ CSRF-түлхүүр үүсгэхэд хүргэдэг) прокси эсвэл түүнтэй төстэй программ байж болно. Энэ тохиолдолд өөр интернэт холболт ашиглаж үзнэ үү.
Linux дээр FreeTDS-тэй MSSQL Server ашиглахад асуултууд харагдахгүй байна
Хэрэв та аливаа асуултын бүлгийг сайтар шалгавал Бүлгийн хамаарал дотор зай байгаа нь бүх бүлгийг хамааралгүй болгодог. Үндсэн асуудал нь таны FreeTDS буруу тохируулгаас болж хоосон талбарт зай буцааж байгаа явдал юм. Та FreeTDS протоколын хувилбарыг дор хаяж 8.0 болгон тохируулснаар энэ асуудлыг засах боломжтой. Иймд freetds.conf (жишээ нь /etc/freetds/freetds.conf) файлыг засаад холбогдох мөрийг дараах байдлаар өөрчилнө үү
tds version = 8.0
Энэ нь асуудлыг засах ёстой.
Судалгааг бөглөсний дараа
Оролцогчийн оруулсан текстүүд үр дүнд асуултын тэмдэг болж харагдаж байна
Энэ нь таны өгөгдлийн сан өөрөө анхдагчаар UTF-8 тэмдэгтийн багц ашигладаггүй үед тохиолддог. Өгөгдлийн санг хостинг үйлчилгээ үзүүлэгчийн удирдлагын самбараар үүсгэх шаардлагатай үед ингэж болдог. Та өөрийн өгөгдлийн сан дээр (жишээ нь phpMyAdmin ашиглан) дараах SQL тушаалыг ажиллуулснаар энэ асуудлыг засах боломжтой:
ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
<your_database_name>-ийг өөрийн өгөгдлийн сангийн нэрээр солино уу. Үүний дараа судалгаагаа идэвхгүй болгоод дахин идэвхжүүлнэ үү.
Өгөгдлийн сангийн онцлог асуудлууд
Би LimeSurvey-г тодорхой Postgres схем ашиглуулахыг хүсэж байна
config.php файлд дараахыг тохируулна уу 'initSQLs' => array('SET search_path TO "LimeSurvey";'), Жишээг config-defaults файлаас харна уу.