เวลาออกจากระบบอัตโนมัติ phpmyadmin


90

ฉันจะเปลี่ยนเวลาออกจากระบบอัตโนมัติของ phpmyadmin ได้อย่างไร?

มันจะออกจากระบบโดยอัตโนมัติหลังจาก 1440 วินาทีซึ่งต่ำมากสำหรับฉัน ฉันจะเปลี่ยนตัวเลือกหรือลบคำขอเข้าสู่ระบบทั้งหมดได้อย่างไร

คำตอบ:


87

สร้างหรือแก้ไขphp.iniไฟล์ของคุณและตั้งค่าตัวแปรในไฟล์:

session.gc_maxlifetime = 1440

จำนวนเต็มเป็นวินาที 500000 วินาทีเท่ากับ 5.7 วัน จากนั้นรีสตาร์ท apache


2
ดังนั้นเปิดไฟล์ php.ini ของคุณและเพิ่มค่าของ session.gc_maxlifetime นั่นแหล่ะ
Ravinder Singh

12
คำตอบไม่ดีปัญหาด้านความปลอดภัย!
Sebastian Viereck

1
คุณอาจต้องอัปเดต $ cfg ['LoginCookieValidity'] ในไฟล์ phpmyadmin config.inc.php
Jorge Orpinel

5
@ slaver113 ในกรณีนี้ฉันจะบอกว่าการรักษาความปลอดภัยนั้นดีเนื่องจากเป็นสภาพแวดล้อมการพัฒนาซึ่งไม่ดีสำหรับสภาพแวดล้อมการผลิตใด ๆ ฉันต้องการเห็นสิ่งนี้กล่าวถึงในคำตอบ
Manuel

8
สิ่งนี้ไม่เกี่ยวข้องกับการหมดเวลาของ PHPMyAdmin ไม่รู้ว่าทำไมถึงได้รับการโหวตอย่างสูง มันไม่เกี่ยวข้องกับคำถามด้วยซ้ำ
felwithe

115

การเปลี่ยน php.ini จะเปลี่ยนระยะเวลาเซสชันสำหรับเว็บไซต์ทั้งหมดที่ทำงานบนเซิร์ฟเวอร์ หากต้องการเปลี่ยนเฉพาะสำหรับ PhpMyAdmin ให้เปิดconfig.inc.phpและเพิ่ม:

$sessionDuration = 60*60*24*7; // 60*60*24*7 = one week
ini_set('session.gc_maxlifetime', $sessionDuration);
$cfg['LoginCookieValidity'] = $sessionDuration;

21
ดูเหมือนว่าจะมี UI สำหรับการตั้งค่าตัวแปร config.php ที่localhost / phpmyadmin / setup / … - ดูความถูกต้องของคุกกี้เข้าสู่ระบบ
psycho brm

การตั้งค่า UI นี้ค่อนข้างสับสน แต่ใช้ได้กับการตั้งรหัสผ่านใน config สำหรับการเข้าสู่ระบบอัตโนมัติและตั้งเวลาหมดอายุเซสชัน โหวตขึ้น
Antonio Max

1
เวลาที่ไม่ จำกัด เป็นสิ่งที่เป็นไปไม่ได้เพราะคุกกี้ทุกตัวมีวันที่ "ใช้ได้ถึง" แต่คุณสามารถป้อนตัวเลขที่สูงมากได้
Marcel Burkhard

5
นี่น่าจะเป็นคำตอบ คำถามถามว่าจะแก้ไข phpMyAdmin อย่างไร คำตอบนี้ช่วยแก้ปัญหาได้โดยเฉพาะ

1
คุณต้องเปลี่ยนเส้นทางคุกกี้ด้วย เนื่องจากถ้ามีการกำหนด gc_maxlifetime สำหรับเว็บไซต์อื่น gc จะลบคุกกี้ทั้งหมดในครั้งแรกที่เรียกเว็บไซต์ คุณสามารถเพิ่ม 2 บรรทัดนี้ในไฟล์ /etc/apache2/conf-available/phpmyadmin.conf: php_admin_value session.gc_maxlifetime 604800 + php_admin_value session.save_path / var / lib / phpmyadmin / tmp
fred727

96

ใน PHPMyAdmin 4 สิ่งนี้จะไม่ปรากฏในไฟล์ config.inc.php อีกต่อไป ไปที่ PHPMyAdmin ในเบราว์เซอร์ของคุณแทน ตรวจสอบว่าคุณอยู่ในระดับ localhost เพื่อดูลิงก์การตั้งค่า จากนั้นตั้งค่า> คุณสมบัติ> เปลี่ยนค่าของ 'ความถูกต้องของคุกกี้เข้าสู่ระบบ'> บันทึก

คำแนะนำ


หมายเหตุดูเหมือนจะมีการ จำกัด จำนวนอักขระที่คุณสามารถป้อนในฟิลด์นี้ได้
Kohjah Breese

