Development

Documentation/pl_PL/book/1.0/03-Running-Symfony

You must first sign up to be able to contribute.

Version 13 (modified by Pawel.Ledwon, 10 years ago)
--

Oryginalny tekst: http://www.symfony-project.com/book/trunk/03-Running-Symfony [EN]

WERSJA ROBOCZA

Rozdział 3 - Uruchamianie symfony

W poprzednich rozdziałach dowiedzieliście się, że framework symfony jest zbiorem plików napisanych w PHP. Projekty symfony używają go, więc instalacja oznacza pobranie tych plików i udostępnienie ich projektowi.

Jako framework pisany dla PHP 5, symfony wymaga PHP w wersji piątej. Upewnij się, że masz je zainstalowane poprzez otwarcie linii poleceń i wpisanie komendy:

> php -v

PHP 5.2.0 (cli) (built: Nov 2 2006 11:57:36)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies

Jeżeli numer wersji jest większy bądź równy 5.0, znaczy to, że jesteś gotowy do instalacji opisanej w tym rozdziale.

Instalacja Sandboxa

Jeżeli chcesz zobaczyć tylko, co można zrobić z symfony, prawdopodobnie wybierzesz szybką instalacje. W takim wypadku potrzebujesz sandboxa.

Sandbox jest prostym zbiorem plików. W jego skład wchodzi pusty projekt symfony, zawierający wszystkie dołączone biblioteki (symfony, pake, lime, Creole, Propel i Phing), domyślną aplikację oraz podstawową konfigurację. Zadziała on "z marszu", bez specjalnej konfiguracji serwera i dodatkowych pakietów.

