Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Azure中将会话默认时间从20分钟更改为2小时_Php_Azure_Azure Web App Service - Fatal编程技术网

Php 在Azure中将会话默认时间从20分钟更改为2小时

Php 在Azure中将会话默认时间从20分钟更改为2小时,php,azure,azure-web-app-service,Php,Azure,Azure Web App Service,我需要在Azure平台上将会话时间从20分钟增加到2小时。我在IIS配置的web.config文件中搜索了更改会话超时,但没有任何与PHP或其他语言相关的Seision配置,除了ASP和IIS self,如下图所示 所以您不必担心PHP之外还有其他选项会影响PHP会话超时,只需更改PHP配置即可 在PHP中,有许多方法可以更改会话超时 在php.ini中或通过相关API更改会话超时 在php.ini中设置会话超时 session.cookie_lifetime = 7200 // 2*60*6

我需要在Azure平台上将会话时间从20分钟增加到2小时。

我在IIS配置的
web.config
文件中搜索了更改会话超时,但没有任何与PHP或其他语言相关的Seision配置,除了ASP和IIS self,如下图所示

所以您不必担心PHP之外还有其他选项会影响PHP会话超时,只需更改PHP配置即可

在PHP中,有许多方法可以更改会话超时

  • php.ini
    中或通过相关API更改会话超时

    在php.ini中设置会话超时

    session.cookie_lifetime = 7200 // 2*60*60 seconds
    session.gc_maxlifetime = 7200 
    
    或者在PHP代码中使用
    ini\u set
    函数

    ini_set('session.gc_maxlifetime', "7200"); 
    ini_set("session.cookie_lifetime","7200"); 
    
  • 要通过在
    $\u SESSION
    中设置
    timeout
    属性来存储用户请求的最后一次时间,并检查下一次请求的时间,请参考现有SO线程

    
    

  • 您可以在StackOverflow或Google或Bing等搜索引擎中搜索,以找到其他解决方案,如此SO线程。

    添加到Peter的回复中。 Azure Load Balancer的默认空闲超时设置约为四分钟(230秒)。如果您的web应用需要后台处理,则该设置是请求在不将任何数据发送回响应的情况下所能花费的最长时间。建议使用Azure WebJobs或Azure功能是另一个选项

    如果将数据发送回以使其保持活动状态是不可行的,建议的方法是采用异步模式。 此外,默认情况下,当生成过程启动某些命令时,允许其运行最多60秒而不产生任何输出。如果时间不够长,则可以将其延长,例如,将其延长10分钟: SCM\u命令\u空闲\u超时=600

    有关此主题的更多详细信息,请参阅以下文档:


    感谢@ajaykumar msft和@peter pan的关注。我解决了创建
    applicationhost.xdt
    文件并从
    phpinfo
    中的
    加载程序配置文件
    目录下载原始.ini文件的问题。我将其复制到了从
    session.gc>编辑和更改的
    站点
    文件夹中AXLIFET=1440
    session.gc\u maxlifetime=7200
    .Happy=)

    我的文件applicationhost.xdt:

    <?xml version="1.0"?>
    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
        <system.webServer>
            <fastCgi>
                <application>
                    <environmentVariables>
                        <environmentVariable name="PHPRC" xdt:Locator="Match(name)" value="d:\home\site\php7.2.10.ini" xdt:Transform="SetAttributes(value)" />
                    </environmentVariables>
                </application>
            </fastCgi>
        </system.webServer>
    </configuration>
    

    Azure没有记录与此相关的配置吗?
    <?xml version="1.0"?>
    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
        <system.webServer>
            <fastCgi>
                <application>
                    <environmentVariables>
                        <environmentVariable name="PHPRC" xdt:Locator="Match(name)" value="d:\home\site\php7.2.10.ini" xdt:Transform="SetAttributes(value)" />
                    </environmentVariables>
                </application>
            </fastCgi>
        </system.webServer>
    </configuration>