Làm cách nào để tắt chế độ bảo trì?


8

Có ai biết làm thế nào để tắt chế độ bảo trì cho brainfx? Tôi đã thử http://www.website.com/?q=user/loginnhưng điều đó cho tôi một trang trống (không có nguồn html hoặc bất cứ thứ gì). Tôi đã thử truy vấn sau đây.

UPDATE `variable` SET `value`='0' WHERE 'name' = 'maintenance_mode';

Nó không ảnh hưởng đến bất kỳ hồ sơ.

Tôi đã cố gắng tìm một $conf['maintenance_mode']biến trong dự án, nhưng nó không tồn tại. Thêm vào đó $conf['maintenance_mode'] = false;trong settings.php cũng không làm gì cả.

Làm cách nào để tắt chế độ bảo trì?

Câu trả lời:


22

Hãy thử sử dụng Drush :

Drupal 8 :drush sset system.maintenance_mode FALSE

Drupal 7: drush vset maintenance_mode 0

Drupal 6: drush vset site_offline 0


và nếu vì lý do đen tối nào đó chúng tôi ở trên máy chủ Windows, Drush không khả dụng. Là nó?
Meloman

14

Câu trả lời của schnippy là chính xác; tuy nhiên, một số chi tiết sai, ít nhất là trong Drupal 7.28.

Truy vấn để thay đổi bảo trì_mode phải là:

UPDATE variable SET value = 'i:0;' WHERE name= 'maintenance_mode';

Giá trị là một số nguyên, ngay cả khi một chuỗi có thể hoạt động tốt. Đó không chỉ là những gì Drupal sử dụng.

Quan trọng hơn, để đặt lại bộ đệm cho bảo trì_mode, bảng cần sử dụng là cache_bootstrap.

DELETE FROM cache_bootstrap WHERE cid = 'variables';

Không có bộ đệm với ID bằng với các biến , bên trong bảng bộ đệm .

Điều này đã được thử nghiệm và hoạt động với Drupal 7.28.


1
Chính xác. Mặc dù chuỗi nối tiếp cũng thường hoạt động vì giá trị này thường được kiểm tra bằng toán tử bằng thay vì chuỗi giống nhau theo cách này an toàn hơn.
rooby

6

Bạn đang đi đúng hướng với cách tiếp cận cơ sở dữ liệu nhưng truy vấn của bạn sai vì các biến được tuần tự hóa. Cú pháp thực tế là:

UPDATE variable SET value = 's:1:"0";' WHERE name= 'maintenance_mode';

Ngoài ra - đó là một ý tưởng tốt để làm theo điều này bằng cách xóa bộ đệm bộ đệm:

DELETE FROM cache WHERE cid = 'variables';

1
+1 cho đề xuất xóa bộ đệm, vì các giá trị của các biến liên tục được lưu vào bộ đệm.
kiamlaluno

5

Chế độ bảo trì được kích hoạt bởi biến "bảo trì_mode", được đặt thành 1 khi được kích hoạt.

Đây là mã có trong mô-đun Hệ thống (system.admin.inc, dòng 2194).

/**
 * Form builder; Configure the site's maintenance status.
 *
 * @ingroup forms
 * @see system_settings_form()
 */
function system_site_maintenance_mode() {
  $form['maintenance_mode'] = array(
    '#type' => 'checkbox',
    '#title' => t('Put site into maintenance mode'),
    '#default_value' => variable_get('maintenance_mode', 0),
    '#description' => t('When enabled, only users with the "Use the site in maintenance mode" <a href="@permissions-url">permission</a> are able to access your site to perform maintenance; all other visitors see the maintenance mode message configured below. Authorized users can log in directly via the <a href="@user-login">user login</a> page.', array('@permissions-url' => url('admin/people/permissions'), '@user-login' => url('user'))),
  );
  $form['maintenance_mode_message'] = array(
    '#type' => 'textarea',
    '#title' => t('Maintenance mode message'),
    '#default_value' => variable_get('maintenance_mode_message', t('@site is currently under maintenance. We should be back shortly. Thank you for your patience.', array('@site' => variable_get('site_name', 'Drupal')))),
    '#description' => t('Message to show visitors when the site is in maintenance mode.')
  );

  return system_settings_form($form);
}

Bạn có thể sử dụng drush để tắt chế độ bảo trì.

drush vset maintenance_mode 0;
drush cc all;

Bạn cũng có thể sử dụng variable_set('maintenance_mode', 0)và xóa bộ nhớ cache sau đó (với một cuộc gọi đến cache_clear_all()).


1
Drush cho tất cả mọi thứ :) Tôi rất vui vì bạn đã thêm lệnh drush để làm điều đó.
quán tính

1

Tôi đã có cùng một vấn đề, tuy nhiên: mọi giải pháp ở trên đã đề cập đều không hoạt động. điều duy nhất giải quyết nó cho tôi là chạy cron:

  • Đăng nhập vào trang web với người dùng Admin
  • Đi đến Menu Configuration -> Cron -> Run cron.

sau khi trang web đó được sao lưu.


0

Nếu bạn nhớ tên người dùng và mật khẩu của mình, hãy đăng nhập từ http://www.example.com/?q=user . Sau đó vào Cấu hình >> Chế độ bảo trì ; bỏ chọn Đặt trang web vào chế độ bảo trì và lưu.


0

Với phiên bản mới nhất của Drush / Drupal, lệnh đã thay đổi:

drush state:set system.maintenance_mode 0 --input-format=integer
drush cache:rebuild

Tài liệu Drupal

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.