1
การเปลี่ยนแปลง UI ใช้ไม่ได้กับฉัน มันยังคงออกจากระบบเร็วเกินไปไม่ว่าความถูกต้องของคุกกี้การเข้าสู่ระบบจะใหญ่แค่ไหนก็ตาม
dani24

4
@ dani24 คุณได้รับการแจ้งเตือนนี้Your preferences will be saved for current session only. Storing them permanently requires phpMyAdmin configuration storage.หรือไม่: ? คลิกลิงก์ในนี้และจะให้คำแนะนำในการเปิดใช้งานความสามารถในการจัดเก็บการเปลี่ยนแปลงอย่างถาวร
Parapluie

phpMyAdmin จะแสดงข้อผิดพลาดนี้ Your PHP parameter session.gc_maxlifetime is lower than cookie validity configured in phpMyAdmin, because of this, your login will expire sooner than configured in phpMyAdmin.คุณจะต้องใช้คำตอบของ Ravinder Singh เช่นเดียวกับคำตอบนี้
Abraham Murciano Benzadon

7
ไม่มีในเวอร์ชัน 4.8.4
Thanasis

11

คุณสามารถเปลี่ยนคุณสมบัติเซสชันเวลาคุกกี้ได้ที่เว็บอินเตอร์เฟส phpmyadmin

Settings->Features->General->Login cookie validity

หรือ

หากคุณต้องการเปลี่ยน 'ความถูกต้องของคุกกี้การเข้าสู่ระบบ' ในไฟล์คอนฟิกูเรชันให้เปิดไฟล์คอนฟิกูเรชัน phpmMyAdmin config.inc.phpในไดเร็กทอรีรูทของ PHPMyAdmin (ไดเร็กทอรีรากมักจะเป็น / etc / phpmyadmin /)

หลังจากค้นหา config.inc.php แล้วให้ค้นหาบรรทัดด้านล่างและตั้งค่าเป็นค่าวินาทีที่คุณต้องการให้ phpmyadmin หมดเวลา:

['LoginCookieValidity'] 

หากคุณไม่พบบรรทัดด้านบนให้เพิ่มสิ่งต่อไปนี้:

$cfg['Servers'][$i]['LoginCookieValidity'] = <your_new_timeout>;

ตัวอย่างเช่น:

$cfg['Servers'][$i]['LoginCookieValidity'] = 3600 * 3;

หมดเวลาถูกตั้งค่าเป็น 3 ชั่วโมงจากตัวอย่างด้านบน

session.gc_maxlifetimeอาจจำกัดความถูกต้องของเซสชันและหากเซสชันสูญหายคุกกี้การเข้าสู่ระบบก็จะไม่ถูกต้อง ดังนั้นเราอาจต้องตั้งค่า session.gc_maxlifetime ในphp.iniไฟล์กำหนดค่า (ตำแหน่งไฟล์คือ / etc / php5 /apache2/php.ini ใน ubuntu)

session.gc_maxlifetime = 3600 * 3


phpMyAdmin เอกสารเกี่ยวกับ LoginCookieValidity

$ cfg ['LoginCookieValidity']

ประเภท: จำนวนเต็ม [จำนวนวินาที]
ค่าเริ่มต้น: 1440

กำหนดระยะเวลาที่คุกกี้การเข้าสู่ระบบสามารถใช้ได้ โปรดทราบว่าตัวเลือกการกำหนดค่า php session.gc_maxlifetime อาจ จำกัด ความถูกต้องของเซสชันและหากเซสชันสูญหายคุกกี้ล็อกอินก็จะไม่ถูกต้องเช่นกัน ดังนั้นจึงควรตั้งค่า session.gc_maxlifetime อย่างน้อยเป็นค่า $ cfg ['LoginCookieValidity'] เท่ากัน

บันทึก:

  1. หากเซิร์ฟเวอร์ของคุณขัดข้องและไม่สามารถโหลดหน้า phpmyadmin ของคุณได้ให้ตรวจสอบบันทึก apache ของคุณที่ /var/log/apache2/error.log ถ้าคุณPHP Fatal error: Call to a member function get() on a non-object in /path/to/phpmyadmin/libraries/Header.class.phpขึ้นสาย 135 ให้ทำchmod 644 config.inc.php. ที่ควรดูแลข้อผิดพลาด
  2. หากคุณได้รับคำเตือน: Your PHP parameter session.gc_maxlifetime is lower that cookie validity configured in phpMyAdmin, because of this, your login will expire sooner than configured in phpMyAdmin.ให้เปลี่ยนsession.gc_maxlifetime ตามที่กล่าวไว้ข้างต้น

6

สำหรับการติดตั้งในท้องถิ่นเท่านั้นคุณสามารถลบการเข้าสู่ระบบและการหมดเวลาได้ทั้งหมดซึ่งดูเหมือนจะเป็นสิ่งที่คุณต้องการ เมื่อเปลี่ยนประเภทการอนุญาตเป็น "config" และป้อนชื่อผู้ใช้และรหัสผ่านฐานข้อมูลของคุณในไฟล์กำหนดค่าคุณจะเข้าสู่ระบบโดยอัตโนมัติเพิ่มไปที่config.inc.php:

