2016-05-13 3 views
0

У меня возникли проблемы с развертыванием Testlink на клиентском сервере. Похоже, что причиной возникновения проблемы является то, что не сохраняет/извлекает информацию в сеансе правильно, и это вызывает ошибки во время установки и попытки регистрации.Не удалось войти в Testlink - Не сохранять сеанс/файлы cookie

Во время установки переменная хранится в сеансе (installationType), указывая, является ли это новой установкой или обновлением. Эта переменная принимает значение «новое», но при переходе с одного экрана на другой это значение теряется, предположим, что я выполняю обновление, и его невозможно продолжить. В качестве обходного пути я внесла изменения в код, чтобы установить эту переменную на «новый» на каждом экране, и таким образом я правильно завершил процесс установки. Но когда я пытаюсь войти в систему, я нахожу еще одну проблему: после ввода пользовательских данных и доступа, экран обновляет и повторно отображает экран входа без сообщения об ошибке (фактически журнал показывает, что логин был успешным). Такое поведение аналогично отключению файлов cookie в браузере.

То же версия TestLink (1.9.14) был установлен без проблем на локальном сервере с идентичной конфигурацией:

  • Ubuntu: 14.04.1 (64 бит)
  • Apache: 2.4.7
  • PHP 5.5.9-1ubuntu4.16
  • MySQL: 5.5.49

Разница в том, что наш Ubuntu установлен на виртуальной машине в Debian, а клиент Ubuntu развернут в Azure.

Я сравнил конфигурацию php.ini на одной машине и другую, и я не нашел существенных отличий. Сравнивая данные показали на phpinfo() ни я ничего не нашел соответствующее (может прикрепить и здесь, если это необходимо), но я вижу, что в разделе «PHP Переменные» локального сервера У меня есть этот печенье:

COOKIE [ "TESTLINKUSERAUTHCOOKIE"]

Этот файл cookie не отображается на клиентском сервере (я думаю, он не создается после входа в систему).

Я предполагаю, что на панели администрирования Azure (которой у меня нет доступа) есть возможность настроить так же, как открытие порта должно выполняться как на iptables, так и на Azure.

Любое предложение будет принята с благодарностью.

ответ

0

Проблемы с сеансом Php обычно связаны с временными папками, используемыми Apache/Php для работы.

Я предполагаю, что Testlink реализует довольно классическую сессионную систему на основе файлов cookie. Следуйте этой статье, чтобы убедиться, что вы правильно настраиваете сеансовую обработку.

https://support.qualityunit.com/021373-How-To-Enable-Session-Support-for-PHP

Вы можете быть также заинтересованы в этой ссылке.Это шаг за шагом руководство об установке Testlink на Лазурном машине:

http://thusharapriyantha.blogspot.com.es/2015/04/install-testlink-1913-stormbringer-in.html?m=1

Get Lucky ... Сердечные приветы

+0

Спасибо Мануэль, но не повезло. Вторая ссылка - одно из рекомендаций, которое я последовал шаг за шагом, и я проверил все параметры в вашей первой ссылке, и все в порядке. – SadasK

+0

После разговора с Джайлсом и проведения некоторых тестов с Lynx, подключающихся непосредственно с сервера, кажется, что проблема связана с собственной конфигурацией сервера и не связана с Azure. Я буду продолжать пытаться, но в конце (и до того, как убить себя), если я этого не сделаю, я собираюсь развернуть виртуальную машину Bitnami Testlink (хотя это не мой лучший вариант и может привести к другим проблемам). Еще раз спасибо! – SadasK

+0

эй! не сдавайся! Попробуем другое решение. поддерживайте связь – manuelbcd

2

Тайна решена. Проблема не была связана с Azure, но с собственной конфигурацией сервера.

После сравнения всех файлов конфигурации Apache и PHP против новой установки, я нашел это:

/и т.д./apache2/сайты с поддержкой/000-default.conf

<IfModule mod_headers.c> 
    Header set X-UA-Compatible "IE=edge" 
    Header set X-Frame-Options "DENY" 
    # Commented out, because fcm4 use external JavaScript 
    # Header set Content-Security-Policy "script-src 'self'; object-src 'self'" 
    Header always set Strict-Transport-Security "max-age=16070400; includeSubDomains" 
    Header set X-Content-Type-Options "nosniff" 
    Header set X-XSS-Protection "1; mode=block" 
    Header unset X-Powered-By 
    Header unset ETag 
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
    Header set Pragma "no-cache" 
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
    Header set X-Permitted-Cross-Domain-Policies "master-only" 
    Header edit Set-Cookie ^(.*)$ "$1;HttpOnly;Secure" 
    <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$"> 
     Header unset X-UA-Compatible 
     Header unset X-Frame-Options 
     Header unset Content-Security-Policy 
     Header unset X-XSS-Protection 
    </FilesMatch> 
</IfModule> 

линии, которые вызывают такое поведение было:

  • Header набор X-Frame-Options "ЗАПРЕТИТЬ"
  • Заголовок редактирования Set-Cookie^$ (. *) "$ 1; HttpOnly; Зафиксируйте"

После закомментирована, все это нормально.

+0

Отлично! Спасибо за ваш ответ – manuelbcd

Смежные вопросы