strony www, sklepy internetowe, oprogramowanie

Archiwum kategorii ‘Administracja’

Połączenie poprzez konsolę do serwera MongoDB

Czwartek, listopad 24th, 2011

W trakcie programowania systemów wykorzystujących bazę MongoDB, warto wspierać się poprzez testowanie zapisu i odczytu informacji poprzez konsolę.

Aby połączyć się do serwera tej bazy danych wykonujemy polecenie: /usr/bin/mongo 127.0.0.1:27017/nazwa_bazy_danych

które połączy nas do wskazanej bazy danych, a tam np możemy już wyszukiwać elementy poprze polecenie : db.collection_name.find();

Możemy również zapoznać się z całym szeregiem innych metod do wywołania poprzez polecenie help() np: db.help()

nginx i http_push_module = problem przy metodzie make

Sobota, wrzesień 3rd, 2011

Jeżeli próbujesz wykonać make nginx’a wraz z http_push_module w celu wykorzystania do Comet i trafiłeś na problem typu:

../nginx_http_push_module/src/ngx_http_push_module.c: In function ‘ngx_http_push_clean_timeouted_subscriber’:
../nginx_http_push_module/src/ngx_http_push_module.c:22: error: unused variable ‘chain’
../nginx_http_push_module/src/ngx_http_push_module.c: In function ‘ngx_http_push_handle_subscriber_concurrency’:
../nginx_http_push_module/src/ngx_http_push_module.c:554: error: unused variable ‘rc’
../nginx_http_push_module/src/ngx_http_push_module.c: In function ‘ngx_http_push_clean_timeouted_subscriber’:
../nginx_http_push_module/src/ngx_http_push_module.c:22: error: unused variable ‘chain’
../nginx_http_push_module/src/ngx_http_push_module.c: In function ‘ngx_http_push_handle_subscriber_concurrency’:
../nginx_http_push_module/src/ngx_http_push_module.c:554: error: unused variable ‘rc’
Rozwiązaniem jest zakomentowanie linii 22 i 554 we wskazanym pliku ngx_http_push_module.c poprzez dodanie na ich początku znaku // .
Rozwiązanie choć niejasne – jest skuteczne.

FreeBSD – problem z systemem plików systemu przy logowaniu

Czwartek, sierpień 18th, 2011

Dzisiaj po problemach z prądem przywitała nas niemiła niespodzianka. Serwer jednego z naszych klientów nie podniósł się – jak się okazało wystąpił jakiś problem z ciągłością danych na dyskach i system nie był w stanie się uruchomić.

W takiej sytuacji rozpoczęliśmy oczywiście od poszukiwania rozwiązania w google i znaleźliśmy.

Tak więc jeżeli i Ciebie powita komunikat podobny do:

Starting file system checks :
...
Automatic file system check failed; help!
Oct. 30 20:14:53 init: /bin/sh on /etc/rc terminated abnormally, going to
single user mode

Uruchom po prostu polecenie: fsck -y

Zaczekaj aż fsck naprawi ewentualne błędy a następnie wykonaj reboot.

mssql i freetds w ubuntu lub debian

Środa, czerwiec 22nd, 2011

Jeżeli w swojej pracy bądź pasji tworząc nową aplikację trafiliście na konieczność współdziałania php z bazą mssql i do tego na serwerze opartym o debian/ubuntu na pewno trafiliście na problem braku sterownika do połączenia.

Aby móc połączyć naszą aplikację php z serwerem mssql konieczne będzie zainstalowanie i skonfigurowanie freetds.
Można zrobić to w kilku szybkich krokach – oto one:

  1. Instalujemy freetds z pakietów deb
    sudo apt-get install freetds-dev
  2. Instalujemy bibliotekę mssql w php (o ile nie została zainstalowana wcześniej)
    sudo apt-get install php5-mssql
  3. Znajdujemy plik konfiguracyjny freetds i edytujemy go
    sudo find / -name freetds

    Z listy wyszukanych plików wybieramy odpowiedni, w naszym przypadku jest to plik:
    sudo mcedit /etc/freetds/freetds.conf

    na końcu pliku dodajemy sekcję:
    [nasz_host]
    host=nasz_host
    port=1433
    tds version=8.0

  4. Edytujemy plik hosts
    sudo mcedit /etc/hosts

    i dodajemy w nim nasz host np.
    127.0.0.1 nasz_host

  5. Restartujemy apache
    sudo etc/init.d/apache2 restart

