Penyelesaian Masalah
From LimeSurvey Manual
Umum
Halaman ini menyenaraikan isu teknikal yang biasa berlaku dan penyelesaiannya selepas pemasangan berjaya. Jika anda perlu menyelesaikan masalah yang berlaku semasa pemasangan, sila rujuk Soalan Lazim Pemasangan.
Apabila cuba membuka halaman log masuk pentadbiran
Mesej ralat: "No input file specified" selepas pemasangan
atau
Mana-mana URL membawa anda ke halaman senarai tinjauan
Semasa proses pemasangan, LimeSurvey cuba menentukan penyelesaian terbaik untuk format URL. Kadangkala ini tidak berfungsi dengan betul.
Anda perlu memaksa LimeSurvey menggunakan sistem pengurus URL yang lain dengan mengedit fail konfigurasi anda.
Dalam /application/config/config.php gantikan
'urlFormat' => 'path',
dengan ini:
'urlFormat' => 'get',
Kemudian cuba buka panel pentadbiran dengan menggunakan URL admin pendek:
http://<yourserver.net>/<limesurvey_dir>/admin
Selepas log masuk ke pentadbiran
Sebarang tindakan di halaman admin akan membawa anda kembali ke skrin log masuk
Ini mungkin berlaku atas sebab-sebab utama berikut:
- Masalah sesi PHP
- Masalah pengekodan UTF8
- Masalah IE
Sesi PHP :
- Kemas kini upload_tmp_dir dan session.save_path dalam php.ini
- Cipta direktori sesi dan muat naik yang dikonfigurasikan
- IIS: Berikan kebenaran untuk mencipta dan mengubah suai kepada akaun pengguna tetamu IIS
- Apache: Pastikan pelayan web anda mempunyai kebenaran untuk menulis ke dalam direktori yang dikonfigurasikan
- Semak sama ada pemboleh ubah "session.use_cookies" dalam php.ini ditetapkan kepada 1.
- Semak pemboleh ubah "session.auto_start" dalam php.ini. Jika ia ditetapkan kepada 1, tukarkannya kepada 0.
Isu Internet Explorer LimeSurvey tidak lagi menyokong akses ke antara muka pentadbiran melalui Internet Explorer.
Pengekodan UTF8 :
Jika anda mengedit mana-mana fail (kemungkinan besar config.php), jangan simpan fail itu sebagai UTF8 untuk menyokong aksara bahasa khas! Sentiasa simpan fail .php dalam format ANSI/ISO sebenar.
Menghantar halaman yang mengandungi bilangan soalan/pilihan jawapan/subsoalan yang besar tidak berfungsi
Satu tetapan baharu diperkenalkan dalam PHP 5.3.9 (dan malah dibawa ke beberapa versi PHP terdahulu): max_input_vars. Tetapan ini mengehadkan bilangan maksimum pemboleh ubah yang boleh di-POST (dihantar) ke pelayan. Nilai lalai ialah 1000 tetapi jika anda mempunyai soalan dengan banyak pilihan jawapan atau halaman tinjauan dengan sangat banyak soalan/jawapan, had ini mungkin dilebihi. Anda perlu menetapkannya dalam fail konfigurasi PHP anda (php.ini).
Tarikh tidak dipaparkan dengan betul menggunakan MSSQL Server dengan FreeTDS pada Linux
Cari fail locales.conf bagi FreeTDS dan edit fail tersebut. Jika anda tidak mempunyai aplikasi lain yang menggunakan FreeTDS, gantikan sahaja kandungannya dengan
[default]
date format = %Y-%m-%d %H:%M:%S.%z
Jika anda mempunyai aplikasi lain yang menggunakan FreeTDS, anda mungkin perlu menyemak dahulu locale mana yang perlu anda edit.
Simpan dan mulakan semula pelayan. Tarikh sepatutnya kini dipaparkan dengan betul. Jika ini tidak berfungsi, mungkin anda telah mengedit fail yang salah - ulangi langkah tersebut.
Apabila saya memasukkan aksara khas (Cina, Cyrillic, Greek, Arab) ke dalam tinjauan atau pentadbiran saya, setiap aksara dipaparkan sebagai tanda soal?
Ini berlaku jika pangkalan data anda sendiri tidak dicipta untuk menggunakan set aksara UTF-8. Ini boleh berlaku apabila anda perlu mencipta pangkalan data menggunakan panel pentadbiran penyedia. Anda boleh membetulkan masalah ini dengan melaksanakan arahan SQL berikut pada pangkalan data anda (menggunakan phpMyAdmin sebagai contoh) ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Gantikan <your_database_name> dengan nama pangkalan data anda. Anda perlu melakukan ini sebelum memasang LimeSurvey.
PageSpeed menyebabkan beberapa masalah kepada LimeSurvey
Anda perlu memasukkan ModPagespeed off dalam virtualhost LimeSurvey anda.
Jika tidak, anda tidak akan dapat menggunakan ComfortUpdate, dan tidak juga dapat melakukan eksport data. Mungkin ada fungsi lain yang akan gagal.
Semasa menjawab tinjauan
Ralat "Session has expired"
Anda mungkin pada satu ketika menerima mesej seperti:
ERROR
Kami mohon maaf tetapi sesi anda telah tamat.
Either you have been inactive for too long, you have cookies disabled for your browser, or there were problems with your connection.
Jika Suhosin diaktifkan pada pelayan anda, ia mungkin menjadi punca anda menerima mesej ini di tengah-tengah tinjauan.
Suhosin ialah sistem perlindungan lanjutan untuk pemasangan PHP, tetapi konfigurasi lalai Suhosin boleh menimbulkan masalah dengan LimeSurvey.
Pertama, semak dan uji menggunakan log Suhosin dengan menetapkan suhosin.log.sapi = 511 dan suhosin.simulation = on mengikut dokumentasi Suhosin.
Fail konfigurasi biasanya terletak di /etc/php5/apache2/conf.d/suhosin.ini, tetapi untuk memastikannya, anda boleh menyemak phpinfo anda (pentadbiran LimeSurvey > Tetapan global > Butang Tunjuk infoPHP > Baris: "Additional .ini files parsed") untuk mendapatkan laluan yang betul.
Jangan lupa memulakan semula pelayan Apache/Nginx anda supaya parameter tersebut diambil kira (service apache2 restart atau service nginx restart).
Apabila simulasi dihidupkan, Suhosin tidak menyekat apa-apa dan ralat dilaporkan dalam log (biasanya dalam log sistem anda: /var/log/syslog). Jika anda menerima mesej ralat seperti "ALERT-SIMULATION - configured POST variable limit exceeded" yang merupakan amaran daripada Suhosin..., cuba konfigurasi berikut (yang nampaknya berfungsi dengan baik bersama 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
Dengan parameter tersebut, anda sepatutnya boleh menukar semula suhosin.simulation kepada nilai "off" (supaya pelayan dilindungi dan LimeSurvey masih berfungsi).
Nilai lalai Suhosin tidak berfungsi dengan baik bersama LimeSurvey. Jika anda benar-benar ingin mengamankan pelayan anda dengan ketat, anda mungkin ingin menggunakan mod simulasi untuk melaraskan tetapan dan mencari nilai yang sesuai antara 1000 dan 5000 untuk vars serta 1000000 dan 5000000 untuk value_lengths.
Walau bahasa apa pun yang anda pilih, antara muka (pentadbir dan pengguna) sentiasa dipaparkan dalam bahasa Inggeris. Lazimnya, ini disebabkan oleh pepijat dalam versi PHP anda. Tiada pembetulan lain selain mengemas kini versi PHP anda.
Beberapa ralat biasa (tertumpu pada IIS)
Index.php tidak dapat dibuka
Kemungkinan punca: Ini mungkin berlaku jika anda belum memasang sambungan yang diperlukan
- Anda perlu memasang sambungan Multi-byte string dan MSSQL (atau MySQL)
Kemungkinan punca: Penapis ISAPI tidak dikonfigurasi
- Dalam IIS, bagi laman web (anda boleh melakukannya pada peringkat direktori), anda mesti mengkonfigurasinya untuk menggunakan php5isapi.dll
Index.php tidak dapat dibuka dan "php.exe -i" memaparkan mesej ralat tentang fail .dll yang hilang
Ini mungkin berlaku jika anda memasang terlalu banyak sambungan
- Jika anda memasang semua sambungan PHP, PHP akan gagal kerana tidak semua kebergantungan dipenuhi (cth., pakej oracle memerlukan dll oracle)
- Pasang hanya sambungan yang anda perlukan
- Untuk menguji, cuba jalankan php.exe -i daripada baris perintah
Mesej menyatakan pangkalan data tiada
Ini mungkin berlaku jika anda menavigasi ke url yang salah:
- Pastikan anda pergi ke limesurvey/admin/install/index.php dan bukannya limesurvey/index.php !
Pembetulan di atas tidak menyelesaikan masalah
Ini mungkin berlaku jika anda belum memulakan semula IIS
- Mulakan semula IIS
Perkara yang mudah dilupakan:
- .php perlu dikaitkan dengan penapis php5isapi.dll
- direktori limesurvey/tmp memerlukan kebenaran menulis untuk muat naik tinjauan
- mengemas kini doc_root dalam php.ini dan $rootdir dalam config.php
Fail hilang ("No such file or directory")
Apabila memuat naik LimeSurvey ke pelayan anda, sambungan mungkin terputus sehingga sesetengah fail tidak dipindahkan atau tidak dipindahkan sepenuhnya. Bergantung pada fail tersebut, anda boleh menerima mesej ralat yang berbeza setiap kali anda mengakses ciri/bahagian LimeSurvey yang berlainan. Ralat yang disebabkan oleh fail hilang kelihatan seperti ini:
"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" ATAU
"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"
Penyelesaian
1. Hapus semua fail yang telah dimuat naik.
2. Muat naik semula fail tersebut.
(3. Jika perlu: Pasang semula dengan melayari /limesurveyfolder/admin/install)
Selepas menghantar halaman, anda tiba di halaman indeks umum/halaman 404 atau anda menerima mesej 'The CSRF token could not be verified'
atau
Selepas mengklik 'Seterusnya' pada halaman yang mengandungi banyak jawapan/subsoalan, tidak semua jawapan disimpan
atau
Selepas mengklik 'Seterusnya', saya kekal pada halaman yang sama
atau
Menggunakan sistem terjemahan pantas tidak menyimpan jawapan atau subsoalan
atau
Apabila mengeksport sejumlah besar medan jawapan, tidak semuanya dieksport
- Ini kemungkinan besar disebabkan oleh tetapan yang menghadkan pada pelayan web anda: max_input_vars. Tetapan ini menghadkan bilangan maksimum pemboleh ubah yang boleh di-POST (dihantar) ke pelayan.
Nilai lalai ialah 1000, tetapi jika anda mempunyai soalan dengan banyak pilihan jawapan atau halaman tinjauan dengan sangat banyak soalan/jawapan, had ini mungkin dilampaui. Anda perlu mengedit konfigurasi PHP anda (php.ini).
- Selain itu, semak tetapan PHP anda jika hos anda menggunakan sambungan Suhosin untuk Apache yang mungkin ditetapkan terlalu menghad pada beberapa tetapan.
- Sebagai contoh, dua tetapan "suhosin.post.max_vars" dan "suhosin.request.max_vars" kedua-duanya ditetapkan kepada nilai 200 secara lalai. Tingkatkan kedua-dua tetapan tersebut kepada 400 atau lebih supaya pengguna dapat melengkapkan dan menghantar tinjauan yang panjang.
- Jika anda masih menghadapi masalah, cuba tukar modul kepada simulation_mode (dan dengan itu pada asasnya menyahaktifkannya), kerana nilai maksimum sentiasa bergantung pada tinjauan khusus anda.
- Sebab lain mungkin ialah proksi atau perisian serupa yang tidak membenarkan permintaan post yang besar atau permintaan halaman yang sama beberapa kali di latar belakang (yang menyebabkan kunci CSRF baharu dicipta). Cuba sambungan internet yang berbeza dalam kes ini.
Tiada soalan dipaparkan apabila menggunakan MSSQL Server dengan FreeTDS pada Linux
Jika anda menyemak dengan teliti mana-mana kumpulan soalan, terdapat satu ruang kosong dalam kaitan kumpulan yang menjadikan keseluruhan kumpulan tidak relevan. Punca sebenarnya ialah FreeTDS anda mengembalikan ruang kosong pada medan kosong akibat salah konfigurasi. Anda boleh membetulkan masalah ini dengan memaksa versi protokol FreeTDS kepada sekurang-kurangnya 8.0. Jadi, edit freetds.conf (cth. /etc/freetds/freetds.conf) dan tukar baris yang berkaitan kepada
tds version = 8.0
Itu sepatutnya menyelesaikan masalah ini.
Selepas menjawab tinjauan
Teks yang dimasukkan oleh peserta muncul sebagai tanda soal dalam keputusan
Ini berlaku jika pangkalan data anda sendiri tidak menggunakan set aksara UTF-8 secara lalai. Ini boleh berlaku apabila anda perlu mencipta pangkalan data menggunakan panel pentadbiran penyedia. Anda boleh membetulkan masalah ini dengan melaksanakan perintah SQL berikut pada pangkalan data anda (contohnya menggunakan phpMyAdmin):
ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Gantikan <your_database_name> dengan nama pangkalan data anda. Selepas itu, nyahaktifkan tinjauan anda dan aktifkan semula.
Isu khusus pangkalan data
Saya mahu LimeSurvey menggunakan skema Postgres tertentu
Tetapkan dalam config.php 'initSQLs' => array('SET search_path TO "LimeSurvey";'), Lihat config-defaults untuk contoh.