Linux: экстренная перезагрузка сервера

Иногда случаются ситуации (поменьше бы их таких), когда из-за какой-нибудь ошибки оборудования или повреждения файловой системы операционная система входит в ступор и не может прочитать ничего с диска. Систему нужно перезагружать, но система не может прочитать /sbin/reboot, а техническая поддержка тупит (не могу не передать привет техперсоналу HiVelocity.net).

В этом случае систему можно перезагрузить двумя командами echo (нужны права администратора). Далее »

Автор: Vladimir, опубликовано в: Linux, Администрирование, комментариев: 5
6
Июль
2009

Вывод списка страниц с описанием

Для вывода подстраниц (иными словами, дочерних страниц текущей страницы) авторы тем очень часто используют такой код (пример взят из OneTheme):

[-]
View Code PHP
< ?php
    $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
    if ($children) { ?>
    <ul>
        < ?php echo $children; ?>
    </ul>
< ?php } ?>

У wp_list_pages(), на мой взгляд, есть два серьёзных недостатка:

  1. Хотя для вывода информации нужны всего два поля (ID и post_title), wp_list_pages() выбирает всю информацию, что ведёт к увеличению трафика между и (и, в конечном итоге, сказывается на производительности);
  2. При использовании wp_list_pages() не получается вывести дополнительную информацию о странице (например, её описание, рейтинг и т.п.).

Далее »

Автор: Vladimir, опубликовано в: WordPress, комментариев: 2
27
Апр
2009

Простой способ генерирования паролей в Bash

[-]
View Code Bash
CHARS="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()-_=+\\|/"
LENGTH="8"
while [ "${n:=1}" -le "$LENGTH" ] ; do
    PASSWORD="$PASSWORD${CHARS:$(($RANDOM%${#CHARS})):1}"
    let n+=1
done

Далее »

Автор: Vladimir, опубликовано в: Linux, комментариев: 8
15
Март
2009

Мысли на тему массового UPDATE в MySQL

[-]
View Code MySQL
INSERT INTO `table` (`a`, `b`, `c`) VALUES
(1, 2, 3), (4, 5, 6), (7, 8, 9)
ON DUPLICATE KEY UPDATE `b`=VALUES(`b`), `c`=VALUES(`c`);

Например, для (при условии, что пара (user_id, meta_key) является уникальным ключом):

[-]
View Code MySQL
INSERT INTO `wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES
(1, 'key1', 'value1'),
(1, 'key2', 'value2'),
(1, 'key3', 'value3'),
(1, 'key4', 'value4'),
(1, 'key5', 'value5')
ON DUPLICATE KEY UPDATE `meta_value`=VALUES(`meta_value`);

Должно работать.

Автор: Vladimir, опубликовано в: MySQL, комментариев: 1
18
Янв
2009

WordPress: одновременный логин для HTTP и HTTPS

В , начиная с версии 2.6, встроена поддержка : можно сделать либо -логин, либо поместить панель администратора за . Однако, из-за особенностей реализации, когда пользователь входит в систему, он получает cookie либо для HTTP, либо для . Иными словами, если пользователь попал на http://example.com/wp-admin/, то при переходе на ://example.com/wp-admin/ ему придётся входить в систему еще раз.

Всё бы ничего, но если плагин делает POST на , то пользователь попадает на wp-login., который после успешного входа сделает перенаправление (GET) на URL, который ожидает принять POST. При этом если POST шёл на ://example.com/wp-admin/admin.?page=somepage&noheader=1, то пользователь увидит безобразную страницу. Далее »

Автор: Vladimir, опубликовано в: Советы, комментариев: 2
17
Янв
2009