SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Публикация symfony проекта в web
         и его обновление



Alex Demchenko
pilo.uanic@gmail.com
I love Symfony for 2+ years
['UA camp']

                  Кто я ?
 Люблю symfony уже 2+ года

 Team lead of Lazy Ants (web2.0services.de)
['UA camp']

          О чем поговорим?
 Как залить и заставить работать свой
  проект в web
 Как обновлять проект
['UA camp']

     Хостинг

выделенный сервер
вирутальный сервер
      Шаред
['UA camp']

       Шаред хостиг

у нас нет ни pear ни тем более
         command-line


         Что делать?
['UA camp']

             Инструменты

 Шаред хост с php5
 Доступ по FTP
 Работающий проект на локальной машине
['UA camp']

         Пример директорий на хостере

/
/stats
/logs
/html (httpdocs, public_html, наш document_root)
и тд. ...
['UA camp']
 Что должно получиться на выходе
Вариант РАЗ            Вариант ДВА
 /                     /
 /html                 /html
 /myproject            /pear_libs
    /apps                /symfony
    …                    /data
    /lib                   /symfony
       /symfony        /projects
    …                    /myproject
    /web                   /apps
      /sf
['UA camp']

             Вариант РАЗ
Пакуем symfony (все либы копируется в
                проект)

 - php symfony freeze
 - либо берем подготовленые либы из
   symfony sf_sandbox_1_2 (/lib/symfony)
['UA camp']

        Загружаем все на хост
Загружаем наш проект без папки WEB

      локально           хостинг
  myproject         /mypoject
                     …
                     /lib
                       /symfony
                     …
['UA camp']

        Загружаем все на хост
Загружаем папку WEB в наш webroot

      локально            хостинг
  myproject/web   /html
                    …
                    /sf
['UA camp']

           Последние приготовления
  шаманим в ProjectConfiguration.class.php
<?php

require_once dirname(__FILE__) .
                '/../lib/symfony/autoload/sfCoreAutoload.class.php';

sfCoreAutoload::register();

class ProjectConfiguration extends sfProjectConfiguration
{
 public function setup()
 {
 }
}
['UA camp']

Symfony cache и log — права на запись

 /myproject/cache
 /myproject/log
['UA camp']

          Шаред с мультидоменами
               Загружаем symfony

       локально                    хостинг
%PEAR_DIR%/symfony        /pear_libs/symfony

%PEAR_DIR%/data/symfony /pear_libs/data/symfony
['UA camp']

               makesymlink.php
<?php
/*
  Перед выполнением установите права на папку web для
  записи, а после того как создадите линк, верните
  прежние права.
*/
$rootdir = realpath(dirname(__FILE__).'/..');
$webdir = realpath(dirname(__FILE__));
symlink($rootdir.'/pear_libs/data/symfony/web/sf',
$webdir.'/sf');
?>
['UA camp']

 Символическая ссылка для symfony


          target                     link
pear_libs/symfony      projects/myproject/lib/symfony
['UA camp']

              makesymlink_symfony.php
<?php
$rootdir = realpath(dirname(__FILE__).'/..');
/*
Перед выполнением установите права на папку web для                     записи, а
после того как создадите линк, верните                          прежние права.
---------------------------------------------------------------
/projects/myproject/lib

*/
// symfony_lib
  symlink($rootdir.'/pear_libs/data/symfony',
                                $rootdir.'/projects/myproject/data/symfony');
['UA camp']




Как обновлять?
['UA camp']
 Subversion / TurtoiseSVN экспорт
измененных файлов между двумя
            ревизиями
                        у


http://tigor.com.ua/blog/2009/02/24/windows-
subversion-tortoisesvn-compare-two-versions-of-
a-repository/
['UA camp']



  Копи — Паст

     рулит

       :)
['UA camp']

Вы обладатель выделенного или
    виртуального сервера?
 У вас нет этих сложностей и вы можете