Od teraz możemy korzystać już z naszego host’a do połączeń z serwerem mssql .

Automatyczny backup plików i bazy danych

Niedziela, kwiecień 17th, 2011

Jeżeli ktoś z Was dysponuje dedykowanym serwerem i chciałby cyklicznie wykonywać backup plików i bazy danych bądź chciałby zabezpieczać dane ze swojego komputera – rozwiązaniem może być skrypt uruchamiany poprzez Cron’a. Rozwiązanie to jest skuteczne w przypadku systemów Linux. Nasz przykład będzie opierał się o system FreeBSD.

W pierwszej kolejności opiszmy schemat działania. W kolejnych krokach wygląda to w sposób następujący:

  1. utworzenie katalogu tymczasowego w którego nazwie będzie dzisiejsza data
  2. utworzenie wewnątrz katalogu tymczasowego katalogu na pliki i oddzielnego na dump bazy danych
  3. utworzenie backupu bazy danych i zapisanie w naszej lokalizacji
  4. utworzenie backupu plików w naszej lokalizacji
  5. usunięcie ewentualnych plików SVN
  6. spakowanie wszystkiego do formatu tar.gz
  7. wysłanie informacji o utworzeniu kopii na naszego maila
  8. czyszczenie plików tymczasowych
  9. zakończenie skryptu

Na podstawie tego schematu możemy utworzyć niezbędny kod.

