我在客户端服务器中部署Testlink时遇到问题。问题的根源似乎是它没有在会话中正确保存/检索信息,这会在安装过程中导致错误并尝试记录。
在安装过程中,变量存储在会话( installationType )中,指示它是新安装还是升级。此变量取值' new'但是当从一个屏幕移动到另一个屏幕时该值丢失时,假设我正在执行升级并且无法继续。作为一种解决方法,我对代码进行了更改,以将此变量设置为“' new'在每个屏幕上,这样我正确完成了安装过程。但是当我尝试登录时,我发现另一个问题:输入用户数据和访问后,屏幕刷新并重新显示登录屏幕,没有任何错误消息(实际上日志显示登录成功)。此行为与在浏览器中禁用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的本地服务器部分:
COOKIE [" TESTLINKUSERAUTHCOOKIE"]
此cookie未出现在客户端服务器中(我猜是在登录后没有创建)。
我的猜测是Azure管理面板(我无法访问)中的某些内容需要配置,就像在iptables上打开端口一样。在Azure。
任何建议都将不胜感激。
答案 0 :(得分:3)
神秘解决了。该问题与Azure无关,但与自己的服务器配置有关。
将Apache和PHP的所有配置文件与全新安装进行比较后,我发现了这个:
的/ etc /启用位点-的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>
导致此行为的行是:
在评论完之后,一切都没问题。
答案 1 :(得分:0)
Php会话问题通常与Apache / Php使用的临时文件夹有关。
我猜Testlink实现了一个非常经典的基于cookie的会话系统。请遵循本文以确保正确配置会话处理。
https://support.qualityunit.com/021373-How-To-Enable-Session-Support-for-PHP
您可能也对此链接感兴趣。这是有关在Azure计算机上安装Testlink的分步指南:
http://thusharapriyantha.blogspot.com.es/2015/04/install-testlink-1913-stormbringer-in.html?m=1
幸运...亲切的问候