Как вы делаете сайт Kohana переносимым? - PullRequest
0 голосов
/ 12 мая 2009

Я только что закончил кодировать онлайн-портал с Kohana PHP .

Он отлично работает на моем ПК, но когда я попытался разместить его на другом сервере, «BONK!», он отображается без отображения изображений продуктов.

Я даже не знаю, что происходит.

Каким правилам я должен следовать, чтобы сделать приложения Kohana переносимыми?

Ответы [ 3 ]

3 голосов
/ 17 ноября 2009

Я использую Kohana для разработки нескольких веб-сайтов, и вот несколько приемов, которые я использую, чтобы убедиться, что веб-сайты переносимы, так как я могу просто загрузить файлы из среды разработки на сервер и запустить их без необходимость что-либо изменить:

  1. Использовать ту же структуру каталогов. Например, в моем случае я поместил основные папки Kohana в <drive><somepath>/apps/kohana/system/ и <drive><somepath>/apps/kohana/modules/ на моем локальном диске и /apps/kohana/system/ и /apps/kohana/modules/ на сервере. Точно так же я установил свой локальный XAMPP htdocs на <drive><somepath>/public_html/, чтобы следовать настройке сервера /public_html. Таким образом, мне не нужно изменять index.php при загрузке на сервер. Использовать относительные пути .

  2. Как и предполагали кфедеровы, используйте url::base() во всех ваших src = ".." в ваших шаблонах. Я делаю это, назначая $this->template->baseurl = url::base(); в моем Controller_Template (я использую Kohana 3, но метод почти такой же для Kohana 2.x) и использую {$baseurl} в шаблонах Smarty (я настоятельно рекомендую использовать шаблон Smarty система - вы можете найти модуль на форуме Kohana).

  3. Используйте одно и то же имя базы данных, имя пользователя и пароль как в среде разработки, так и в среде сервера, чтобы мне не приходилось изменять config/database.php, очевидно.

  4. Если вы размещаете на одном хостинге несколько веб-сайтов с разными доменами, очевидно, что вы не можете использовать /public_html в качестве корневого каталога для всех сайтов, кроме одного. Скорее всего, вам придется настроить эти неосновные домены так, чтобы они указывали на разные папки, например, в моем случае я помещаю их в папки /hosted/*/ и соответствующим образом настраиваю cPanel своего сервера. Чтобы продублировать этот параметр в локальной среде, вам необходимо использовать поддомены localhost, для чего необходимо соответственно изменить httpd.conf и файл HOSTS, как показано ниже:

    1. Добавить виртуальный хост в httpd.conf. например:

      <VirtualHost *:80>
        DocumentRoot /path/to/hosted/coolwebsite
        ServerName coolwebsite.localhost
      </VirtualHost>
      
    2. Добавить в файл HOSTS (C:\WINDOWS\system32\drivers\etc\hosts если под Windows):

      127.0.0.1     coolwebsite.localhost
      
    3. Теперь вы используете http://coolwebsite.localhost/ для доступа к веб-сайту на локально работающем веб-сервере для вашей среды разработки.

Надеюсь, это поможет!

0 голосов
/ 09 октября 2009
  1. Проверьте правильность пути к файлам .htaccess и bootstrap.php.

  2. Убедитесь, что вы использовали URL::base() в src="...".

0 голосов
/ 12 мая 2009

Обязательно обновите ваш .htaccess, значения в вашем index.php и, возможно, в ваших файлах конфигурации.

...