Передо мной была поставлена поставлена задача - с помощью одного ядра 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;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, допустим у меня следующая структура файлов:
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 и у вас для разных доменов будут разные проекты.
Этот способ очень прост, но поскольку я потратил время на поиски ответа, то с помощью этой статьи надеюсь сократить время вашего поиска.
Автор: Сергей Степанов
Поделиться @
Пока нет коментариев. Будьте первым!