Меня что-то в последнее время часто спрашивают о хостинге для Drupal. Я использую несколько хостингов, как виртуальных, так и арендую виртуальные выделенные сервера (VDS - Virtual Dedicated Server, VPS - Virtual Private Server, что одно и то же).
Что я порекомендую для хостинга Drupal? Ну, конечно, чем мощнее сервер, тем лучше. Лучшие показатели Drupal у меня показывает на виртуальном хостинге. Но при этом виртуальный хостинг должен быть правильно сконфигурирован (или вы должны сами подправить что-то в конфигурации Drupal, в соответствии с хостингом). Поэтому зачастую проще взять виртуальный сервер и установить туда всё, что надо.
Например, на хостинге 1gb.ru я установил его на виртуальный сервер, где php работал как модуль Apache, и под Unix. Тем не менее, у данной компании стоит гейт, который разруливает трафик на сервера с сайтами. Гейт работает не под Apache, а под nginx. И то ли ошибка была в nginx'е, то ли в Apache, но ошибочно обрабатываются адреса страниц, содержащих пробелы (символ %20). Из-за этой ошибки я создал в своё время данный репорт-напоминание себе о том, что надо бы её пофиксить - Баги при вводе тегов. (Описанная там ошибка возникала именно из-за некорректной обработки url, содержащих пробелы, веб-сервером хостера.)
Как сообщила мне служба поддержки, данная ошибка отсутствует, если создавать сайт на конфигурации Apache + PHP (fast cgi) - такая возможность у них тоже есть. (Можно создать хоть под Windows/IIS.) В данном случае придётся все настройки Drupal, связанные с php, перенести в локальный файл php.ini в своей home-директории хостинга.
Как вы уже догадались, для Drupal-проектов я рекомендую именно шаред-хостинг от 1gb.ru, где сайт установлен на конфигурацию UNIX/Apache/FastCGI. Подробнее о настройке PHP в этом режиме работы (а также других режимах) можно прочитать у них на странице Конфигурирование PHP
К тому же, сейчас у них появилась услуга виртуальных серверов на технологии OpenVZ. Раньше уже я пробовал поставить Drupal на виртуальный сервер (однако, он был построен по технологии VDSmanager, у компании firstvds, но разочаровался результатами таких экспериментов - сайт работал просто безобразно. Узким местом оказалась файловая система (открытие сетевых сокетов), и поэтому сокет на соединение с БД при каждом запросе мог создаваться несколько секунд и долее. Более подробно о моём опыте можно прочитать тут.) Потестив же виртуальный сервер от 1gb, я остался доволен, и перенёс некоторые проекты туда. В качестве операционной системы используется Gentoo Linux.
Что мне особо понравилось в виртуальных серверах. Я самостоятельно установил CVS. Теперь я могу устанавливать и обновлять Drupal прямо из репозитория проекта. При большом количестве используемых модулей и их версий, это просто незаменимая штука. Ниже я предлагаю короткую памятку для тех, кто устанавливает Drupal на виртуальных серверах от 1gb.ru. Владельцы других серверов могут отредактировать эту памятку для своих нужд.
Примечание. Владение виртуальным сервером подразумевает собой root-доступ. Я советую не работать под root, а создать для работы отдельный логин. В данной памятке, пусть этим логином будет andyceo.
/home/andyceo/drupal6/http - и в директории http лежат собственно скрипты. так вот, зайти надо именно в директорию /home/andyceo/drupal6)cvs -z6 -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal co -r -d http/ drupal
Параметр указывает на нужную версию Drupal. Параметр для ядра выглядит примерно так: DRUPAL-6-6 - установит (или обновит) Drupal в директории http до версии 6.6.
/home/andyceo/drupal6/http/sites/all/modules. Если директории для модулей не существует (как это обычно бывает при свежей установке ядра), создать её.cvs -z6 -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib checkout -r -d contributions/modules/
Эта команда создаст директорию с модулем (параметр , вводить без скобок) и извлечёт из репозитория указанную его версию (параметр , вводить без скобок. Выглядит он примерно так: DRUPAL-6--1-2). Подробнее о совместной работе CVS и Drupal можно прочитать из материалов, упомянутых здесь.
Следует знать важное замечание, при работе с CVS, а именно: файлы .info извлекаются неполными из репозитория, в них отсутствует указание версии модуля. Для того, чтобы получать корректные уведомления о свежих версиях модулей (при помощи модуля Update status), необходимо установить модуль CVS deploy. Более подробно о данной ситуации можно прочитать здесь - Module .info files should not define "version" in CVS.
PS: для интересующихся: за этот пост мне никто не платил. Просто отвечаю на вопросы людям, и решил поделиться своим опытом.
Комментарии
Отправить комментарий