использовать возможности svn на полную

             svn update
             svn export
['UA camp']

    Работа с dev и prod серверами

• commit в svn
• update (export) на dev server
• testing на dev server
• export на prod server
['UA camp']

      Обновляем базу данных

Плагин для получения sql diff файлов между
        schema.yml и базой данных
           SfPropelSqlDiffPlugin
['UA camp']

     Команды SfPropelSqlDiffPlugin
После изменения shema.yml
> php symfony propel:build-sql-diff
Результат лежит в data/sql/propel.diff.sql

Добавляем в базу propel.diff.sql
> php symfony propel:insert-sql-diff

Выполняем предыдущие операции одной строкой
> php symfony propel:build-all-diff
['UA camp']

 Как же быть с cli?
 Ставим sfWebCliPlugin
['UA camp']

 Symfony и шаред хостинг с cpanel


http://www.weblincs.co.uk/symfony-framework-
         cPanel-shared-hosting.html
['UA camp']

        Шаред хостинг для symfony
ServerGrove — предлагает утилиту Maestro



Что может:
 Загрузка, установка вашего проекта на symfony
 Управление конфигурацией сервера apache
 Просмотр логов с помощью Ajax сразу в броузере
 Веб cli интерфейс
 Улучшенные требования по безопасности к symfony проектам
 http://servergrove.com/symfonyhosting
['UA camp']




Спасибо за внимание
['UA camp']


   Alex Demchenko
 pilo.uanic@gmail.com
http://web2.0services.de
    http://lazy-ants.de

Mais conteúdo relacionado

Destaque

Symfony camp ua 2010 stats
Symfony camp ua 2010 statsSymfony camp ua 2010 stats
Symfony camp ua 2010 stats
Alex Demchenko
 
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Alex Demchenko
 

Destaque (9)

Symfony2 start
Symfony2 startSymfony2 start
Symfony2 start
 
Google map markers with Symfony2
Google map markers with Symfony2Google map markers with Symfony2
Google map markers with Symfony2
 
Symfony camp ua 2010 stats
Symfony camp ua 2010 statsSymfony camp ua 2010 stats
Symfony camp ua 2010 stats
 
Auto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalkAuto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalk
 
Routing System In Symfony 1.2
Routing System In Symfony 1.2Routing System In Symfony 1.2
Routing System In Symfony 1.2
 
Twig, что за..
Twig, что за..Twig, что за..
Twig, что за..
 
Symfony2 – reload?
Symfony2 – reload?Symfony2 – reload?
Symfony2 – reload?
 
Google Map маркеры вместе с Symfony2
Google Map маркеры вместе с Symfony2Google Map маркеры вместе с Symfony2
Google Map маркеры вместе с Symfony2
 
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
 

