Мультисайтинг не работает

Главные вкладки

Аватар пользователя clubwave.ru clubwave.ru 17 ноября 2006 в 17:08

Есть домен - build-portal.ru
нужен новый сайт на тех же скриптах (print.build-portal.ru)
в дирректорию sites/print.build-portal.ru/ положил settings.php, прописал там реквизиты базы данных.. базу данных разумеется тоже залил.. при переходе по адресу print.build-portal.ru видем следующее.. база подключилась нормально, а вот тема очевидно нет..

тема лежит в дирректории sites/print.build-portal.ru/themes/

кроме того абсолютно необходима своя папка files/

подскажите, что может быть не так..?

Комментарии

Аватар пользователя jerboa7 jerboa7 17 ноября 2006 в 18:21

насколько понимаю, Вы заходите по адресу print.build-portal.ru и видите, так сказать, "голый друпал" - т.е. есть ноды, но нет блоков по обе стороны, нет шапки. Все черно-белое, ссылки сине-фиолетовые?
Похоже, Друпал просто не "видит" тему. Вариант решения: идем вручную по пути print.build-portal.ru/admin/themes и ставим галку напротив темы.
Папку files/ если не ошибаюсь надо создавать там же, где лежит themes - в директории sites/print.build-portal.ru

Аватар пользователя clubwave.ru clubwave.ru 17 ноября 2006 в 18:40

Спасибо! при первом заходе по адресу print.build-portal.ru/admin/themes тема сразу же заработала... но папку files/ друпал попрежнему не видет.. т.к. нет ни одного изображения не лежащего в папке themes/

папка files/ находится - sites/print.build-portal.ru/files/

что можно ещё попробовать не знаю..

заходил в настроки - файловая система.. там указана папка files/ нажал сохранить... ничего не изменилось

Аватар пользователя axel axel 17 ноября 2006 в 19:53

В settings.php для этого подсайта добавить в $conf параметр 'file_directory_path' => '/sites/print.build-portal.ru/files'

--
Axel,
администратор сайта «Drupal — Россия»

Аватар пользователя jerboa7 jerboa7 17 ноября 2006 в 18:26

лежит там же, где лежал. Его нужно править в том случае, если бы друпал должен был откликаться на build-portal.ru/print

Аватар пользователя clubwave.ru clubwave.ru 17 ноября 2006 в 18:49

в папке sites/print.build-portal.ru/ должен быть .htaccess файл?

например картинка в новости распологается по адресу - http://print.build-portal.ru/files/bimg1487.jpg

т.е. в реале лежит в папке http://build-portal.ru/sites/print.build-portal.ru/files/bimg1487.jpg

при попыте зайти по адресу - http://build-portal.ru/sites/print.build-portal.ru/files/bimg1487.jpg

картинка показывается корректно, а при переходе по адресу - http://print.build-portal.ru/files/bimg1487.jpg друпал сообщает - страница не найдена..

Мне кажется дело в .htacess или ещё каких-то настройках, только не пойму каких..

Аватар пользователя clubwave.ru clubwave.ru 20 ноября 2006 в 15:57

вписал в конец конфига следубщее

$conf = array(
'file_directory_path' => '/sites/print.build-portal.ru/files'
);

картинки не появились... в настройках файловой системы ошибка:

* warning: mkdir(): open_basedir restriction in effect. File(/sites/print.build-portal.ru/files) is not within the allowed path(s): (/usr/local/psa/home/vhosts/build-portal.ru/httpdocs:/tmp) in /usr/local/psa/home/vhosts/build-portal.ru/httpdocs/includes/file.inc on line 91.
* Директория /sites/print.build-portal.ru/files не существует.

папка существует и доступна для записи.. пробовал прописать /sites/print.build-portal.ru/files/ и http://build-portal.ru/sites/print.build-portal.ru/files

не помогает

Аватар пользователя axel axel 21 ноября 2006 в 6:57