Aby go zainstalować, pobierz archiwum sandboxa ze strony ([http://www.symfony-project.com/get/sf_sandbox.tgz]http://www.symfony-project.com/get/sf_sandbox.tgz). Rozpakuj je do katalogu głównego Twojego serwera (zazwyczaj web/ lub www/). Aby zachować spójność, rozdział ten zakłada, że archiwum zostało rozpakowane do katalogu sf_sandbox/.

CAUTION Przechowywanie wszystkich plików w katalogu głównym web jest wygodne przy przeprowadzaniu testów na własnym komputerze, lecz jest złą praktyką na serwerach produkcyjnych. Sprawia, że wnętrze Twojej aplikacji staje się widoczne dla użytkowników końcowych.

Przetestuj swoją instalację przez uruchomienie CLI symfony. Przejdź do nowo utworzonego katalogu sf_sandbox/ i wpisz poniższą komendę dla systemu *nix:

> ./symfony -V

W systemie Windows wykonaj polecenie:

> symfony -V

Twoim oczom powinien ukazać się numer wersji sandboxa:

symfony version 1.0.0

Teraz upewnij się, ze Twój serwer web jest w stanie wyświetlić sandbox przez wpisanie URL:

http://localhost/sf_sandbox/web/frontend_dev.php/

Powinieneś zobaczyć stronę z gratulacjami, która wygląda jak na Ryc. 3-1, i oznacza, że instalacja została ukończona. Jeśli nie, to wiadomość o błędzie powinna naprowadzić Cię na koniecznie zmiany w konfiguracji. Możesz również zajrzeć do podrozdziału "Rozwiązywanie błędów", znajdującego się w dalszej części tego rozdziału.

Ryc. 3-1 - Strona sandbox z gratulacjami

Strona sandbox z gratulacjami

Sandbox jest przeznaczony dla Ciebie do ćwiczenia z symfony na lokalnym komputerze, nie do rozwijania rozbudowanych aplikacji, które mogą znaleźć się w sieci. Jednakże, wersja symfony dostarczona wraz z sandboxem jest w pełni funkcjonalna i odpowiada tej, którą możesz zainstalowac przez PEAR.

Aby odinstalować sandbox, po prostu, usuń katalog sf_sandbox/ ze swojego folderu web/.

Instalacja bibliotek symfony

Podczas budowy aplikacji będziesz prawdopodobnie musiał zainstalować symfony dwukrotnie: raz w swoim środowisku deweloperskim i drugi raz na serwerze hosta (o ile jeszcze nie masz go tam zainstalowanego). Na każdym serwerze będziesz prawdopodobnie chciał uniknąć duplikacji, co osiągniesz poprzez przechowywanie wszystkich plików symfony w jednym miejscu, bez względu na to, czy będziesz rozwijał jedną aplikację, czy też kilka różnych.

Podczas gdy framework symfony rozwija się szybko, nowa stabilna wersja może zostać opublikowana kilka dni po Twojej pierwszej instalacji. Musisz poważnie przemyśleć kwestię aktualizacji frameworka, która jest kolejnym powodem do współdzielenia jednej kopii bibliotek symfony we wszystkich swoich projektach.

Kiedy przyjdzie Ci zainstalować biblioteki do prawdziwego rozwoju aplikacji, masz do wyboru dwie alternatywy:

  • Instalacja PEAR jest zalecana dla większości osób. Może być bezproblemowo współdzielona i aktualizowana, a proces instalacji jest bardzo prosty.
  • Instalacja z systemu Subversion(SVN) jest przeznaczona wyłącznie dla zaawansowanych programistów PHP, którzy chcą wykorzystać możliwości nowych łatek, dodać własne możliwości i/lub wspierać projekt symfony.

Symfony posiada jeszcze kilka innych pakietów:

  • pake - narzędzie CLI
  • lime - narzędzie do testów jednostkowych
  • Creole - abstrakcyjny silnik bazodanowy. Zupełnie jak PHP Data Objects (PDO), dostarcza interfejs łączący Twój kod z serwerem SQL i umożliwia wykorzystanie różnych silników baz danych.
  • Propel - do relacyjnego mapowania obiektów (ang. ORM - Object-Relational Mapping). Dostarcza mechanizmu przechowywania obiektów i usługi zapytań.
  • Phing - CLI Propela.

Pake i Lime są rozwijane przez zespół symfony. Creole, Propel i Phing pochodza od innej grupy i są publikowane na licencji GNU Lesser Public General License (LGPL). Wszystkie te pakiety są dostarczane wraz z symfony.

Instalacja pakietu PEAR symfony

Pakiet PEAR symfony zawiera biblioteki symfony i wszystkie od niego zależne. Zawiera również skrypt, który rozszerzy Twój interfejs linii poleceń (ang. CLI - Command Line Interface) o komendę symfony.

Pierwszym krokiem instalacji jest dodanie kanału symfony do PEAR, poprzez wpisanie komendy:

> pear channel-discover pear.symfony-project.com

Aby przeglądnąć biblioteki udostępniane przez ten kanał, wpisz poniższe polecenie:

> pear remote-list -c symfony

Teraz jesteś już gotowy do zainstalowania najnowszej stabilnej wersji symfony. Wpisz tę komendę:

> pear install symfony/symfony

downloading symfony-1.0.0.tgz ...
Starting to download symfony-1.0.0.tgz (1,283,270 bytes)
.................................................................
.................................................................
.............done: 1,283,270 bytes
install ok: channel://pear.symfony-project.com/symfony-1.0.0

I tyle. Pliki symfony i CLI są już zainstalowane. Sprawdź, czy instalacja zakończyła się powodzeniem, poprzez wywołanie nowej komendy symfony z wiersza poleceń, żądając numeru wersji:

> symfony -V

symfony version 1.0.0

TIP Jeżeli wolisz zainstalować najnowszą wersję beta, która posiada wszystkie poprawki i ulepszenia, wpisz przy instalacji pear install symfony/symfony-beta. Wersje beta nie są do końca stabilne i generalnie odradza się ich użycia w środowiskach produkcyjnych.

Biblioteki symfony są teraz zainstalowane pod następującymi ścieżkami:

  • $php_dir/symfony/ zawiera główne biblioteki.
  • $data_dir/symfony/ zawiera szkielet aplikacji symfony, podstawowe moduły, konfigurację, dane i18n itd.
  • $doc_dir/symfony/ zawiera dokumentację.
  • $test_dir/symfony/ zawiera testy jednostkowe.

Zmienne _dir są częścia konfiguracji PEAR. Aby podglądnąć ich wartości, wpisz:

> pear config-show

Pobieranie symfony z repozytorium SVN

Dla serwerów produkcyjnych, lub kiedy PEAR nie jest brany pod uwagę, możesz pobrać najnowszą wersje bibliotek symfony bezpośrednio z repozytorium Subversion poprzez zażądanie checkoutu:

> mkdir /path/to/symfony
> cd /path/to/symfony
> svn checkout http://svn.symfony-project.com/tags/RELEASE_1_0_0/ .

Komenda symfony, dostępna jedynie w instalacji PEAR, jest wywołaniem skryptu /ścieżka/do/symfony/data/bin/symfony. Tak więc, następujące polecenie, przy instalacji SVN, będzie równoważne komendzie symfony -V:

> php /path/to/symfony/data/bin/symfony -V

symfony version 1.0.0

Jeżeli wybrałeś instalację z SVN, to prawdopodobnie posiadasz już istniejący projekt symfony. Dla tego projektu, aby skorzystać z plików symfony, będziesz musiał zmienić dwie zmienne zdefiniowane w pliku konfiguracyjnym config/config.php Twojego projektu, jak poniżej:

[php]
<?php

$sf_symfony_lib_dir  = '/ścieżka/do/symfony/lib/';
$sf_symfony_data_dir = '/ścieżka/do/symfony/data/';

Rozdział 19 opisuje inne sposoby na powiązanie projektu z instalacją symfony (wykorzystując symboliczne powiązania i ścieżki względne).

Konfigurowanie aplikacji

Jak już wiesz z 2. rozdziału, symfony grupuje powiązane ze sobą aplikacje w projekty. Wszystkie aplikacje projektu korzystają z tych samych baz danych. Aby skonfigurować aplikację, musisz wpierw skonfigurować projekt.

Tworzenie projektu

Każdy projekt symfony korzysta ze zdefiniowanej wcześniej struktury katalogów. Polecenie symfony automatyzuje tworzenie nowych projektów przez konstrukcję szkieletu projektu, posiadającą właściwą strukturę drzewa i prawa dostępu. Aby więc stworzyć projekt, po prostu, utwórz nowy katalog i poleć symfony ustanowienie go projektem.

Dla instalacji PEAR wykonaj te komendy:

> mkdir ~/myproject
> cd ~/myproject
> symfony init-project myproject

Dla instalacji SVN utwórz projekt wykorzystując komendy:

> mkdir ~/myproject
> cd ~/myproject
> php /path/to/symfony/data/bin/symfony init-project myproject

Polecenie symfony musi zawsze być wywoływane z katalogu głównego projektu (myproject/ w poprzednich przykładach), ponieważ wszystkie zadania wykonywane przez te komendy które są powiązane z danym projektem.

Symfony utworzy strukturę katalogów, przypominającą:

apps/
batch/
cache/
config/
data/
doc/
lib/
log/
plugins/
test/
web/

TIP Polecenie init-project dodaje skrypt symfony do katalogu głównego projektu. Robi on to samo, co komenda symfony zainstalowana przez PEAR, więc możesz wywołać php symfony zamiast symfony, jeżeli nie posiadasz wbudowanego wsparcia dla linii poleceń (w instalacjach SVN).

Tworzenie aplikacji

Projekt nie jest jeszcze gotowy do przeglądania, ponieważ wymaga co najmniej jednej aplikacji. Aby ją zainicjować, użyj komendy symfony init-app i podaj nazwę aplikacji jako argument:

> symfony init-app myapp

Utworzy ono katalog myapp/, w folderze apps/ katalogu głównego projektu, z podstawową konfiguracją aplikacji i zbiorem katalogów gotowych do udostępniania pliku Twojej strony.

apps/
  myapp/
    config/
    i18n/
    lib/
    modules/
    templates/

Niektóre pliki PHP odwołujące sie do front controllera każdego domyślnego środowiska również zostały utworzone w katalogu web projektu.

web/
  index.php
  myapp_dev.php

index.php jest produkcyjnym front controllerem nowo utworzonej aplikacji. Ponieważ stworzyłeś pierwszą aplikację projektu, symfony stworzył plik index.php zamiast myapp.php (jeżeli dodasz teraz nową aplikacje mynewapp, to nowy kontroler produkcyjny będzie się nazywał mynewapp.php). Aby uruchomić aplikację w środowisku rozwojowym, wywołaj kontroler myapp_dev.php. Więcej o tych środowiskach dowiesz się w rozdziale 5.

Konfiguracja serwera Web

Skrypty w katalogu web/ stanowią punkty wejścia aplikacji. Aby móc się do nich dostać przez internet, należy skonfigurować serwer web. Na twoim serwerze rozwojowym, jak i na profesjonalnym hostingu, prawdopodobnie będziesz posiadał dostęp do konfiguracji Apache, a co za tym idzie, skonfigurować serwer wirtualny. Na współdzielonym serwerze prawdopodobnie masz tylko dostęp do pliku .htaccess.

Konfiguracja serwera wirtualnego

Listing 3-1 jest przykładem konfiguracji Apache, w którym dodano nowy serwer wirtualny do pliku httpd.conf.

Listing 3-1 – Przykład konfiguracji Apache, w apache/conf/httpd.conf

<VirtualHost *:80>
  ServerName myapp.example.com
  DocumentRoot "/home/steve/myproject/web"
  DirectoryIndex index.php
  Alias /sf /$sf_symfony_data_dir/web/sf
  <Directory "/$sf_symfony_data_dir/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
  <Directory "/home/steve/myproject/web">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

W konfiguracji z Listingu 3-1, zmienna $sf_symfony_data_dir musi zostać zastąpiona przez aktualną ścieżkę. Na przykład dla instalacji PEAR w systemie *nix powinieneś wpisać coś na wzór:

Alias /sf /usr/local/lib/php/data/symfony/web/sf

NOTE Alias do katalogu web/sf nie jest wymagany. Pozwala on Apache odnaleźć obrazki, arkusze stylów i pliki JavaScript paska narzędziowego web debug, generatora administracji, domyślnych stron symfony oraz wsparcia dla Ajax. Alternatywą do aliasu może być utworzenie symbolicznego powiązania (ang. symlink - symbolic link) lub skopiowanie katalogu /path/to/symfony/data/web/sf/ do myproject/web/sf/.

Zrestartuj Apache, i tyle. Twoja nowo utworzona aplikacja może zostać teraz wywołana i oglądnięta przez zwykłą przeglądarkę pod adresem URL:

http://localhost/myapp_dev.php/

Powinieneś ujrzeć stronę z gratulacjami, podobną do pokazanej wcześniej na Ryc. 3-1.

SIDEBAR Przepisywanie URL

Symfony korzysta z przepisywania URL (ang. URL rewriting), aby wyświetlić przyjazne URL -- wymowne odnośnDowiesz się więcej o tym mechanizmie, zwanym routingiem, w rozdziale 9.

Jeżeli Twoja wersja Apache nie została skompilowana z modułem mod_rewrite, sprawdź czy posiadasz zainstalowany Dynamic Shared Object (DSO) mod_rewrite oraz następujące linie w pliku httpd.conf.

AddModule mod_rewrite.c LoadModule rewrite_module modules/mod_rewrite.so

Dla Internet Information Services (IIS) będziesz potrzebował zainstalowanego i działającego isapi/rewrite. Sprawdź dokumentację online symfony, aby znaleźć szczegółowy opis instalacji IIS.

Konfiguracja współdzielonego serwera

Konfiguracja aplikacji na serwerze współdzielonym jest nieco bardziej podchwytliwa, gdyż serwer posiada określoną strukturę katalogów, której nie będziesz mógł zmienić.

CAUTION Przeprowadzanie testów i rozwijanie aplikacji bezpośrednio na serwerze współdzielonym nie jest dobrym pomysłem. Jednym z powodów jest fakt, że aplikacja jest widoczna, nawet jeśli nie została jeszcze ukończona, ukazując jej wnętrze i otwierając spore luki w zabezpieczeniach. Kolejnym jest wydajność hostów, która nie jest zadowalająca, aby sprawnie przeglądać aplikację z włączonymi narzędziami do debugowania. Nie powinieneś więc zaczynać rozwoju aplikacji instalacją na serwerze współdzielonym, lecz raczej zbudować ją lokalnie i wdrożyć na hoście, kiedy ta jest już ukończona. Rozdział 16 opowiada o technikach wdrożenia i narzędziach do tego stworzonych.

Wyobraźmy sobie, że Twój host wymaga, aby katalog web był nazwany www/ zamiast web/, i nie posiadasz dostępu do pliku httpd.conf, lecz tylko do .htaccess w katalogu web.

W projektach symfony każda ścieżka jest możliwa do skonfigurowania. Rozdział 19 zawiera dokładniejsze informacje, lecz w tej chwili możesz zmienić nazwę katalogu web na www i sprawić, że aplikacja weźmie pod uwagę te zmiany, poprzez zmianę konfiguracji, co pokazano na Listingu 3-2. Linie te muszą zostać dodane na końcu pliku config.php aplikacji.

Listing 3-2 - Zmiana domyślnych ustawień struktury folderów, w apps/myapp/config/config.php

[php]
$sf_root_dir = sfConfig::get('sf_root_dir');
sfConfig::add(array(
  'sf_web_dir_name' => $sf_web_dir_name = 'www',
  'sf_web_dir'      => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name,
  'sf_upload_dir'   => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name.DIRECTORY_SEPARATOR.sfConfig::get('sf_upload_dir_name'),
));

Główny katalog web projektu zawiera domyślnie plik .htaccess. Pokazano to na Listingu 3-3. Zmień go tak, aby pasował do wymagań Twojego serwera.

Listing 3-3 - Domyślna konfiguracja .htaccess, teraz w myproject/www/.htaccess

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>
  RewriteEngine On

  # pomijamy wszystkie pliki z .coś
  RewriteCond %{REQUEST_URI} \..+$
  RewriteCond %{REQUEST_URI} !\.html$
  RewriteRule .* - [L]

  # sprawdzamy, czy wersja .html istnieje (cache)
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f

  # nie istnieje, więc przekierowujemy do naszego front controllera web
  RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

# poważny błąd naszego front controllera web
ErrorDocument 500 "<h2>Application error</h2>symfony application failed to start properly"

Teraz powinieneś być w stanie przeglądać Twoją aplikację. Sprawdź konfigurację poprzez wysłanie żądania pod URL:

http://www.example.com/myapp_dev.php/

SIDEBAR Inne konfiguracje serwera

Symfony jest kompatybilne z innymi konfiguracjami serwerów. Na przykład możesz uzyskać dostęp do aplikacji symfony poprzez alias, a nie wirtualnego hosta. Możesz również uruchomić aplikację symfony na serwerze IIS. Istnieje tyle technik ile konfiguracji, i nie jest to celem tej książki, aby opisać wszystkie z nich.

Aby znaleźć wskazówki na temat specyficznych konfiguracji, odwiedź wiki symfony http://www.symfony-project.com/trac/wiki, które zawiera wiele kursów krok-po-kroku.

Rozwiązywanie problemów

Jeżeli napotkasz na problemy podczas instalacji, spróbuj jak najlepiej wykorzystać błędy i wyjątki wypisane w konsoli lub przeglądarce. Często mówią one same za siebie i mogą nawet zawierać odnośniki do zasobów Web związanych z Twoim problemem.

Typowe problemy

Jeżeli wciąż masz problemy z uruchomienie symfony, sprawdź poniższe wskazówki:

  • Pewne instalacje PHP są dostarczane razem z poleceniem PHP 4 i PHP 5. W tym przypadku polecenie linii komend to prawdopodobnie php5, a nie php, więc spróbuj wywołać php5 symfony zamiast symfony. Będziesz również musiał prawdopodobnie dodać SetEnv PHP_VER 5 do Twojego pliku konfiguracji .htaccess albo zmienić nazwy plików z folderu web/ z .php na .php5. Błąd zwracany przez polecenie linii komend PHP 4, próbujące uzyskać dostęp do symfony, to: Parse error, unexpected ',', expecting '(' in .../symfony.php on line 19.
  • Limit pamięci, zdefiniowany w php.ini, musi zostać ustawiony na przynajmniej 16M. Typowym objawem tego problemu jest pojawienie się wiadomości błędu, gdy instalujesz symfony przez PEAR lub linię poleceń. Allowed memory size of 8388608 bytes exhausted
  • Ustawienie zend.ze1_compatibility_mode musi być ustawione na off w Twoim pliku php.ini. Jeżeli nie jest, próba przeglądnięcia jednego ze skryptów Web wypisze błąd "niejawnego klonowania" (ang. implicit cloning): Strict Standards: Implicit cloning object of class 'sfTimer'because of 'zend.ze1_compatibility_mode'
  • Serwer musi posiadać prawo zapisu do katalogów log/ oraz cache/ Twojego projektu. Próby przeglądania aplikacji symfony bez tych uprawnień folderów zaskutkują wyjątkiem: sfCacheException [message] Unable to write cache file"/usr/myproject/cache/frontend/prod/config/config_config_handlers.yml.php"
  • Ścieżka dołączania (ang. include path) Twojego systemu musi zawierać ścieżkę do polecenia php, a ścieżka dostępu php.ini musi zawierać ścieżkę do PEAR (jeżeli używasz).
  • Czasami istnieje więcej niż jeden plik php.ini w systemie plików serwera (na przykład, gdy używasz pakietu WAMP). Wywołaj phpinfo(), aby poznać dokładną ścieżkę do pliku php.ini używanego przez Twoją aplikację.

NOTE Chociaż nie jest to wymagane, stanowczo zaleca się ze względów wydajnościowych, aby ustawić magic_quotes_gpc i register_globals na off w Twoim pliku php.ini.

Zasoby związane z symfony

Możesz sprawdzić, czy ktoś inny spotkał się wcześniej z Twim problemem, i znaleźć jego rozwiązanie w różnych miejscach: * Forum instalacji symfony (http://www.symfony-project.com/forum/) jest pełne pytań dotyczących instalacji w danym środowisku, otoczeniu, konfiguracji, hoscie, itd. * Archiwa listy mailingowej użytkowników (http://groups.google.fr/group/symfony-users) również mogą być przeszukiwane. Możesz tam znaleźć podobne doświadczenia do Twoich. * Wiki symfony (http://www.symfony-project.com/trac/wiki#Installingsymfony) zawiera kursy instalacji krok-po-kroku, napisane przez użytkowników symfony.

Jeżeli nie znajdziesz żadnej odpowiedzi, spróbuj przekazać swoje pytanie społeczności symfony. Możesz wysłać swoje zapytanie na forum, listę mailingową, a nawet wejść na kanał IRC #symfony, aby uzyskać wsparcie ze strony najaktywniejszych członków społeczności.

Wersjonowanie źródeł

Po ukończeniu konfiguracji aplikacji rekomendowane jest rozpoczęcie procesu wersjonowania źródeł (lub kontroli wersji). Wersjonowanie kodu pozwala na śledzenie wszelkich zmian w źródłach, daje dostęp do poprzednich wersji, ułatwia łatanie i usprawnia pracę w zespole. Symfony posiada wbudowaną obsługę CVS, lecz zaleca się używanie Subversion (http://subversion.tigris.org/). Następujące przykłady prezentują polecenia Subversion, zakładając, że masz zainstalowany u siebie serwer Subversion i chcesz utworzyć nowe repozytorium dla Twojego projektu. Rekomendowanym klientem SVN dla użytkowników Windows jest TortoiseSVN (http://tortoisesvn.tigris.org/). Aby znaleźć resztę informacji o wersjonowaniu źródeł i komendach używanych tutaj, przeglądnij dokumentację Subversion.

Poniższy przykład zakłada, że zmienna $SVNREP_DIR jest zdefiniowana jako środowiskowa. Jeżeli jej nie zdefiniowałeś, będziesz musiał wstawić ścieżkę do repozytorium za $SVNREP_DIR.

Stwórzmy więc nowe repozytorium dla projekty myproject:

> svnadmin create $SVNREP_DIR/myproject

Następnie tworzona jest struktura repozytorium z katalogami trunk, tags, i branches, używając tej dosyć długiej komendy:

> svn mkdir -m "layout creation" file:///$SVNREP_DIR/myproject/trunk file:///$SVNREP_DIR/myproject/tags file:///$SVNREP_DIR/myproject/branches

Będzie to Twoja pierwsza wersja. Teraz musisz zaimportować pliki projektu, wyłączając cache i tymczasowe pliki logów:

> cd ~/myproject
> rm -rf cache/*
> rm -rf log/*
> svn import -m "initial import" . file:///$SVNREP_DIR/myproject/trunk

Sprawdź zapisane pliki poprzez wpisanie następującego polecenia:

> svn ls file:///$SVNREP_DIR/myproject/trunk/

Wygląda dobrze. Teraz repozytorium SVN ma wersję referencyjną (i historię) wszystkich plików Twojego projektu. Znaczy to, że pliki katalogu ~/myproject/ muszą odnosić się do repozytorium. Aby tego dokonać, najpierw zmień nazwę katalogu myproject/ -- skasujesz go, gdy wszystko będzie dobrze działać -- i dokonaj checkoutu repozytorium do nowego katalogu:

> cd ~
> mv myproject myproject.origin
> svn co file:///$SVNREP_DIR/myproject/trunk myproject
> ls myproject

O to chodziło. Teraz możesz pracować na plikach znajdujących się w folderze ~/myproject/ i zatwierdzać swoje modyfikacje w repozytorium. Nie zapomnij o zrobieniu porządków i wykasowaniu katalogu myproject.origin/, który jest już niepotrzebny.

Istnieje jeszcze jedna rzecz do skonfigurowania. Jeżeli wysyłasz swój katalog roboczny do repozytorium, możesz skopiować pewne niechciane pliki, jak te znajdujące się w katalogach cache i log Twojego projektu. Musisz więc ustalić listę ignorowania w SVN dla tego projektu. Musisz również ustawić ponownie pełne prawa dostępu dla katalogów cache/ i log/:

> cd ~/myproject
> chmod 777 cache
> chmod 777 log
> svn propedit svn:ignore log
> svn propedit svn:ignore cache

Powinien uruchomić się domyślny edytor ustawiony dla SVN. Jeżeli tak się nie stanie, zmuś Subversion do używania Twojego ulubionego edytora przez:

> export SVN_EDITOR=<name of editor>
> svn propedit svn:ignore log
> svn propedit svn:ignore cache

Teraz dodaj wszystkie pliki z podkatalogów myproject/, które SVN powinien ignorować przy zatwierdzaniu:

*

Zapisz i wyjdź. Skończyłeś.

Podsumowanie