Archiwum kategorii: Usługi

SVN: Tworzenie backupów i odtwarzanie repozytoriów

Tworzenie backupów repozytoriów SVN

Backup tworzymy korzystając z polecenia svnadmin dump:

svnadmin dump path_to_repo > backup_file 

Prawdzimy przykład:

svnadmin dump /data/svn/repos/unix_admin/ | gzip -9 > ./unix_admin_20141010_2039.dump.gz

Przydatną opcją jest -q (quite) powodująca wyświetlanie tylko komunikatów błędów.

Odtwarzanie repozytoriów SVN

Jak już mamy zainstalowany pakiet subversion i skonfigurowany główny katalog repozytoriów, poszczególne
projekty możemy odtworzyć korzystając z polecenia:

svnadmin load path_or_repo < backup_file

Prawdziwy przykład:

svnadmin load /data/svn/repos/unix_admin/ < unix_admin_20141010_2039.dump

svn+ssh na niestandardowym porcie?

Jeżeli mamy serwer ssh na niestandardowym porcie i chcemy podłączyć się po ssh do repozytorium Subversion spostrzeżemy, że nie ma możliwości podania w opcjach komendy svn portu na który ma się połączyć. Rozwiązaniem tego problemu jest stworzenie „osobnego protokołu/tunnelu” w pliku konfiguracyjnym Subversion.
Czytaj dalej svn+ssh na niestandardowym porcie?

PHP: curl oraz logowanie przez login i hasło

W moim projekcie musiałem uzyć curl oraz logowanie przez login i hasło (w przeciwnym wypadku wystarczyło by użycie fopen). Wobec tego użyłem kodu podobnego do tego poniżej:

  protected function UseCurl($url) {

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_USERPWD, "$this->username:$this->password");
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        $output = curl_exec($ch);
        $info = curl_getinfo($ch);
        curl_close($ch);

        return $output;

  }

Proszę zwrócić uwagę na część z CURLOPT_USERPWD…

PHP i autoload klass

W nowszych wersjach PHP występuje nowa funkcja odpowiedzialna za ładowanie klass spl_autoload_register(’function_name’) w przeciwienstwie do poczciwego __autoload(). Wobec tego aby móc znowu automatycznie ładować klasy należy stworzyć kod podobny do poniższego:

function my_autoload($class_name) {

        include "lib/class/$class_name".'.class.php';
}

spl_autoload_register('my_autoload');

SVN i duże repozytorium oraz sciąganie tylko kawałka drzewa

Jeżeli chcesz pracować tylko na jakimś fragmencie drzewa zainteresuj się poniższą komendą:

svn checkout file:///var/svn/repos mom-empty --depth empty

Zwróć uwagę na –depth empty. Pozwala ona sciągnąć dane tylko konkretnego katalogu bez rekursji. Mnie to umożliwiło dodanie do drzewa projektów w svn tylko jednego nowego katalogu bez ściągania całej zawartości drzewa przy checkout…

Mod_rewrite i kod 301 – przenoszenie witryny

Kiedyś zajmowałem się tylko Linuksem (i jestem cały czas właścicielem domeny linuxexpert.pl), teraz zajmuje się AIX-em (i prowadziłem blog na unix4you.net) czyli zostaje w świecie Uniksa ale nie koniecznie Linuksa. Postanowiłem 2 serwisy połączyć w jeden, tylko jak o tym poinformować google i innych odwiedzających? Cóż, należy użyć przekierowania i zwrócić kod 301 (http://en.wikipedia.org/wiki/HTTP_301):

RewriteRule ^(.*)$ http://www.unix4you.net [R=301,L]

I od tej chwili, wszyscy trafiają tylko na nową stronę 😉

Mod_rewrite – ignorowanie reguł dla jednego pliku

Mod_rewrite to ciekawy moduł pozwalający podmieniać linki w naszym serwisie. Np. na starym linuxexpert.pl, serwisie napisanym w PHP, linki postacji cos.html były zamienianie na index.php?site=cos. Niestety, gdy chciałem przejść weryfikacje google, okazało się, że także nazwa pliku weryfikującego też była przepisywana! Jak więc zignorować reguły dla pojedyńczego pliku?

RewriteRule ^google12b726ea1cbc2a03.html$  - [L]

I od tej pory ten plik jest pokazywany bez żadnych problemów. Ten „-” informuje, że nie ma żadnych parametrów.