Звиняюсь, я подсказал некорректно. Слэш в корне убрать надо, а то оно от корня файловой системы пытается так адресовать, что нам не надо.

Вот так надо:
<?php

$conf = array(
'file_directory_path' => 'sites/print.build-portal.ru/files'
);

?>

Либо вписать полный путь от корня /home/user... и так дальше, тогда / в начале нужен.

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя axel axel 21 ноября 2006 в 6:58

$base_url чаще всего не требуется, но хуже от него не будет. Само собой он должен быть разным на разных хостах мультисайта.

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя clubwave.ru clubwave.ru 21 ноября 2006 в 10:32

так.. ошибки нет, но всёже картинки не отображаются.. например картинка имеет следующий адрес - http://print.build-portal.ru/files/imagecache/resize60x60/files/t4_1.jpg

При условии, что print.build-portal.ru является алиасом к build-portal.ru разве картинка должна быть недоступна?

в шаблоне данная картинка вызывается следующим образом -

<img class="claprevi" src="<?php print base_path()?>files/imagecache/resize60x60/<?php print $field_clauses_prev[0]['filepath'] ?>" />

Вероятно в таком случае следуюет подругому картинку вызывать.. но как?

Аватар пользователя axel axel 21 ноября 2006 в 15:15

Вот если так оригинал изображения находится: http://print.build-portal.ru/sites/print.build-portal.ru/files/t4_1.jpg
Поэтому загляни в папку files и посмотри там вообще есть эти папки imagecache/resize...

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя clubwave.ru clubwave.ru 21 ноября 2006 в 16:46

Конечно есть... я эти сгенерированные imagecache просто как первые попавшиеся в пример привёл..

вобщем при наборе адреса картинки, выдаваемого шаблоном
http://print.build-portal.ru/files/t4_1.jpg

попадаем на несуществующую страницу домена, запущенного посредством мультисайтинга..

Если же изменить этот адрес на реально существующий для основного домена файл

http://build-portal.ru/sites/print.build-portal.ru/files/t4_1.jpg фотка появляется..

странно, только что и для imagecache картинки ссылка вида - http://build-portal.ru/sites/print.build-portal.ru/files/imagecache/resi... сработала..

В принципе шаблоны поменять под написания такого вида урлов не сложно, однако хочется, чтобы файлы имели адрес http://print.build-portal.ru/files/t4_1.jpg такой же, как если бы это был независимый сайт... это реально?

Аватар пользователя axel axel 21 ноября 2006 в 16:57

На лицо несоответствие требований:

Quote:
кроме того абсолютно необходима своя папка files/

Ок, поэтому я предложил прописать не files, а sites/files/print....итд

Ниже:

Quote:

вобщем при наборе адреса картинки, выдаваемого шаблоном
http://print.build-portal.ru/files/t4_1.jpg[/quote] Ясно дело что оно тут не будет видно, ведь папка с файлами для этого подсайта другая. Тогда надо в конфиге указать папку files общую и из неё брать файлы.

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя axel axel 21 ноября 2006 в 16:58

а чего забивать? прекрасно работает мультисайтинг в друпале. поясни требования плз.
папки файлов для разных подсайтов должны быть разными или нет?

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя clubwave.ru clubwave.ru 21 ноября 2006 в 17:48

папки должны быть разными, но я хочу полного сходства с ситуацией, когда сайт лежит отдельно, на своём наборе скриптов... поясню

если бы сайт print.build-portal.ru был независимым, то как и страницы сайта файлы и картинки открывались бы из папки print.build-portal.ru/files/ а не из папки build-portal.ru/sites/print.build-portal.ru/files/

вот именно урл картинок чтобы был print.build-portal.ru/files/example.jpg это реально при мультисайтинге?

Аватар пользователя axel axel 21 ноября 2006 в 19:33

