Кто-то, возможно, знает о небольшом сайтце, который я сотоварищи когда-то делал (да так толком и не доделал). Смотрю на него и слёзы наворачиваются
Посему было принято волевое решение ресурс переделать. Тут сам собой возник вопрос о технических средствах. Нынешний вариант представляет собой ASP.NET + MS SQL. Хостить такую конфигурацию знамо дороже, чем PHP + MySQL. Плюс, давно пора бы уже попрактиковаццо в php (стыдно молвить – 22 года и ни строчки на этом наречии!
). Бесплатность php опять же.. И, раз уж пошла такая пьянка, было решено до кучи заюзать какую-нибудь CMS. Так или иначе выбор пал на Drupal.
Здесь я буду время от времени обозначать какие-то свои мысли на тему, описывать что и, главное, как было реализовано с помощью Drupal’a. Возможно, кому-то и сгодится. И, признаюсь, возможно кто-то из вас меня раскритикует и предложит лучшее решение
Итак, начнём!
На этот момент доступен релиз 5.2. Прежде всего нужно установить собственно php, mysql and apache. Я пошёл простым путём и скачал пакет EasyPHP 2.0, который включает в себя Apache 2.2.3 – PHP 5.2.0 – MySQL 5.0.27 – PHPMyAdmin 2.9.1.1 – SQLiteManager 1.2.0. Далее создаётся база данных для Drupal. Архивчег с Drupal я распаковал в D:/goncharka_drupal_52. Через localhost конфигурится Апач: я создал alias g52 для D:/goncharka_drupal_52. После чего, зайдя на localhost/g52, запустил настройку сайта.
На данном этапе управление CMS мне кажется очень даже понятным и удобным. Не буду больше ничего писать и вставлять скриншоты, а отправлю любопытных на http://si505.cms.si.umich.edu/node/2. Там в каждом разделе доступны Screencasts, на которых с видео и звуком прокомментированы основные концепции Drupal.
А теперь о “первой крови”
Допустим, мне нужно попасть в раздел администрирования сайта. По умолчанию я попадаю туда через http://localhost/g52/?q=admin. Не очень красиво. Вышеприведённые скринкасты содержат сцену, где дядя заходит в раздел админки admin/settings/clean-urls, кликает Run the clean url test и – бинго! – успешно переключается в общепринятый режим навигации. Теперь вместо http://localhost/g52/?q=admin используется http://localhost/g52/admin. У меня так не вышло
При попытке запустить тест Апач ругался на
The requested URL /g52/admin/settings/clean-urls was not found on this server.
Апач у меня стоит в C:/program files/…, а сайт расположен на D:/… Возможно, если бы я расположил его в подкаталоге www Апача, то всё было бы классно, но.. Anyway, покопавшись в гугле, я понял, что не одинок в своей беде. Шаманство и танцы с бубном привели к следующему алгоритму:
- В
c:\Program Files\EasyPHP_2.0b1\apache\conf\httpd.conf ищем строку
LoadModule rewrite_module modules/mod_rewrite.so
раскомментируем её и переносим выше, примерно перед строкой
#LoadModule file_cache_module modules/mod_file_cache.so
- В самом конце файла EasyPHP добавил блок
### Alias EasyPHP
# !!! DO NOT REMOVE !!!
# ========================================
#alias
Alias "/g52" "d:/goncharka_drupal_52/"
<Directory "d:/goncharka_drupal_52">
Options FollowSymLinks Indexes
AllowOverride None
Order deny,allow
Allow from 127.0.0.1
deny from all
</Directory>
#alias
# ========================================
### Alias End
AllowOverride None нужно заменить на AllowOverride All
- Перезапускаем Апач и видим теперь другую ошибку:
Your browser sent a request that this server could not understand.
- В корневом каталоге Drupal (в моём случае –
D:\goncharka_drupal_52\) лежит файл .htaccess. В нём нужно раскомментить строку RewriteBase /drupal и заменить слово drupal на корректный alias сайта (в моём случае – g52. Таким образом, строка изменяется на RewriteBase /g52
- Бинго!Мы это сделали!
Возможно, я описал здесь какие-то очевидные вещи, но для меня этот процесс был далеко нетривиальным и честно говоря я изрядно протрахался
Ещё один косячок был связан с настройками php. После того, как я скачал некоторое количество дополнительных модулей к Drupal, php выдал мне ошибку
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 98304 bytes).
Притом, в php.ini memory_limit стоит равным 128М(!). Решением было добавить строку ini_set(‘memory_limit’, ‘128M’); в D:\goncharka_drupal_52\sites\default\settings.php
На этом неприятности на сегодня закончились