#!/bin/sh
# utworzenie zmiennej wykorzystanej do budowania ścieżki
BACKUP_DIR=backup_"`/bin/data +%d_%m_%Y`"
# utworzenie katalogu tymczasowego z datą
/bin/mkdir /usr/home/uzytkownik/$BACKUP_DIR
# utworzenie katalogu na pliki wewnątrz katalogu tymczasowego
/bin/mkdir /usr/home/uzytkownik/$BACKUP_DIR/www
# utworzenie backupu bazy danych
/usr/local/bin/mysqldump -u user -phaslo nazwa_bazy > /usr/home/uzytkownik/$BACKUP_DIR/dump.sql
# backup plików
/bin/cp -rf /sciezka/katalog_z_plikami/* /usr/home/uzytkownik/$BACKUP_DIR/www/
# usuniecie plików SVN jeżeli takie istnieją
/bin/rm -rf `/usr/bin/find /usr/home/uzytkownik/$BACKUP_DIR/www/ -type d -name .svn`
# spakowanie wszystkiego do pliku tar.gz
/usr/bin/tar -zcvf /usr/home/uzytkownik/$BACKUP_DIR.tar.gz /usr/home/uzytkownik/$BACKUP_DIR/*
# utworzenie tresci maila o stworzeniu backupu
/usr/bin/touch /usr/home/uzytkownik/$BACKUP_DIR/mail.txt && /bin/echo "NASZA TREŚĆ WIADOMOŚCI">/usr/home/uzytkownik/$BACKUP_DIR/mail.txt
# wysyłka wiadomości

/usr/bin/mail -s "tytul wiadomosci" "adresat@domena.pl" # usuniecie katalogu tymczasowego
/bin/rm -rf /usr/home/uzytkownik/$BACKUP_DIR
# zakończenie skryptu
exit

Skrypt tez zapisujemy pod dowolną nazwą a następnie przyznajemy mu prawa wykonywania 0777 i możemy już uruchamiać.
Należy zwrócić uwagę na ścieżki poleceń i plików – muszą one być ścieżkami bezwzględnymi. Mogą one również różnić się od tu podanych, które obowiązują w FreeBSD.

Jeżeli chcemy, możemy również plik ten uruchamiać poprzez crona np komendą:
1 1 * * * root cd /usr/home/uzytkownik && ./nasz_plik.sh

/var/lib/dpkg/lock – open (11: Zasoby chwilowo niedostępne)

Czwartek, marzec 17th, 2011
E: Nie udało się uzyskać blokady /var/lib/dpkg/lock – open (11: Zasoby chwilowo niedostępne)
E: Nie udało się zablokować katalogu administracyjnego (/var/lib/dpkg/), czy inny proces go używa?

Zdarzyło się Wam kiedyś, że podczas instalacji pakietów w debianie nagle proces został przerwany, ale lock został i nie możecie powtórzyć instalacji ani rozpocząć nowej? Jeżeli tak, to przypuszczalnie zobaczycie komunikat podobny do tego poniżej:

E: Nie udało się uzyskać blokady /var/lib/dpkg/lock – open (11: Zasoby chwilowo niedostępne)

E: Nie udało się zablokować katalogu administracyjnego (/var/lib/dpkg/), czy inny proces go używa?

Co zrobić w takiej sytuacji? To proste:

  1. Kasujemy plik lock: sudo rm -f  /var/lib/dpkg/lock
  2. Naprawiamy problem związany z przerwaniem instalacji: sudo dpkg –configure -a
  3. Możemy przejść do ponownej instalacji pakietów

Bardzo szybki, prosty i skuteczny sposób.


Podgląd svn update – dry run

Wtorek, grudzień 28th, 2010

Czasami zanim opublikujemy zmiany na serwerze, chcielibyśmy sprawdzić co zostanie zaktualizowane, a przede wszystkim czy nie będzie konfliktów.

Póki co nie ma w SVN polecenia na wzór:

svn update –dry-run

Ale z pomocą przychodzi polecenie svn merge, które ma opcje –dry-run

svn merge –dry-run -r BASE:HEAD .

I tak porównujemy “working copy” z najnowszą wersją w repozytorium.

Przekonfigurowanie pakietów

Wtorek, listopad 2nd, 2010

Czasami zdarza się, że podczas instalacji nowych pakietów .deb komputer odmówi nam posłuszeństwa lub nawet sami przypadkiem go zamkniemy, a po ponownym uruchomieniu nie jesteśmy w stanie zakończyć instalacji, ani przeinstalować pakietu poprzez apt-get .

Co wtedy zrobić? Należy skorzystać z polecenia:

defoma-reconfigure -f

które przekonfiguruje, w razie potrzeby przeinstaluje nasze pakiety tak, aby znowu wszystko było w porządku.

Opis ten dotyczy komputerów z zainstalowanymi Ubuntu/Debian

Usuwanie katalogów SVN – Ubuntu

Środa, lipiec 14th, 2010
Czasami zdarza nam się chcieć skopiować jakieś rozwiązanie znajdujące się już w innym projekcie.
Ponieważ wszystkie projekty są przechowywane w SVN, kopiując moduł kopiujemy i pliki SVN.
Aby takie dane zostały prawidłowo rozpoznane w nowym repozytorium musimy najpierw wyczyścić stare pliki SVN.
Aby to zrobić wchodzimy w linii komend do interesującej nas lokalizacji a następnie wywołujemy komendę:

rm -rf `find . -type d -name .svn`

Której zadaniem jest rekurencyjne przeszukanie katalogów i usunięcie tych które nazywają się ".svn" .

apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

Niedziela, lipiec 11th, 2010

Kolejny krótki wpis traktujący o konfiguracji Apache.

Jeżeli podczas restartu serwera Apache pojawia się komunikat:

apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

oznacza to, że musimy skonfigurować nasz ServerName. Aby to zrobić przechodzimy musimy dowiedzieć się jaki jest nasz hostname ( wywołujemy komendę hostname) a następnie przechodzimy do pliku httpd.conf (w ubuntu /etc/apache2/httpd.conf) i dodajemy/edytujemy w nim wpis ServerName tak aby był postaci “ServerName hostname” w naszym przypadku:

ServerName leadersmind