Skip to content

vm_installation_and_usage_old_version

kojoty edited this page Apr 24, 2018 · 1 revision

Ten dokument jest przestarzały i dotyczy środowiska opartego o obraz w wersji 7. Nowszy dokument jest tutaj

Jak uruchomić serwer OC na własnym komputerze

Instalacja

Ten dokument jest przeznaczony dla programistów. Zakładamy, że znasz *podstawy Linuksa, Apache i PHP.

Krok 1.

Przygotuj wymagane rzeczy:

  • Ściągnij i zainstaluj VMware Player (lub inny podobny program, np. VirtualBox),
  • Pobierz najnowszą wersję przygotowanego przez nas obrazu serwera:
  • Jeśli nie chcesz naszej wirtualnej maszyny i wolisz postawić serwer OC na własnej maszynie, to ten dokument może być przydatny.
  • Jeśli masz problem z rozpakowaniem formatu 7z, pobierz program [7-Zip] (http://www.7-zip.org/).
  • Jeśli korzystasz z VirtualBoxa (zamiast VMware), przed uruchmieniem ustaw w System/Processor "Enable PAE/NX", jeśli masz problem z siecią, to możesz też spróbować w Network zmienić tryb NAT na Bridged.

Krok 2.

Otwórz pobraną maszynę w VMware Playerze. Zaloguj się jako user, hasło ubuntu. W tym momencie prawdopodobnie będzie konieczne skonfigurowanie interfejsów sieciowych w twojej maszynie wirtualnej - jeśli nie masz doświadczenia z linkusem możesz spróbować poszukać tutoriala w internecie (można zacząć np. od: https://help.ubuntu.com/lts/serverguide/network-configuration.html).

Jeśli twoja maszyna wirtualna potrafi już pingować host w internecie znaczy, że "jest dobrze" - możesz to sprawdzić np. komendą ping wp.pl - wynik powinien być podobny do tego:

user@ocpl-devel:~$ ping wp.pl
PING wp.pl (212.77.98.9) 56(84) bytes of data.
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=1 ttl=59 time=6.44 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=2 ttl=59 time=6.84 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=3 ttl=59 time=7.07 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=4 ttl=59 time=8.72 ms
64 bytes from www.wp.pl (212.77.98.9): icmp_seq=5 ttl=59 time=7.13 ms
--- wp.pl ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 6.445/7.245/8.728/0.783 ms

Odpal komendę ifconfig i zwróć uwagę na adres przy inet addr. U każdego pojawia się inny adres (najczęściej ma formę 192.168.x.x). Musisz ten adres dodać do pliku hosts na Twoim komputerze hoście następująco:

192.168.x.x local.opencaching.pl
192.168.x.x local.m.opencaching.pl

Krok 3.

Otwórz w swojej przeglądarce (na komputerze hoście) stronę http://local.opencaching.pl/. Powinieneś zobaczyć "jako tako działający" serwer OC.

Krok 4.

Wersja OC, którą widzisz, może być stara - mniej więcej tak stara jak wirtualna maszyna, którą pobrałeś. Żeby ją zaktualizować do najnowszej wersji:

  • Wejdź z konsoli do katalogu /srv/ocpl.
  • Zaktualizuj kod źródłowy: uruchom komendę git pull. Jeśli pojawi się błąd dot. uprawnień ("permission denied"), zrób kolejno: git reset HEAD --hard, git clean -df, sudo chown -R user:user /srv/ocpl. Jeśli wszystko poszło dobrze spróbuj znów uruchomić: git pull. No i masz aktualny kod źródłowy OCPL :)
  • W aktualnej wersji maszyny VM trzeba także włączyc moduł APCu - robi się to komendą: sudo phpenmod apcu oraz przeładować server apache: sudo service apache2 reload
  • Wydaje się, że obecna struktura bazy danych OCPL ma problemy ze standardowym ustawieniem modów mysql - dla pewności warto będzie "na razie" wyłączyć mody: wyedytuj plik /etc/mysql/mysql.conf.d/mysqld_set_modes.cnf, gdzie powinno znaleźć się coś podobnego do:
[mysqld]
sql-mode=""
  • Po wyedytowaniu pliku konf. modów następnie konieczny będzie restart mysql: sudo service mysql restart
  • Aktualizacja OKAPI: wejdź w przeglądarce na stronę http://local.opencaching.pl/okapi/update.
  • Przejrzyj stronę http://local.opencaching.pl/okapi/devel/dbstruct?compare_to=https://opencaching.pl/okapi/devel/dbstruct i zaaplikuj odpowiednie ALTERy na swojej bazie. Zwróć uwagę, że ten skrypt jest generowany automatycznie, może być nie do końca poprawny i być może należy go poprawić. W razie wątpliwości, napisz do nas. Jeśĺi wersja maszyny wirtualnej jest dość starta, a pewnie jest ta operacja może być trudna - różnic w strukturze bazy danych będzie bardzo wiele - wtedy poproś kogoś z RT o wystawienie ci świeżego, kompletnego obrazy bazy danych (wskazówki jak to zrobić w rozdziale Praca z bazą danych).
  • Jeśli chcesz mieć zawsze aktualną wersję, to powinieneś co jakiś czas te operacje powtarzać.

W razie problemów, napisz do nas (rt@opencaching.pl).

Nazwy i hasła

  • Twój login: user, hasło: ubuntu. Użyj sudo jeśli potrzebujesz wykonać komendę jako root.
  • Hasło użytkownika root na MySQL to toor (do użycia np. w phpmyadmin).
  • Hasło użytkownika user na MySQL to ubuntu (do użycia np. w phpmyadmin).
  • Aby zalogować się na stronie jako dowolny użytkownik (np. jako Ty), wpisz jego login i hasło haslo (bez Ł). Listę użytkowników możesz przeglądać w tabeli user przez phpmyadmin.

Praca z konsolą

  • W wielu przypadkach praca z konsolą nie jest potrzebna. Jeśli nie przepadasz za Linuksem, to praktycznie każdą czynność możesz wykonać zdalnie z Windowsa, a ten dział możesz pominąć.

  • Jeśli łączysz się z Windowsa, użyj [PuTTy] (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html). W polu "Host Name" wpisz adres IP maszyny. Skocz do zakładki "Translation", w polu "Remote character set" wybierz "UTF-8". Wróć do zakładki "Session", w polu pod "Saved Sessions" wpisz "ocpl-devel" i kliknij "Save". Potem możesz już szybko łączyć się klikając dwukrotnie "ocpl-devel".

  • W PuTTy użyj środkowego klawisza myszy do kopiowania zaznaczonego tekstu, prawego do wklejania.

Praca z bazą danych

  • Z bazy zostały usunięte wszystkie prywatne dane użytkowników. Możesz się zalogować jako dowolny użytkownik, ale masz dostęp tylko do jego publicznych danych.

  • Baza była wzorowana na starym dumpie danych, więc nazwy użytkowników (oraz wszelkie inne pozostałe dane) nie będą aktualne. Nie dziw się więc, że w bazie nie ma któregoś Twojego kesza itp. To są dane tylko i wyłącznie testowe.

  • Z bazy zostało usuniętych wiele danych, m.in. w celu ograniczenia jej wielkości. Pierwszą rzeczą, którą zauważysz to braki w znalezionych skrzynkach (lub, inaczej mówiąc, wpisach do logów). Jedynie co trzydziesty wpis do logu znajduje się w bazie.

  • Możesz uzyskać bardziej aktualną (i mniej okrojoną) wersję bazy kontaktując się z RT.

  • Maszyna posiada zainstalowanego phpmyadmin-a (http://local.opencaching.pl/phpmyadmin/). Logowanie, jak wyżej (root/toor).

  • Jak zaaplikować pełny obraz bazy danych OCPL:

    • aktualnie pełny obraz bazy danych RT udostępnia na życzenie
    • taki obraz zwykle jest dosyć duży (aktualnie spakowany ma ~280MB)
    • spakowany dump przegrywamy na maszynę wirtualną (np. przez sftp - na windowsie użyj WinSCP na linuxie np. polecenia scp)
    • na maszynie wirt. wchodzimy do katalogu, w którym się znajduje się przegrany obraz
    • używamy polecenia: zcat <spakowany-obraz-bazy-danych.sql.gz> | mysql -u root --password=toor ocpl -vvv
    • powyższe polecenie prawdopodobnie będzie działać dłuuuugo (np. kilkadziesiąt minut?), ale przynajmniej widać co aktualnie jest wpuszczane do bazy
    • ostatnim niezbędnym krokiem jest regeneracja kafelków mapy - z konsoli wydać należy polecenie: wget "http://localhost/lib/mapper_okapi.php?userid=1&z=0&x=0&y=0" i poczekać na wynik (regeneracja kafelków jest procesem dość długotrwałym - w zależności od wydajności maszyny kilka-kilkanaście min.)

Praca z kodem PHP

  • Kod OC leży w /srv/ocpl. Możesz go edytować przez konsolę lub zdalnie, z poziomu hosta). Zobacz też Sposoby edycji zdalnej z Windowsa.

  • Sprawdzaj co jakiś czas maile wysyłane do użytkownika user. Pojawiają się w nich komunikaty i informacje o błędach. Wpisz alpine aby uruchomić klienta poczty.

  • Jeśli dostajesz "Error 500", to zajrzyj do logów Apache (np. komendą tail /var/log/apache2/error.log). Ostatnia linia w tym logu powie Ci co źle robisz.

Czegoś brakuje?

Jeśli czegoś Ci brakuje na naszej wirtualnej maszynie, napisz nam o tym. Być może w następnej wersji dodamy. Aktualna lista rzeczy do dodania.