Drupal, Denwer, phpMyAdmin и кодировки cp1251, utf8.
Если Вы задумаете обмениваться базами данных между своими Друпал (Drupal) сайтами, например сайтом на Вашем компьютере и сайтом в сети Интернет, то может возникнуть проблема с отображением текста Ваших страничек. Это связано с тем, что Друпал работает с кодировкой utf8, а Денвер работает с кодировкой cp1251.
По незнанию, я устанавливал Друпал по умолчанию, то есть установил Денвер и тут же установил Друпал. У меня работало вроде всё нормально, но потом было замечено что не работает поиск по русским буквам. Поиски по Интернету дали только то, что Друпал нормально работает с utf8.
Потом появились проблемы при использовании импорта/экспорта базы данных. В интернет базы MySQL работают в основном с кодировкой utf8. В другую кодировку текст преобразовывается сервером при передачи текста в браузер. Денвер преобразовывает текст в кодировку cp1251.
При экспорте базы MySQL данные сохраняются в cp1251 и при импорте в другую базу они также идут в кодировке cp1251, но приемная база считает что это utf8 и при выдаче в браузер происходит ещё одна перекодировка, ненужная, и получается непонятно что.
Что бы этого избежать, мною были внесены некоторые изменения в настройки базы MySQL и phpMyAdmin.
Кодовая таблица для базы данных MySQL определяется в файле my.cnf, его можно открыть для редактирования из любого текстового редактора. Только надо сначала открыть редактор, а потом в редакторе открыть этот файл. Если установка Денвера происходила по умолчанию или по рекомендациям, то этот файл будет расположен в Z:\usr\local\mysql4\my.cnf
Делаем замены, устанавливающие кодовую таблицу utf8 вместо cp1251
[client]
port = 3306
socket = /tmp/mysql.sock
# ==============================================================
# === БЫЛО === default-character-set = cp1251
# ==============================================================
default-character-set = utf8
character-sets-dir = /usr/local/mysql4/share/charsets
#
# Параметры MySQL-сервера.
#
[mysqld]
# Использовать режим совместимости с клиентами MySQL 3.x и MySQL 4.0.
old-passwords
# Кодировка баз данных по умолчанию.
default-character-set = utf8 # было cp1251
init-connect = "set names utf8" # было cp1251
Перезапускаем Апач ( Restart server )
На момент написания этого материала у меня установлено:
Базовый пакет: Base_2006-10-04_a1.3.33_p4.4.3_m4.1.16_pma2.6.1.exe
Пакет расширения: PHP4_2006-10-04_4.4.4.exe
Если у Вас установлены другие версии, то возможно отличие, но принцип остаётся - надо ср1251 заменить на utf8 .
Так как в основном для импорта/экспорта используется phpMyAdmin, то нужно и там сделать некоторые изменения. Справа на главной странице http://localhost/Tools/phpmyadmin/index.php выбираем
Language -> Russian (ru-utf-8),
Сопоставление соединения с MySQL -> utf8_general_ci
должно быть: MySQL-кодировка: UTF-8 Unicode (utf8)
В самом низу страницы возможно возникнет сообщение:
Ваш конфигурационный файл содержит настройки (пользователь root без пароля), которые относятся к привилегированному пользователю MySQL (по умолчанию). Ваш MySQL сервер запущен с этими настройками по умолчанию, открытый для вторжений, поэтому Вам настоятельно рекомендуется устранить эту дыру в безопасности.
The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.
Сообщение на английском говорит о том, что для нормальной работы phpMyAdmin с кодировкой utf8 необходим модуль расширения mbstring для PHP. Данный модуль есть в расширении для PHP для Денвера, Скачиваем это расширение и устанавливаем если Вы его ещё не установили.
Далее ищем файл Z:\usr\local\php\php.ini и в нем убираем ";" в начале строки
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Динамически загружаемые расширения ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Убираем ; перед двумя следующими строками
extension=php_gd2.dll -- графическая библиотека
extension=php_mbstring.dll -- работа с уникодом.
перезапускаем Денвер и проверяем обновлением страницы http://localhost/Tools/phpmyadmin/index.php
Если надпись
The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.
изчезла, то проблемы решены и всё должно работать нормально. Во всяком случае у меня все работает и поиск и импорт/экспорт.
- Страница для печати
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 42224 просмотра
расширение для php
В нынешнем варианте Денвера (Denwer3_Base_2008-01-13)
докачивать расширение для php не надо..
extension=php_gd2.dll -- графическая библиотека - уже подключен
остается подключить только модуль extension=php_mbstring.dll -- работа с уникодом (убрать;).
Спасибо огромное за понятные описания по установке Drupal!!!!!
(тока вот captcha для коммента невменяемая..не всегда разберешь, что имеется в виду...с пятой попытки)
расширение для php
Стоит 3 Денвер, докачал расширение php_mbstring.dll, раскомментировал, перегрузил сервер. Однако надпись не исчезла....
расширение для php
Проблема решена, дело в том что на 3 Денвер если ставить расширение которое в статье по ссылке, то php_mbstring.dll не скопируется. Его надо руками встаить в /local/php5/ext
Проблема не решилась. Если я
Проблема не решилась. Если я руками закидываю библиотеку в папку /local/php5/ext, то при перезапуске денвера возникает ошибка:
расширение php4ts.dll не найдено. Проблема может решиться переустановкой приложения.
Хотя эта библиотека лежит в Z:\usr\local\php4
Как это разрулить?
Ошибка "The mbstring PHP extension..." не исчезла :(
Ошибка "The mbstring PHP extension..." не исчезла.
1)Файлы отредактировал,
2)расширение скачал и установил
3)файл php_mbstring.dll тоже скачал и установил.
Все глухо. Кстати при установке расширения вылетала надпись:
Ошибка: could not create Z:\/usr/local/php5/ext/php_gd2.dll. Повторить (y/n)?
Это че такое кто знает?
Все, победил! Делаем так!
Все, победил! Делаем так! Удаляем папку php5 ручками из Z:/usr/local/. Затем ставим расширение с php5, то которое скачали с Денвера. Ставится оно без проблем, без всяких "could not create Z:\/usr/local/php5/ext/php_gd2.dll. Повторить (y/n)?" После этого правим php.ini как сказано в инструкции и т.д. и т.п. Вуаля! Красная надпись на басурманском языке исчезает!
Прочитал с удовольствием
Благодарствую за месагу. Прочитал с удовольствием.
Прочитал с удовольствием
Спасибки за месагу. Прочитал с удовольствием.
Осваиваем Drupal 5 » Начало создания сайта на движке CMS Друпал
Я довольно многое возбужденного Спасибо за обмен такой приятный post.I нашел очень интересную информацию в нем, и это действительно полезно я думаю, люди должны смотреть вперед, чтобы он это действительно приятно проделанную работу и я буду обращаться другие люди, чтобы проверить его.
ase certification | ccie certification | it certification
This is fantastic! I love it!
This is fantastic! I love it! I think so its very useful 640-802 and knowledge able.I would like to thank you for the efforts 640-816 you have made in writing this article. I am hoping the same 640-822 best work Quotes future as well.i will come back here to see more updates in future 640-863 as well.my best wishes for you always so keep it up.regards