Resolução de problemas
From LimeSurvey Manual
Geral
Esta página enumera problemas técnicos típicos e as respetivas soluções depois de uma instalação bem-sucedida. Se precisar de resolver problemas que ocorrem durante a instalação, consulte as Perguntas frequentes sobre a instalação.
Ao tentar abrir a página de início de sessão da administração
Mensagem de erro: "No input file specified" após a instalação
ou
Qualquer URL leva-o à página da lista de inquéritos
Durante o processo de instalação, o LimeSurvey tenta determinar a melhor solução para o formato do URL. Por vezes, isto não funciona corretamente.
Tem de forçar o LimeSurvey a utilizar outro sistema de gestão de URL, editando o seu ficheiro de configuração.
Em /application/config/config.php substitua
'urlFormat' => 'path',
por isto:
'urlFormat' => 'get',
Em seguida, tente abrir o painel de administração utilizando o URL curto de administração:
http://<yourserver.net>/<limesurvey_dir>/admin
Depois de iniciar sessão na administração
Qualquer ação na página de administração devolve-o ao ecrã de início de sessão
Isto pode acontecer pelos seguintes motivos principais:
- Problemas com as sessões PHP
- Problemas de codificação UTF8
- Problemas com o IE
Sessões PHP:
- Atualize upload_tmp_dir e session.save_path no php.ini
- Crie as pastas de sessão e de carregamento configuradas
- IIS: Atribua permissão de criação e modificação à conta de utilizador convidado do IIS
- Apache: Certifique-se de que o seu servidor web tem permissões para escrever na pasta configurada
- Verifique se a variável "session.use_cookies" no php.ini está definida como 1.
- Verifique a variável "session.auto_start" no php.ini. Se estiver definida como 1, altere-a para 0.
Problemas com o Internet Explorer O LimeSurvey já não suporta o acesso à interface de administração através do Internet Explorer.
Codificação UTF8:
Se editar qualquer ficheiro (provavelmente o config.php), não o guarde como UTF8 para suportar caracteres especiais de idiomas! Guarde sempre os ficheiros .php no verdadeiro formato ANSI/ISO.
O envio de uma página que contém um grande número de perguntas/opções de resposta/subperguntas não funciona
Foi introduzida uma nova definição no PHP 5.3.9 (e foi até adaptada para algumas versões anteriores do PHP): max_input_vars. Esta definição limita o número máximo de variáveis que podem ser enviadas por POST para o servidor. O valor predefinido é 1000, mas se tiver uma pergunta com muitas opções de resposta ou uma página de inquérito com muitíssimas perguntas/respostas, este limite pode ser excedido. Terá de definir este valor no seu ficheiro de configuração do PHP (php.ini).
As datas não são apresentadas corretamente ao utilizar o MSSQL Server com FreeTDS em Linux
Localize o ficheiro locales.conf do FreeTDS e edite-o. Se não tiver outras aplicações a utilizar o FreeTDS, substitua simplesmente o conteúdo por
[default]
date format = %Y-%m-%d %H:%M:%S.%z
Se tiver outras aplicações a utilizar o FreeTDS, convém verificar primeiro qual a localização (locale) que precisa de editar.
Guarde e reinicie o servidor. As datas deverão agora ser apresentadas corretamente. Se isto não funcionar, pode ter editado o ficheiro errado - repita o processo.
Quando introduzo caracteres especiais (chinês, cirílico, grego, árabe) no meu inquérito ou na administração, todos os caracteres aparecem como pontos de interrogação?
Isto acontece se a sua base de dados não tiver sido criada para utilizar o conjunto de caracteres UTF-8. Pode acontecer quando tem de criar a base de dados através de um painel de administração do fornecedor. Pode resolver este problema executando o seguinte comando SQL na sua base de dados (utilizando, por exemplo, o phpMyAdmin) ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Substitua <your_database_name> pelo nome da sua base de dados. Tem de fazer isto antes de instalar o LimeSurvey.
O PageSpeed causa alguns problemas ao LimeSurvey
Deve incluir ModPagespeed off no virtualhost do seu LimeSurvey.
Caso contrário, não poderá utilizar o ComfortUpdate nem exportar dados. Provavelmente, mais alguma coisa irá falhar.
Ao responder a um inquérito
Erro "A sessão expirou"
Pode, a determinada altura, receber uma mensagem como:
ERROR
Lamentamos, mas a sua sessão expirou.
Ou esteve inativo durante demasiado tempo, ou tem os cookies desativados no seu navegador, ou houve problemas com a sua ligação.
Se o Suhosin estiver ativado no seu servidor, pode ser esse o motivo pelo qual recebe esta mensagem a meio de um inquérito.
O Suhosin é um sistema avançado de proteção para instalações PHP, mas a configuração predefinida do Suhosin pode causar problemas com o LimeSurvey.
Em primeiro lugar, verifique e teste através do registo do Suhosin, definindo suhosin.log.sapi = 511 e suhosin.simulation = on de acordo com a documentação do Suhosin.
O ficheiro de configuração encontra-se normalmente em /etc/php5/apache2/conf.d/suhosin.ini, mas, para ter a certeza, pode consultar o seu phpinfo (administração do LimeSurvey > Configurações globais > botão Mostrar PHPInfo > linha: "Additional .ini files parsed") para obter o caminho correto.
Não se esqueça de reiniciar o servidor Apache/Nginx para que os parâmetros sejam tidos em conta (service apache2 restart ou service nginx restart).
Quando a simulação está ativada, o Suhosin não bloqueia nada e os erros são registados nos registos (normalmente no registo do sistema: /var/log/syslog). Se receber mensagens de erro como "ALERT-SIMULATION - configured POST variable limit exceeded", é o Suhosin a alertar... Experimente a seguinte configuração (que parece funcionar bem com o 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
Com estes parâmetros, deverá conseguir voltar a definir suhosin.simulation para o valor "off" (para que o servidor fique protegido e o LimeSurvey continue a funcionar).
Os valores predefinidos do Suhosin não funcionam bem com o LimeSurvey. Se pretende realmente proteger o seu servidor de forma rigorosa, pode utilizar o modo de simulação para ajustar a configuração e encontrar os valores adequados entre 1000 e 5000 para as variáveis (vars) e entre 1000000 e 5000000 para os comprimentos de valor (value_lengths).
Não consigo alterar o idioma!
Independentemente do idioma que escolher, a interface (de administração e de utilizador) é sempre apresentada em inglês. Normalmente, isto é causado por um erro na sua versão do PHP. Não existe outra solução para além de atualizar a sua versão do PHP.
Alguns erros comuns (com foco no IIS)
O Index.php não abre
Causa possível: isto pode acontecer se não tiver instalado as extensões necessárias
- Tem de instalar as extensões Multi-byte string e MSSQL (ou MySQL)
Causa possível: filtro ISAPI não configurado
- No IIS, para o site (pode fazê-lo ao nível da pasta) tem de o configurar para utilizar o php5isapi.dll
O Index.php não abre e "php.exe -i" apresenta mensagens de erro sobre ficheiros .dll em falta
Isto pode acontecer se instalar demasiadas extensões
- Se instalar todas as extensões do PHP, o PHP falhará porque nem todas as dependências foram satisfeitas (por exemplo, o pacote oracle necessita de dll's do oracle)
- Instale apenas as extensões de que necessita
- Para testar, experimente executar php.exe -i a partir da linha de comandos
Mensagem a indicar que a base de dados está em falta
Isto pode acontecer se navegar para um URL errado:
- Certifique-se de que acede a limesurvey/admin/install/index.php em vez de limesurvey/index.php !
As correções acima não resolvem o problema
Isto pode acontecer se não tiver reiniciado o IIS
- Reinicie o IIS
Coisas fáceis de esquecer:
- .php tem de estar associado ao filtro php5isapi.dll
- a pasta limesurvey/tmp necessita de permissão de escrita para os carregamentos de inquéritos
- atualizar doc_root no php.ini e $rootdir no config.php
Ficheiros em falta ("No such file or directory")
Ao carregar o LimeSurvey para o seu servidor, a ligação pode ser interrompida e alguns ficheiros podem não ser transferidos, ou não ser transferidos por completo. Consoante os ficheiros, poderá obter mensagens de erro diferentes sempre que aceder a diferentes funcionalidades/partes do LimeSurvey. Os erros causados por ficheiros em falta têm este aspeto:
"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" OU
"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"
Solução
1. Elimine todos os ficheiros carregados.
2. Volte a carregar os ficheiros.
(3. Se necessário: reinstale navegando até /limesurveyfolder/admin/install)
Após submeter uma página, acaba na página de índice geral/numa página 404 ou recebe a mensagem 'The CSRF token could not be verified'
ou
Após clicar em 'Seguinte' numa página que contém um grande número de respostas/subperguntas, nem todas as respostas são guardadas
ou
Após clicar em 'Seguinte', acabo na mesma página
ou
A utilização do sistema de Tradução Rápida não guarda respostas nem subperguntas
ou
Ao exportar um grande número de campos de resposta, nem todos são exportados
- Isto deve-se, muito provavelmente, a uma definição limitativa no seu servidor web: max_input_vars. Esta definição limita o número máximo de variáveis que podem ser enviadas por POST (submetidas) para o servidor.
O valor predefinido é 1000, mas se tiver uma pergunta com muitas opções de resposta ou uma página de inquérito com muitas perguntas/respostas, este limite pode ser excedido. Terá de editar a configuração do PHP (php.ini).
- Verifique também as definições do PHP se o seu alojamento utilizar a extensão Suhosin para Apache, que pode estar demasiado restritiva em algumas definições.
- Por exemplo, as duas definições "suhosin.post.max_vars" e "suhosin.request.max_vars" estão ambas definidas por predefinição com o valor 200. Aumente ambas para 400 ou mais, para que os utilizadores possam concluir e submeter inquéritos longos.
- Se continuar a ter problemas, experimente colocar o módulo em simulation_mode (desativando-o, na prática), uma vez que o Valor máximo depende sempre do seu inquérito em particular.
- Outra razão pode ser um proxy ou software semelhante que não permita pedidos POST grandes ou pedidos repetidos da mesma página em segundo plano (o que leva à criação de uma nova chave CSRF). Neste caso, experimente outra ligação à Internet.
Não são apresentadas perguntas ao utilizar o MSSQL Server com FreeTDS em Linux
Se verificar com atenção qualquer Grupo de perguntas, verá que existe um espaço na Relevância do grupo, o que torna todo o grupo não relevante. O problema subjacente é que o FreeTDS devolve espaços em campos vazios devido a uma configuração incorreta. Pode resolver este problema forçando a versão do protocolo FreeTDS para pelo menos 8.0. Edite, então, o ficheiro freetds.conf (por exemplo, /etc/freetds/freetds.conf) e altere a respetiva linha para
tds version = 8.0
Isto deverá resolver o problema.
Após responder ao inquérito
Os textos introduzidos pelo participante aparecem como pontos de interrogação nos resultados
Isto acontece se a sua base de dados não utilizar, por predefinição, um conjunto de caracteres UTF-8. Isto pode suceder quando tem de criar a base de dados através de um painel de administração do fornecedor. Pode resolver este problema executando o seguinte comando SQL na sua base de dados (por exemplo, com o phpMyAdmin):
ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Substitua <your_database_name> pelo nome da sua base de dados. Depois de o fazer, desative o seu inquérito e volte a ativá-lo.
Problemas específicos de bases de dados
Quero que o LimeSurvey utilize um esquema Postgres específico
Defina no config.php 'initSQLs' => array('SET search_path TO "LimeSurvey";'), Consulte o config-defaults para ver um exemplo.