Реально. Может есть более изящное решение, но первое что приходит в голову - дописать правило для mod_rewrite в .htaccess.
Что-нибудь типа (не уверен в правильности):

  RewriteCond %{REQUEST_FILENAME} -f
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^files/(.*)$ sites/print.build-portal/files/$1 [L,QSA]

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя axel axel 23 ноября 2006 в 19:46

Вот так будет правильней. Это добавить в секцию mod_rewrite в .htaccess в корне основного сайта.

  RewriteCond %{HTTP_HOST} ^print\.build-portal\.ru [NC]
  RewriteCond %{REQUEST_FILENAME} -f
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^files/(.*)$ sites/print.build-portal/files/$1 [L,QSA]

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя clubwave.ru clubwave.ru 22 ноября 2006 в 10:52

положил строчку -

RewriteRule ^files/(.*)$ sites/print.build-portal/files/$1 [L,QSA]

в корень сайта - build-portal.ru

перестали отображаться файлы на build-portal.ru, на print.build-portal.ru файлы не появились...

правильно, что в основной домен ложу?

может нужно в sites/print.build-portal.ru/

или строчка в чём-то не правильная..

Axel, помоги, плз.. совсем чуть чуть осталось, но в .htaccess я вообще лапоть..

Аватар пользователя axel axel 23 ноября 2006 в 16:46

Строчка правильная, но действительно в .htaccess в корне сайта она будет все файлы так преобразовывать, в том числе файлы основного сайта. Нет, в sites.. .htaccess не имеет смысла класть. Устроит такое решение? назвать не files а files2 или images эту папку и положить её в корень сайта? Соответственно заменить путь в конфиге.

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя clubwave.ru clubwave.ru 23 ноября 2006 в 18:05

очень хотелось бы чтобы файлы ссылались именно на print.build-portal.ru

Если реально никак, то придётся отказываться от мультисайтинга... помимо эстетики, это ещё и править во всех шалонах files на files2 ну и мало ли ещё чего... Sad

Аватар пользователя axel axel 23 ноября 2006 в 19:43

Имхо в шаблонах надо переменную прописывать, содержащую путь к файлам, на случай переименования. В друпаловских темах ведь так и сделано, нет там жёстких путей.

И см. выше уточнённый рецепт с mod_rewrite. Насчёт параметров не уверен, я не особо как mod_rewrite знаю, но если эту конструкцию отладить, она решит проблему.

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя clubwave.ru clubwave.ru 24 ноября 2006 в 12:06

тоесть?

вписыаем в шаблон:

вместо files/ sites/print-build-portal.ru/files

А в .htaccess:

RewriteCond %{HTTP_HOST} ^print\.build-portal\.ru [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^files/(.*)$ sites/print.build-portal/files/$1 [L,QSA]

получу картинки, адрес которых будет виден как print.build-portal.ru/files/ ?

Аватар пользователя axel axel 24 ноября 2006 в 12:57

Типа так. Но в шаблоне надо тоже files, чтобы ссылки на сайте выглядели короткими, как хочется. А в sites/files... оно будет через mod_rewrite преобразовываться.

О, сейчас подумал, что для этого логичней не mod_rewrite, а custom url rewrite друпаловский использовать.

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя clubwave.ru clubwave.ru 24 ноября 2006 в 12:23

ничего не понимаю...

например в темплейте статей фотка выводится следующим кодом:

<img src="<?php print $base_path ?>/<?php print $field_clauses_prev[0]['filepath'] ?>">

но путь к файловой системе вот такой:

sites/print.build-portal.ru/files

почему же всеравно фотка имеет адрес: http://print.build-portal.ru/files/t4_1.jpg?

Аватар пользователя axel axel 24 ноября 2006 в 13:04

Не знаю. Я в шаблонах эти пути никогда не правлю и на мультисайтах оно работает. Для проверки верни шаблон к исходному виду как был в друпаловской теме?

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!