Кодировка баз данных MySQL

Кодировка utf8 является универсальной и поддерживает все существующие символы, и по сути своей становится стандартом дефакто. Поэтому логично и правильно переводить все сайты на эту кодировку.

Делаем, чтобы все конекты к MySQL были по умолчанию в кодировке utf8.

В /etc/my.cnf пишем:

[mysqld]
init-connect=”SET NAMES utf8″
collation-server=utf8_unicode_ci
default-character-set=utf8

[client]
default-character-set=utf8

Если необходимо чтобы сайт отображался всё-таки в кодировке cp1251, то в скриптах после подключения к бд отсылаем запрос ‘SET NAMES cp1251’

Для PHP это будет выглядеть примерно так:

$db_id = mysql_connect ($server$username$password);

mysql_query(‘SET NAMES cp1251’, $db_id);

Обработка html интерпретатором php

Добавьте в .htaccess

RemoveHandler .html
AddType application/x-httpd-php .html

PHP register_globals

По умолчанию глобальные переменные отключены. Почему это сделано можно прочитать на официальном сайте http://ru2.php.net/manual/ru/security.globals.php
В случае если всё-таки появляется необходимость включить их, можно прописать в .htaccess строку php_flag register_globals 1

Поиск текста в файлах

Для поиска текста удобно использовать следующие команды:
[root@srv001 ~]# find /var/named/ -type f -exec grep “MX” {} ;
serversnetwork.info. 14400 IN MX 10 mail
[root@srv001 ~]# grep -rl ‘MX’ /var/named/
/var/named/serversnetwork.info.db

Некоректное поведение горизонтального скроллинга тачпада

Всё-таки решился поставить себе на ноутбук линукс. Сначало установил убунту, но столкнулся с рядом глюков и прибил ее. Прижился у меня на ноутбуке CentOS 5. На удивление сбалансированная и пригодная для лаптопов система. Ничего руками не пришлось доводить. Из глюков пока заметил только неправильное поведение горизонтального скролинга тачпада. Это заметно, скажем при горизонтальном скроллинге в файрфоксе происходит переход на предыдущие страницы.
Для лечения открываем конфиг Х-сервера (/etc/X11/xorg.conf) и ищем секцию с упоминанием “Synaptics”. В эту секцию добавляем опцию Option “HorizScrollDelta” “0”, тем самым отключаем горизонтальный скроллинг вообще.

Синхронизация с сервером времени

Наблюдаю странную картину. После каждой перезагрузки сервера у него сбивается время.
Я уже писал о настройке времени в Linux, но забыл упомянуть(просто незнал 😉 о полезной команде устанавливающей время синхронизацией с сервером времени.
rdate -s time-a.nist.gov
rdate -s time.apple.com

Редирект на другой сайт.

Цель: сделать редирект любых файлов с одного домена на другой
Решение: делается с помощью мода Rewrite добавлением в .htaccess следующих строк.
<ifModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ http://vash.domain.ru/$1
</ifModule>

Другая полезная информация на эту тему
http://www.webdesign.site3k.net/?/docs/htaccess.html

Отправка Welcome сообщения в DirectAdmin с русской кодировкой.

Я всегда формировал велком сообщение своим собственным скриптом, так как ДА не указывает в письме кодировки и оно приходит аброкадаброй. Но оказывается всё таки можно указать кодировку в велком сообщении, для этого нужно добавить такую строку в самый верх сообщения:
|?HEADER=Content-Type: text/plain; charset=windows-1251|

http://www.directadmin.com/features.php?id=620

Конвертация дампа базы из одной кодировки в другую

Столкнулся с проблемой, когда сам дамп базы изначально в кодировке UTF-8, а нужно залить базу в кодировке cp1251
Тогда можно просто переконвертировать дамп из utf-8 в cp1251
Делается это командой
iconv -f utf-8 -t cp1251 dump_utf8.sql > dump_cp1251.sql

Настройка времени в Linux

Столкнулся с настройкой времени на сервере. Запишу себе на памятку, чтобы не забыть 😉
При загрузке время считывается из BIOS и вычисляется в соответсвии с часовым поясом установленным в системе(в BIOS время хранится без часовых поясов), после чего сохраняется в /etc/localtime
В /usr/share/zoneinfo хранится информация о разных часовых поясах.
Для смены часового пояса надо использовать следующую команду
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
После чего можно уже выставлять часы командами:
date –set 2007-10-11
date –set 23:30
Еще надо бы настроить синхронизацию времени с сервером времени при помощи демона ntpd
Хорошая статья на эту тему