Symfony Project Publication

  • 1. Публикация symfony проекта в web и его обновление Alex Demchenko pilo.uanic@gmail.com I love Symfony for 2+ years
  • 2. ['UA camp'] Кто я ?  Люблю symfony уже 2+ года  Team lead of Lazy Ants (web2.0services.de)
  • 3. ['UA camp'] О чем поговорим?  Как залить и заставить работать свой проект в web  Как обновлять проект
  • 4. ['UA camp'] Хостинг выделенный сервер вирутальный сервер Шаред
  • 5. ['UA camp'] Шаред хостиг у нас нет ни pear ни тем более command-line Что делать?
  • 6. ['UA camp'] Инструменты  Шаред хост с php5  Доступ по FTP  Работающий проект на локальной машине
  • 7. ['UA camp'] Пример директорий на хостере / /stats /logs /html (httpdocs, public_html, наш document_root) и тд. ...
  • 8. ['UA camp'] Что должно получиться на выходе Вариант РАЗ Вариант ДВА / / /html /html /myproject /pear_libs /apps /symfony … /data /lib /symfony /symfony /projects … /myproject /web /apps /sf
  • 9. ['UA camp'] Вариант РАЗ Пакуем symfony (все либы копируется в проект) - php symfony freeze - либо берем подготовленые либы из symfony sf_sandbox_1_2 (/lib/symfony)
  • 10. ['UA camp'] Загружаем все на хост Загружаем наш проект без папки WEB локально хостинг myproject /mypoject … /lib /symfony …
  • 11. ['UA camp'] Загружаем все на хост Загружаем папку WEB в наш webroot локально хостинг myproject/web /html … /sf
  • 12. ['UA camp'] Последние приготовления шаманим в ProjectConfiguration.class.php <?php require_once dirname(__FILE__) . '/../lib/symfony/autoload/sfCoreAutoload.class.php'; sfCoreAutoload::register(); class ProjectConfiguration extends sfProjectConfiguration { public function setup() { } }
  • 13. ['UA camp'] Symfony cache и log — права на запись  /myproject/cache  /myproject/log
  • 14. ['UA camp'] Шаред с мультидоменами Загружаем symfony локально хостинг %PEAR_DIR%/symfony /pear_libs/symfony %PEAR_DIR%/data/symfony /pear_libs/data/symfony
  • 15. ['UA camp'] makesymlink.php <?php /* Перед выполнением установите права на папку web для записи, а после того как создадите линк, верните прежние права. */ $rootdir = realpath(dirname(__FILE__).'/..'); $webdir = realpath(dirname(__FILE__)); symlink($rootdir.'/pear_libs/data/symfony/web/sf', $webdir.'/sf'); ?>
  • 16. ['UA camp'] Символическая ссылка для symfony target link pear_libs/symfony projects/myproject/lib/symfony
  • 17. ['UA camp'] makesymlink_symfony.php <?php $rootdir = realpath(dirname(__FILE__).'/..'); /* Перед выполнением установите права на папку web для записи, а после того как создадите линк, верните прежние права. --------------------------------------------------------------- /projects/myproject/lib */ // symfony_lib symlink($rootdir.'/pear_libs/data/symfony', $rootdir.'/projects/myproject/data/symfony');
  • 19. ['UA camp'] Subversion / TurtoiseSVN экспорт измененных файлов между двумя ревизиями у http://tigor.com.ua/blog/2009/02/24/windows- subversion-tortoisesvn-compare-two-versions-of- a-repository/
  • 20. ['UA camp'] Копи — Паст рулит :)
  • 21. ['UA camp'] Вы обладатель выделенного или виртуального сервера? У вас нет этих сложностей и вы можете использовать возможности svn на полную svn update svn export
  • 22. ['UA camp'] Работа с dev и prod серверами • commit в svn • update (export) на dev server • testing на dev server • export на prod server
  • 23. ['UA camp'] Обновляем базу данных Плагин для получения sql diff файлов между schema.yml и базой данных SfPropelSqlDiffPlugin
  • 24. ['UA camp'] Команды SfPropelSqlDiffPlugin После изменения shema.yml > php symfony propel:build-sql-diff Результат лежит в data/sql/propel.diff.sql Добавляем в базу propel.diff.sql > php symfony propel:insert-sql-diff Выполняем предыдущие операции одной строкой > php symfony propel:build-all-diff
  • 25. ['UA camp'] Как же быть с cli? Ставим sfWebCliPlugin
  • 26. ['UA camp'] Symfony и шаред хостинг с cpanel http://www.weblincs.co.uk/symfony-framework- cPanel-shared-hosting.html
  • 27. ['UA camp'] Шаред хостинг для symfony ServerGrove — предлагает утилиту Maestro Что может:  Загрузка, установка вашего проекта на symfony  Управление конфигурацией сервера apache  Просмотр логов с помощью Ajax сразу в броузере  Веб cli интерфейс  Улучшенные требования по безопасности к symfony проектам http://servergrove.com/symfonyhosting
  • 29. ['UA camp'] Alex Demchenko pilo.uanic@gmail.com http://web2.0services.de http://lazy-ants.de