Xử lý sự cố
From LimeSurvey Manual
General
Trang này liệt kê các vấn đề kỹ thuật điển hình và giải pháp sau khi cài đặt thành công. Nếu bạn cần khắc phục sự cố xảy ra trong quá trình cài đặt, vui lòng tham khảo Câu hỏi thường gặp về cài đặt.
Khi cố gắng mở trang đăng nhập quản trị
Thông báo lỗi: "Không có tệp đầu vào được chỉ định" sau khi cài đặt
hoặc
Bất kỳ URL nào cũng cho phép bạn kết thúc trên trang danh sách khảo sát
Trong quá trình cài đặt, LimeSurvey cố gắng xác định giải pháp tốt nhất cho định dạng URL. Đôi khi điều này không hoạt động đúng.
Bạn phải buộc LimeSurvey sử dụng hệ thống quản lý URL khác bằng cách chỉnh sửa tệp cấu hình của mình.
Trong /application/config/config.php thay thế
'urlFormat' => 'đường dẫn',
bằng cách này:
'urlFormat' => 'lấy',
Sau đó thử mở bảng quản trị bằng cách sử dụng URL quản trị ngắn:
http://<yourserver.net> /<limesurvey_dir> /quản trị viên
Sau khi đăng nhập vào quản trị
Mọi hành động trong trang quản trị sẽ đưa bạn trở lại màn hình đăng nhập
Điều này có thể xảy ra vì những lý do chính sau :
- Sự cố phiên PHP
- Sự cố mã hóa UTF8
- Sự cố IE
Phiên PHP :
- Cập nhật upload_tmp_dir và session.save_path trong php.ini
- Tạo phiên được định cấu hình và thư mục tải lên
- IIS: Được chỉ định quyền tạo và sửa đổi đối với tài khoản người dùng khách IIS
- Apache : Đảm bảo máy chủ web của bạn có quyền ghi vào thư mục đã định cấu hình
- Kiểm tra xem biến "session.use_cookies" trong php.ini có được đặt thành 1.
- Kiểm tra biến "session.auto_start" trong php.ini. ini. Nếu nó được đặt thành 1, hãy thay đổi nó thành 0.
Sự cố với Internet Explorer LimeSurvey không còn hỗ trợ việc truy cập vào giao diện quản trị qua Internet Explorer nữa.
Mã hóa UTF8:
Nếu bạn chỉnh sửa bất kỳ tệp nào (rất có thể là config.php), đừng lưu nó dưới dạng UTF8 để hỗ trợ các ký tự ngôn ngữ đặc biệt! Luôn lưu tệp .php ở định dạng ANSI/ISO thực.
Gửi một trang chứa nhiều câu hỏi/tùy chọn trả lời/câu hỏi phụ không hoạt động
Có một cài đặt mới được giới thiệu trong PHP 5.3.9 (và thậm chí còn được chuyển sang một số phiên bản PHP trước đó): max_input_vars. Cài đặt này giới hạn số lượng biến tối đa có thể được ĐĂNG (gửi) tới máy chủ. Mặc định được đặt thành 1000 nhưng nếu bạn có câu hỏi có nhiều tùy chọn trả lời hoặc trang khảo sát có rất nhiều câu hỏi/câu trả lời giới hạn này có thể bị vượt quá. Bạn sẽ cần thiết lập điều này trong tệp cấu hình PHP (php.ini).
Ngày tháng không được hiển thị chính xác khi sử dụng Máy chủ MSSQL có FreeTDS trên Linux
Xác định vị trí tệp locales.conf của FreeTDS và chỉnh sửa nó. Nếu bạn không có bất kỳ ứng dụng nào khác sử dụng FreeTDS, chỉ cần thay thế nội dung bằng
[mặc định]
định dạng ngày = %Y-% m- %d %H:% M: %S.% z
Nếu bạn có các ứng dụng khác sử dụng FreeTDS, trước tiên bạn có thể muốn kiểm tra xem bạn cần chỉnh sửa ngôn ngữ nào.
Lưu và khởi động lại máy chủ. Ngày bây giờ sẽ được hiển thị chính xác. Nếu cách này không hiệu quả, bạn có thể đã chỉnh sửa sai tệp - hãy rửa sạch và lặp lại.
Khi tôi nhập các ký tự đặc biệt (tiếng Trung, tiếng Cyrillic, tiếng Hy Lạp, tiếng Ả Rập) vào khảo sát hoặc quản lý của mình, mọi ký tự đều được hiển thị dưới dạng dấu chấm hỏi?
Điều này xảy ra nếu cơ sở dữ liệu của bạn không được tạo để sử dụng bộ ký tự UTF-8. Điều này có thể xảy ra khi bạn phải tạo cơ sở dữ liệu bằng bảng quản trị của nhà cung cấp. Bạn có thể khắc phục sự cố này bằng cách thực thi lệnh SQL sau trên cơ sở dữ liệu của mình (sử dụng phpMyAdmin chẳng hạn) ALTER DATABASE `<your_database_name> ` BỘ KÝ TỰ MẶC ĐỊNH utf8 THU THẬP utf8_unicode_ci;
Thay thế<your_database_name> với tên cơ sở dữ liệu của bạn. Bạn cần phải làm điều này trước khi cài đặt LimeSurvey.
PageSpeed tạo ra một số rắc rối cho Limesurvey
Bạn nên tắt ModPagespeed trong máy chủ ảo LimeSurvey của mình.
Nếu không, bạn sẽ không thể sử dụng ConfortUpdate cũng như không thể xuất dữ liệu. Có lẽ một cái gì đó khác sẽ thất bại.
Trong khi tham gia khảo sát
Lỗi "Phiên đã hết hạn"
Có thể tại một thời điểm nào đó bạn sẽ nhận được một thông báo như:
LỖI
Chúng tôi rất tiếc nhưng phiên của bạn đã hết hạn.
Có thể bạn đã không hoạt động quá lâu, trình duyệt của bạn đã tắt cookie hoặc có vấn đề với kết nối của bạn.
Nếu Suhosin được kích hoạt trên máy chủ của bạn, đó có thể là lý do khiến bạn nhận được thông báo này ngay giữa cuộc khảo sát.
Suhosin là một hệ thống bảo vệ nâng cao để cài đặt PHP nhưng cấu hình mặc định của Suhosin có thể gây rắc rối với LimeSurvey.
Trước tiên, hãy kiểm tra và kiểm tra bằng nhật ký Suhosin bằng cách đặt suhosin.log.sapi = 511 và suhosin.simulation = bật theo Tài liệu Suhosin.
Tệp cấu hình thường nằm trong /etc/php5/apache2/conf.d/suhosin.ini, nhưng để chắc chắn bạn có thể kiểm tra phpinfo của mình (Quản trị LimeSurvey > Cài đặt chung > Nút Hiển thị phpinfo > Dòng: "Các tệp .ini bổ sung được phân tích cú pháp ") để có được đường dẫn chính xác.
Đừng quên khởi động lại máy chủ Apache/Nginx của bạn để các tham số được tính đến (khởi động lại dịch vụ apache2 hoặc khởi động lại dịch vụ nginx).
Khi mô phỏng được bật, Suhosin không chặn bất kỳ thứ gì và các lỗi được báo cáo vào nhật ký (thường là trong nhật ký hệ thống của bạn: /var/log/syslog). Nếu bạn nhận được thông báo lỗi chẳng hạn như "ALERT-SIMULATION - đã vượt quá giới hạn biến POST được định cấu hình" thì đó là cảnh báo của Suhosin...", hãy thử cấu hình sau (có vẻ như hoạt động tốt với 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
Với các tham số đó, bạn sẽ có thể chuyển suhosin.simulation về giá trị "tắt" (để máy chủ được bảo vệ và LimeSurvey vẫn hoạt động).
Các giá trị mặc định của Suhosin không hoạt động tốt với LimeSurvey. Nếu bạn thực sự muốn bảo mật máy chủ của mình một cách chặt chẽ, bạn có thể muốn sử dụng chế độ mô phỏng để điều chỉnh cài đặt và tìm các giá trị phù hợp trong khoảng từ 1000 đến 5000 cho các vars và 1000000 và 5000000 cho value_lengths.
Tôi không thể thay đổi ngôn ngữ!
Dù bạn chọn ngôn ngữ nào thì giao diện (quản trị viên và người dùng) luôn hiển thị bằng tiếng Anh. Thông thường, điều này xảy ra do lỗi trong phiên bản PHP của bạn. Không có cách khắc phục nào khác ngoài việc cập nhật phiên bản PHP của bạn.
Một số lỗi thường gặp (tập trung vào IIS)
Index.php sẽ không mở
Nguyên nhân có thể: Điều này có thể xảy ra nếu bạn chưa cài đặt các tiện ích mở rộng cần thiết
- Bạn cần cài đặt các tiện ích mở rộng chuỗi nhiều byte và MSSQL (hoặc MySQL)
Nguyên nhân có thể: Bộ lọc ISAPI chưa được định cấu hình
- Trong IIS, đối với trang web (bạn có thể thực hiện việc này ở cấp thư mục), bạn phải định cấu hình nó để sử dụng php5isapi.dll
Index.php không mở được và "php.exe -i" đưa ra thông báo lỗi về việc thiếu .dll
Điều này có thể xảy ra nếu bạn cài đặt quá nhiều tiện ích mở rộng
- Nếu bạn cài đặt tất cả các tiện ích mở rộng PHP, PHP sẽ thất bại vì không đáp ứng được tất cả các phần phụ thuộc (ví dụ: gói oracle cần dll của oracle)
- Chỉ cài đặt các tiện ích mở rộng bạn cần
- Để kiểm tra, hãy thử chạy php.exe -i từ dòng lệnh
Thông báo cơ sở dữ liệu bị thiếu
Điều này có thể xảy ra nếu bạn điều hướng đến sai url:
- Hãy đảm bảo bạn truy cập Limesurvey/admin/install/index.php thay vì Limesurvey/index.php !
Các cách khắc phục trên không giải quyết được vấn đề
Điều này có thể xảy ra nếu bạn chưa khởi động lại IIS
- Khởi động lại IIS
Những điều dễ quên:
- .php cần được liên kết để lọc thư mục php5isapi.dll
- Limesurvey/tmp cần có quyền viết để tải lên khảo sát
- cập nhật doc_root trong php.ini và $rootdir trong config.php
Thiếu tệp ("Không có tệp hoặc thư mục như vậy")
Khi tải LimeSurvey lên máy chủ của bạn, có thể xảy ra trường hợp kết nối bị gián đoạn khiến một số tệp không được chuyển hoặc không được chuyển hoàn toàn. Tùy thuộc vào tệp, bạn có thể nhận được các thông báo lỗi khác nhau bất cứ khi nào bạn truy cập các tính năng/phần khác nhau của LimeSurvey. Các lỗi ném tệp bị thiếu trông như thế này:
"Cảnh báo: require_once(/path/to/your/limesurvey/installation/filename) [function.require-once]: không mở được luồng: Không có tệp hoặc thư mục như vậy trong /path/to/your/limesurvey/installation/filename trên dòng 12345" HOẶC
"Lỗi nghiêm trọng: require_once() [function.require]: Yêu cầu mở không thành công 'require_once(/path/to/your/limesurvey/installation/filename)' (include_path='.:/x/y/z) trong /path/ tới/your/limesurvey/installation/tên tệp trên dòng 12345"
Giải pháp
1. Xóa tất cả các tệp đã tải lên.
2. Tải lại tập tin lên.
(3. Nếu cần: Cài đặt lại bằng cách duyệt đến /limesurveyfolder/admin/install)
Sau khi gửi một trang, bạn sẽ đến trang chỉ mục chung/trên trang 404 hoặc bạn nhận được thông báo 'Không thể xác minh mã thông báo CSRF'
hoặc
Sau khi nhấp vào 'Tiếp theo' trên một trang chứa nhiều câu trả lời/câu hỏi phụ, không phải tất cả các câu trả lời đều được lưu
hoặc
Sau khi nhấp vào 'Tiếp theo', tôi sẽ kết thúc trên cùng một trang
hoặc
Sử dụng hệ thống dịch nhanh sẽ không lưu câu trả lời hoặc câu hỏi phụ
hoặc
Khi xuất một số lượng lớn trường phản hồi, không phải tất cả chúng đều được xuất
- Điều này rất có thể là do cài đặt giới hạn trong máy chủ web của bạn: max_input_vars . Cài đặt này giới hạn số lượng biến tối đa có thể được ĐĂNG (gửi) tới máy chủ.
Mặc định được đặt thành 1000, nhưng nếu bạn có câu hỏi có nhiều tùy chọn trả lời hoặc trang khảo sát có rất nhiều câu hỏi/ câu trả lời, giới hạn này có thể bị vượt quá. Bạn sẽ cần chỉnh sửa cấu hình PHP (php.ini).
- Ngoài ra, hãy kiểm tra cài đặt PHP của bạn nếu máy chủ của bạn đang sử dụng tiện ích mở rộng Suhosin cho Apache, tiện ích này có thể được đặt ở mức quá hạn chế đối với một số cài đặt.
- Ví dụ: cả hai cài đặt "suhosin.post.max_vars" và "suhosin.request.max_vars" đều được đặt thành giá trị 200 theo mặc định. Tăng cả hai cài đặt đó lên 400 hoặc cao hơn để người dùng có thể hoàn thành và gửi các bản khảo sát dài.
- Nếu bạn vẫn gặp sự cố, hãy thử chuyển mô-đun sang mô phỏng_mode (và về cơ bản là tắt nó), vì giá trị tối đa luôn phụ thuộc vào khảo sát cụ thể của bạn.
- Một lý do khác có thể là proxy hoặc phần mềm tương tự không cho phép yêu cầu bài đăng lớn hoặc yêu cầu cùng một trang nhiều lần trong nền (dẫn đến việc tạo khóa CSRF mới). Hãy thử kết nối Internet khác trong trường hợp này.
Không có câu hỏi nào được hiển thị khi sử dụng Máy chủ MSSQL với FreeTDS trên Linux
Nếu bạn kiểm tra cẩn thận bất kỳ nhóm câu hỏi nào thì sẽ có một khoảng trống trong mức độ liên quan của nhóm khiến toàn bộ nhóm không liên quan. Vấn đề cơ bản là FreeTDS của bạn trả về khoảng trắng trên các trường trống do cấu hình sai. Bạn có thể khắc phục sự cố này bằng cách buộc phiên bản giao thức FreeTDS tối thiểu là 8.0.
Vì vậy, hãy chỉnh sửa freetds.conf (ví dụ /etc/freetds/freetds.conf) và thay đổi dòng tương ứng thành
phiên bản tds = 8.0
Điều đó sẽ khắc phục vấn đề này.
Sau khi thực hiện khảo sát
Văn bản được người tham gia nhập sẽ xuất hiện dưới dạng dấu chấm hỏi trong kết quả
Điều này xảy ra nếu cơ sở dữ liệu của bạn không sử dụng bộ ký tự UTF-8 theo mặc định. Điều này có thể xảy ra khi bạn phải tạo cơ sở dữ liệu bằng bảng quản trị của nhà cung cấp. Bạn có thể khắc phục sự cố này bằng cách thực thi lệnh SQL sau trên cơ sở dữ liệu của mình (ví dụ sử dụng phpMyAdmin):
THAY ĐỔI CƠ SỞ DỮ LIỆU `<your_database_name> ` BỘ KÝ TỰ MẶC ĐỊNH utf8 THU THẬP utf8_unicode_ci;
Thay thế<your_database_name> với tên cơ sở dữ liệu của bạn. Sau khi bạn làm điều đó, hãy hủy kích hoạt khảo sát của bạn và kích hoạt lại.
Vấn đề cụ thể về cơ sở dữ liệu
Tôi muốn LimeSurvey sử dụng một lược đồ Postgres cụ thể
Set in config.php 'initSQLs' => array('SET search_path TO "LimeSurvey";'), Xem config-defaults để biết một ví dụ.