当用php5-fpm运行nginx时,会话variables会随机丢失它们的值。 由于我的会话variables变为空,我的脚本要求用户再次login。 然而,奇怪的是会话没有被销毁或未设置。 我将其添加到我的脚本的索引: session_start(); if(isset($_SESSION["my_count"])){ $_SESSION["my_count"] = $_SESSION["my_count"] + 1; }else{ $_SESSION["my_count"] = 0; } echo "<p>Session my count is equal to: " . $_SESSION["my_count"] . "<br>My session id is: " . session_id() . "</p>"; 当我再次login时,会话variables应该被设置并且有值。 不幸的是,他们没有,我的脚本输出0.然而,它总是输出相同的session_id是正确的。 如果我重新启动php5-fpm和nginx: systemctl restart php5-fpm systemctl restart nginx 然后一切按预期工作,会话variables保持不变,直到我访问我的浏览器的另一个选项卡中定义的服务器主机之一。 例如,我有nginx的test.com设置(我没有域名,但我的主机文件被设置为直接返回到我的本地服务器),如下所示: server { listen 80; server_name test.com www.test.com ; […]
我的PHP会话是: session.save_path = /var/lib/php/session 如果我做一个简单的脚本来testing像: session_start(); $_SESSION['hi'] = 1; var_dump($_SESSION); 那么会议不工作。 当我列出文件夹:“/ var / lib / php / session”我发现它每次都创build一个新文件。 所以,如果我重新加载页面1000,我将有1000个会话文件..它失去了会议,并创build一个新的。 所以它有权写入文件,但由于某种原因,它总是创build一个新的会话。
我们所有的错误都logging到NewRelic,我们总是在错误日志中看到session_write_close的一些警告。 但是,错误率增加了,现在正在淹没我们的24h日志。 我们的服务器是高度填充的,并且很多用户同时login。 大多数这些用户不会看到这些session_write_close警告。 有些是这样做的,这使我们几乎不可能find原因并加以解决。 这是完整的错误信息: Error message E_WARNING: session_write_close(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/opt/php55/var/lib/php/session-nginx) 所以我做了一个检查,看看目录9431有多less个文件,以及哪些权限是-rw——- 1 nginx nginx 。 我没有看到我的configuration,文件权等问题。 我们没有select。 我能做些什么来解决这个问题? 目前影响<1%的用户,我们只是想保持尽可能低的利率。 这里是我的php.iniconfiguration列表。 Directive Local Value Master Value session.auto_start Off Off session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no […]
服务器:Ubuntu 14.04上的OpenVPN 2.3.8 如何在设定的时间之后强制断开连接? 我想要VPN会话持续时间不超过24小时。 目前,客户似乎能够无限期保持连接。 我已经看过–inactive参数,这是非常接近我想要的,但我也想在24小时后强制断开连接。 即VPN会话永远不会超过24小时。 编辑 OpenVPN杀死脚本 我创build了一个脚本来做到这一点; 它运行在每小时cron工作。 我已经把它贴在Github上: https : //github.com/poolpog/kill-openvpn-clients
Fedora 25 + PHP 7 + Apache 2.4.23 您好,我更改php.ini中的session.save_path并重新启动apache后,我可以成功validation它是修改: $ php -i | grep session.save_path 但是,在html / php页面本身,会话不是写在session.save_path中,而是固定地写在/ var / lib / php / session /中。 即使在.htaccess中设置值也不起作用: php_value session.save_path "/mycustom/path/folder" 唯一可以覆盖默认/ var / lib / php / session /的工作解决scheme是在php文件本身中设置值: ini_set('session.save_path','/mycustom/path/folder'); 有任何想法吗?
我的IIS7和ASP.NET会话有几个问题。 即使网站上的IISpipe理器中的会话设置为30分钟,如果我不在网站上点击(pipe理系统需要login),也会在不到5分钟内耗尽。 在设置正确的会话空闲时间时是否有任何缺失? 谢谢! 🙂
我想创build会话超时到6小时,但我的浏览器仍然在半小时内超时。 我在PLESK服务器上。 我更新了.htaccess php_value session.gc_maxlifetime 21600 php_value session.cache_expire 21600 php_value session.cookie_lifetime 21600 这里是相关的PHPinfo: Local Master session.gc_maxlifetime 21600 1440 session.cache_expire 21600 180 session.gc_maxlifetime 21600 1440
php会将会话文件从服务器1(debian lenny php 5.2)迁移到新服务器(debian squeeze php 5.3)后截断会话文件为零。 我使用createsession.php(请参阅下文)在服务器1上创build会话,并可以在同一台服务器上使用dumpsession.php查看会话的内容。 在将会话文件从服务器1复制到其他服务器并通过更改我的本地主机文件切换到服务器2之后,我仍然使用存储在浏览器中的正确会话标识的cookie,新服务器访问正确的会话文件,但服务器不会显示会话的内容,而是将会话文件截断为零,并使用相同的会话标识开始新的会话。 有可能迁移会话文件? 是serverip以某种方式散列到sessiondata? 是php5.2和php5.3之间的会话共享可能吗? createsession.php <?php session_name('mysession'); session_start(); var_dump(session_id()); var_dump($_SESSION); ?> dumpsession.php <?php session_name('mysession'); session_start(); var_dump(session_id()); $_SESSION['foo'] = 'bar'; ?> php.ini会话部分 [Session] session.save_handler = files session.save_path = "3;/var/lib/php5" session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.cookie_httponly = […]
我刚把一些网站移到一台全新的服务器上,运行Apache 2.2.3,PHP 5.3和Plesk 10.1.1。 我遇到了PHP会话的文件权限问题,这些会话存储在/var/lib/php/session 。 我原来为这个文件夹设置权限是这样的: drwxrwx— 2 apache psacln 8192 Mar 22 23:25 session 这工作得很好, HTTP会话。 文件被保存在具有以下权限的文件夹中: -rw——- 1 client1 psacln 0 Mar 22 23:24 sess_507… -rw——- 1 client2 psacln 0 Mar 22 23:25 sess_8o1… 但问题是,通过HTTPS访问的PHP脚本似乎不是由同一个client1或client2用户运行的。 我删除了会话目录中的文件,并通过HTTPS访问了一个login页面,以查看在通过此协议启动时如何保存会话: -rw——- 1 apache apache 0 Mar 22 23:25 sess_507… 因此,无论出于何种原因,使用HTTPS浏览的客户端发起的会话都由apache:apache保存,而来自HTTP客户端的会话则使用someclient:psacln客户端保存someclient:psacln 。 我想问一下: 如何避免会话权限的这个问题? 当通过未encryption的HTTP创build会话并且客户端访问该站点的HTTPS部分时,将显示权限错误,因为apache:apache尝试访问由某个客户端创build的会话保存someclient:psacln 。 反过来也是如此。 […]
我的Debain服务器在私人tmp文件夹/ home / user / tmp中创build了一个会话temp文件夹的所有者: drwxrwxrwx 2 user www-data 4096 2011-08-23 16:26 tmp 会话创build后,会话详细信息: -rw——- 1 user user 0 2011-08-23 16:30 sess_66nnga09kav0747k5ek95ghne2 我将用户添加到www-data组,但仍不能使用会话。 我得到以下错误信息: 警告:未知:写入失败:第0行的未知磁盘配额超出(122)警告:未知:无法写入会话数据(文件)。 请确认session.save_path的当前设置在第0行的Unknown中是正确的(/ home / user / tmp) 如果我将会话的所有者更改为 -rw——- 1 user www-data 84 2011-08-23 16:35 sess_66nnga09kav0747k5ek95ghne2 我可以通过会议。 我可以强制与指定的所有者的会话文件?