Одно ядро CakePHP - много проектов

Передо мной была поставлена поставлена задача - с помощью одного ядра CakePHP обрабатывать несколько приложений - папок app. Нечто подобное есть в официальной документации book.cakephp.org но как выяснилось это всего лишь разбрасывание файлов с библиотеками по файловой системе. Затем я начал копать в сторону .htaccess и у меня получилось нечто подобное:

<ifmodule mod_rewrite.c="">
RewriteEngine on
 
RewriteCond %{HTTP_HOST}  ^test\.name.*
RewriteRule    ^$ app-test/webroot/    [L]
RewriteCond %{HTTP_HOST}  ^test\.name.*
RewriteRule    (.*) app-test/webroot/$1 [L]
&amp;amp;amp;amp;nbsp;
RewriteRule    ^$ app/webroot/    [L]
RewriteRule    (.*) app/webroot/$1 [L]
</ifmodule>

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

А дальше я присмотрелся к следующей документации http://nuts-and-bolts-of-cakephp.com/2009/03/14/run-multiple-cakephp-app-side-by-side/ , если честно, я не понял почему автор статьи ссылается в конфигах на webroot каталоги. Я же предлагаю вам использовать в параметрах DocumentRoot настройках Apache путь до нужных app каталогов.

Пример:

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

  • var
    • www
      • test-multi
        • app
        • app-test
        • .gitignore
        • index.php
        • plugins
        • vendors
        • .htaccess
        • lib
        • README

Apache у меня смотрит и настроен на /var/www/ но мне для доменов test.name и tast2.name нужно ссылаться на проекты которые находятся в /var/www/test-multi/app и /var/www/test-multi/app-test соответственно. Для этого нужно добавить соответствующие настройки в виртуальных хостах Apache:

<virtualhost *:80="">
ServerName test.name
DocumentRoot /var/www/test-multi/app
...
</virtualhost>
<virtualhost *:80="">
ServerName test2.name
DocumentRoot /var/www/test-multi/app-test
...
</virtualhost>

Все, теперь нужно только перезапустить Apache и у вас для разных доменов будут разные проекты.

Этот способ очень прост, но поскольку я потратил время на поиски ответа, то с помощью  этой статьи надеюсь сократить время вашего поиска.

Автор: Сергей Степанов

Поделиться @

Пока нет коментариев. Будьте первым!