Zmiana katalogu baz danych MySQL

Na dzierżawionych serwerach często nie mamy wpływu na podział dysku na partycje i w przypadku gdy mamy nie nazbyt szczęśliwe wielkości partycji, nasza baza MySQL, szczególnie kiedy się rozrośnie, może zapchać nam dysk. Przeprowadzenie zmiany katalogu jest… proste, na szczęście :)

Zaczynamy od wyłączenie serwera.

  1. /etc/init.d/mysql stop

Następną czynnością będzie przekopiowanie baz z aktualnego katalog do nowego (domyślnie w ubuntu bazy danych są w /var/lib/mysql)

  1. cp -R -p -v /var/lib/mysql /nowy/katalog/mysql

I teraz mamy dwie możliwe drogi, zmiana katalogu w pliku konfiguracyjnym mysql, bądź podmontować nową lokalizację do starej. Więc opcja 1, edytujemy plik konfiguracyjny:

  1. nano /etc/mysql/my.cnf
  2.      - datadir   = /var/lib/mysql
  3.      + datadir   = /nowy/katalog/mysql

No i uruchamiamy MySQL

  1. /etc/init.d/mysql start

Drugą możliwością jest podmontowanie nowego katalogu, do starego.

  1. nano /etc/fstab
  2.      + /nowy/katalog/mysql /var/lib/mysql bind 0 0
  3. mount -a

No i uruchamiamy MySQL

  1. /etc/init.d/mysql start

Jak wszystko gra, MySQL uruchomi się nam bez błędów :)

MySQL – pamiętaj o aktualizacji

Robiąc porządki na pulpicie, znalazłem ten wykresik z munina. Spójrzcie na niego. Widać prawie 10 krotny spadek zasobożerności MySQL! Jedyną poczynioną przeze mnie rzeczą, było proste wykonanie aktualizacji systemu: apt-get update && apt-get upgrade. Jak widać, trochę popracowali nad wydajność :) .


Luka w nginx+fastcgi pozwalające na zdalne wykonanie dowolnego kodu

Oryginalny post: klik
po „ingliszu”: klik

a po naszemu, jest możliwość wykonania dowolnego kodu php.

możliwy model ataku:
1) prowadzimy hosting obrazków/plików, jest możliwość uploadu plików ogólnie;
2) ktoś wgrywa plik, plik to obrazek.jpg (nazwa czy rozszerzenie nie istotne) z kodem php;
3) dowolne wywołanie bezpośrednie pliku http://domain.tld/pliki/obrazek.jpg/cosdowlnego.php spowoduje wykonanie spreparowanego pliku;

przykład podatnej konfiguracji:

  1. location  ~ \.php$ {
  2.  root html;
  3.  fastcgi_pass 127.0.0.1:9000;
  4.  fastcgi_index index.php;
  5.  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  6.  include fastcgi_params;
  7.  }

która jest.. wszędzie, w każdym how to itp.

Możliwe formy zabezpieczenia się? Polecam lekturę: http://forum.nginx.org/read.php?2,88845. Można np dodać:

  1. location ~ \..*/.*\.php$ {
  2.  return 403;
  3.  }

Nginx – kompilacja ze źrodeł

Nadrobię trochę zaległości w pisaniu na blogu :) .

Chciałbym dziś przedstawić sytuację, gdzie samodzielnie skompilujemy sobie nginx-a. Ten fakt będzie miał wiele zalet. Po pierwsze – spokojnie można używać linii deweloperskiej. Używam już jej od ponad rok i nie było żadnych problemów. Po drugie – uzyskujemy możliwość dokompilowania dodatkowych modułów, które mogą nam ułatwić życie :) . Rozważymy dwie sytuacje.

  1. Kompilacja na systemie bez nginx-a
  2. Kompilacja na systemie w którym jest już obecny nginx

Opis poczęty na Debian/Ubuntu. Więc zaczynamy :)

Czytaj dalej

Nginx – jak zacząć

Ze swej praktyki mogę polecić każdemu, kto ma własnego VPSa bądź dedyka porzucenie Apacha na rzecz Nginxa bądź też użycie Nginxa jako revers proxy dla Apacha. Kilkukrotnie pozwala to podnieść wydajność naszej maszyny. Chciałem trochę popisać, jak się z nim obchodzić, ale ponieważ niektórzy już mnie ubiegli, nie będę odkrywał ameryki na nowo, tylko podam linki do miejsc, gdzie opisane jak zacząć przygodę z tym serwerem www :)

[1] Postawy konfiguracji nginxa

[2] Średnio zaawansowana konfiguracja nginxa

[3] Zaawansowana konfiguracja nginxa

[1-3] Blog – http://notatnik.mekk.waw.pl polecam poczytać!

[4] Opis instalacji i konfiguracji

Błąd MySQL podczas kompilacji PHP

Mówię tutaj o takowym błędzie:

  1. configure: error: Cannot find MySQL header files under yes.
  2. Note that the MySQL client library is not bundled anymore!

Rozwiązanie?

  1. apt-get install libmysqlclient-dev

Brak odpowiednich pakietów podczas kompilacji.

Tym razem poruszę kwestie kompilacji, a mianowicie sytuacji, kiedy podczas kompilacji pojawia nam się błąd, że akurat czegoś nie mamy. Np podczas kompilacji php możemy zobaczyć coś takiego:

libpng.(a|so) not found.

i zamiast wstukiwać bład w google, wpiszmy to w konsoli:

root@tessa:~# apt-cache search libpng
fp-units-gfx - Free Pascal -- graphics libraries units
libpng-sixlegs-java - Java package to read and display PNG images
libpngwriter0-dev - easy to use graphics library (development)
libpngwriter0c2 - easy to use graphics library (runtime)
pngcheck - PNG file format checker
pngquant - PNG (Portable Network Graphics) image optimising utility
libpng12-0 - PNG library - runtime
libpng12-dev - PNG library - development
libpng3 - PNG library - runtime

Dzięki temu wyszukaliśmy pakiety, które mają w nazwie libpng. Z listy wybieramy interesujący nas pakiet, konkretnie to biblioteke do obsługi PNG -> libpng12-dev (a|so to kwestia brakujących bibliotek). Instalujemy ją i ponawiamy kompilację :)

Calc – nowa linia w komórce

Aby dodać nową linię w komórce Calca nalezy:

I tyle :)

OO.org – dział czas zacząć :)

Pracując w biurze/studiując trafia w moje ręce wiele różnorakich dokumentów i plików. Niestety, w 90% mogę powiedzieć, że ten kto to pisał nie miał zielonego pojęcia o dobrym formatowaniu tekstu! W sumie to nikt z moich znajomych nie ma opanowanej tej „sztuki” i nie zdają sobie sprawy nawet jak bardzo ona jest przydatna.

Ponieważ używam OpenOffice.org oraz piszę pracę magisterską, to pomyślałem, że zaczne wpisy związane z poprawnym  formatowanie dokumentów oraz związanych z samą obsługa OO.org. Np jak robić bibliografię, spisy tabel, rysunków etc. Może komuś ta wiedza się przyda. :)