$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'username';
$cfg['Servers'][$i]['password'] = 'password';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

แน่นอนถ้าคุณทำสิ่งนี้บนเซิร์ฟเวอร์บนอินเทอร์เน็ต Chappy หน้าด้านบางตัวจะมาพร้อมและดาวน์โหลดรหัสผ่านทั้งหมดของคุณอย่างยินดีและลบเว็บไซต์ของคุณ นี่มีไว้สำหรับเซิร์ฟเวอร์การพัฒนาที่ทำงานบนแล็ปท็อปของคุณเองเท่านั้น

วิธีที่ง่ายกว่าในการปรับแต่ง phpmyadmin ในปัจจุบันคือไปที่http://www.example.com/phpmyadmin/setup/บันทึกส่วนการตั้งค่าทั้งหมดของคุณในแต่ละครั้งคลิกบันทึกหรือดาวน์โหลดที่ด้านล่างคัดลอกไฟล์ที่สร้างขึ้น root phpmyadmin จากนั้น chmod คุณต้องปิดสิทธิ์การเขียนแม้ว่าจะเป็นเซิร์ฟเวอร์ภายในก็ตามเนื่องจาก phpmyadmin ตรวจสอบสิ่งนี้ก่อนที่จะให้คุณเข้าสู่ระบบ


ชื่อไฟล์ไม่ถูกต้องไม่ใช่ประเด็นใหญ่เพราะส่วนใหญ่จะเข้าใจว่าคุณหมายถึงอะไร อย่างไรก็ตามชื่อที่ถูกต้องคือconfig.inc.php
David

3

สำรวจไดเรกทอรี 'apps \ phpmyadmin4.5.2' ในโฟลเดอร์ wamp ของคุณและเปิดไฟล์ config.inc.php จากนั้นเพิ่มบรรทัดนี้ภายใต้รหัสที่มีอยู่

'$cfg['LoginCookieValidity'] = 3600 * 10; //login cookie validity extended upto 10 hours'.

นั่นคือทั้งหมด ...


1

สำหรับphpMyadmin 5.0.2 ที่ทำงานบน Ubuntu 18.04 ฉันแก้ไขไฟล์ดังนี้:

  1. sudo nano /usr/share/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php

  2. ค้นหาวิธีการpublic static function getForms()และเพิ่มฟิลด์LoginCookieValidity

    public static function getForms()
    {
        $result = [
            'General' => [
                'VersionCheck',
                'NaturalOrder',
                'InitialSlidersState',
                'LoginCookieValidity', //Added this line if it missing
                ...........
          }
    
  3. บันทึกไฟล์และตอนนี้คุณจะสามารถเปลี่ยนค่าจากส่วนต่อประสานผู้ใช้

[การตั้งค่า -> ทั่วไป -> คุณสมบัติ -> ความถูกต้องของคุกกี้เข้าสู่ระบบ]


ขอบคุณสำหรับสิ่งนี้. ฉันกำลังดูคำตอบด้านบนและกลับไปที่การติดตั้ง 5.0.2 ของฉันและคิดว่าฉันกำลังเสียสติ! สงสัยว่าทำไมพวกเขาถึงลบ UI โดยเฉพาะอย่างยิ่งถ้ายังพร้อมที่จะเปิดใช้งานอีกครั้ง?
Headbank

0

Server:localhost -> Settings -> Features -> General -> Login cookie validity


คำตอบเดียวกันนี้ได้โพสต์ไว้เมื่อนานมาแล้ว (พร้อมคำอธิบาย + ข้อมูลเกี่ยวกับการหมดเวลาเซสชัน php ซึ่งคำตอบของคุณไม่มี)
Marki555

แม้ว่าฉันจะไม่ได้พูดถึง แต่ฉันก็ชอบคำตอบที่ง่ายมากสำหรับคำถามบางประเภท
Pmpr

1
ใช่ แต่ถ้าคุณตั้งค่าความถูกต้องของคุกกี้การเข้าสู่ระบบเป็นค่าที่สูงกว่าความถูกต้องของเซสชันใน php จะไม่ทำงาน
Marki555

ฉันไม่รู้เรื่องนั้น ขอบคุณสำหรับความคิดเห็นของคุณ :)
Pmpr

-1

ฉันมี phpmyadmin 4.9.2 และพยายามกำหนดค่า LoginCookieValidity แต่ฉันมีการล็อกเอาต์อัตโนมัติ :( หากคุณใช้ localhost คุณสามารถลองhttps://docs.phpmyadmin.net/en/latest/config.html#example-for-ip-address-limited-autologin

if ($_SERVER["REMOTE_ADDR"] == "127.0.0.1") {
    $cfg['Servers'][$i]['auth_type'] = 'config';
    $cfg['Servers'][$i]['user'] = 'root';
    $cfg['Servers'][$i]['password'] = 'yourpassword';
} else {
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.