Autor Thema: Wir basteln uns ein Entwickersystem  (Gelesen 4130 mal)

following

  • Gast
Wir basteln uns ein Entwickersystem
« am: 20. Juli 2012, 02:02:48 »
Diese Anleitung ist nicht mehr aktuell. Eine neue gibt es im internen Teamwiki, und die ist noch ins öffentliche Wiki zu übertragen.



Ich mag nicht länger auf das neue Entwcklerimage warten, daher habe ich nun den Code aus dem Git ins alte eingebaut.

- Git-Fork-Klon anlegen:

cd /usr/local/apache2/htdocs/oc-server/
sudo -u apache git clone https://github.com/<username>/server-3.0.git
cd server-3.0/htdocs

- statische Daten importieren:

cat doc/sql/static-data/data.sql | mysql -uroot -p opencaching

... und nach jeder Fehlermeldung die entsprechenden Tabellenfelder bzw. Tabellen anlegen, solange bis es durchläuft: Felder jeweils mit phpMyAdmin hinzufügen, ganze Tabellen mit

cat doc/sql/tables/<tabelle>.sql | mysql -uroot -p opencaching

Außerdem noch folgende Tabellen anlegen:

* cache_logs_archive
* coordinates
* mp3
* rating_tops

- Konfigurationsdateien aus altem Entwickersystem kopieren, ausgehend von /usr/local/apache2/htdocs:

cp branches/dev/code/htdocs/config2/settings.inc.php server-3.0/htdocs/config2
cp branches/dev/code/htdocs/lib/settings.inc.php server-3.0/htdocs/lib
cp branches/dev/code/htdocs/util/mysql_root/settings.inc.php server-3.0/htdocs/util/mysql_root

und in server-3.0/htdocs/lib/settings.inc.php provisorisch Folgendes hinzufügen:

$opt['logic']['node']['id'] = 4;
$opt['page']['subtitle1'] = 'Geocaching with Opencaching';
$opt['page']['subtitle2'] = '';
$opt['page']['title'] = 'OPENCACHING';
$oc_waypoint_prefix = 'OC';

.. und in server-3.0/htdocs/config2/settings.inc.php  Folgendes:

$opt['template']['locales']['DE']['flag'] = 'images/flag/DE.gif';
$opt['template']['locales']['FR']['flag'] = 'images/flag/FR.gif';
$opt['template']['locales']['NL']['flag'] = 'images/flag/NL.gif';
$opt['template']['locales']['EN']['flag'] = 'images/flag/EN.gif';
$opt['template']['locales']['PL']['flag'] = 'images/flag/PL.gif';
$opt['template']['locales']['IT']['flag'] = 'images/flag/IT.gif';
$opt['template']['locales']['RU']['flag'] = 'images/flag/RU.gif';
$opt['template']['locales']['ES']['flag'] = 'images/flag/ES.png';
$opt['template']['locales']['JA']['flag'] = 'images/flag/JP.gif';

In den ersten beiden config-Dateien sind zusätzlich alle absoluten Pfade (.../oc-server/branches/dev/code/...) umzustellen.

(Kann sein dass in dem Config-Dateien noch mehr fehlt; die Einträge habe ich aus branches/dev/code/htdocs/config2/settings-dist-inc.php entnommen.)

- Stored Procedures importieren:

php htdocs/doc/sql/stored-proc/maintain.php

- in server-3.0 ein .gitignore anlegen mit folgendem Inhalt:

.gitignore
htdocs/cache/*
htdocs/cache2/*
htdocs/download/*
htdocs/images/statpics/*
htdocs/images/uploads/*
htdocs/config2/settings.inc.php
htdocs/lib/settings.inc.php
htdocs/util/mysql_root/settings.inc.php

In /usr/local/apache2/index.html die neue Website hinzufügen:

      <a href="http://local.opencaching.de/oc-server/server-3.0/htdocs/">OC 3.0</a> website<br />

Damit dieser Link funktioniert, muss local.opencaching.de in der /etc/hosts (Windows: windows\system32\drivers\etc\hosts) des Gastsystems eingetragen sein.

Da ich Git als root verwende, fehlen in der Standard-Samba-Konfiguration (user apache) die Schreibrechte auf die Codedateien. Bis das sauber gelöst ist, hab ich den Samba-User auf root umgebogen und die filemasks geändert, ...
(entfällt, siehe unten)

Es kann sein, dass noch ein paar Tabellenfelder und/oder -indizes fehlen, aber grundsätzlich läuft's.


Nachtrag: weitere relevante Änderungen an der Datenbankstruktur:

- user: Feld "password": Länge 32 -> 512 Zeichen
- var_statpic: neues Feld "lang"
- xmlsession: neues Feld "remote_addr"

Außerdem gibt's noch ein paar geänderte Indizes.

Zweiter Nachtrag: Um die Datenbank exakt auf den richtigen Stand zu bringen, geht man am besten wie folgt vor:

1. http://local.opencaching.de/oc-server/server-3.0/htdocs/translate.php
2. SQL Export
3. cd /usr/local/apache2/htdocs/oc-server/server-3.0/htdocs/doc/sql/tables
4. git diff
5. die angezeigten Änderungen mit phpMyAdmin "rückwärts einbauen": grün = falsch, rot = richtig

Schritt 2-5 so oft wiederholen, bis git diff keine Änderungen mehr anzeigt.
« Letzte Änderung: 03. April 2013, 20:04:32 von following »

following

  • Gast
Re: Wir basteln uns ein Entwickersystem
« Antwort #1 am: 20. Juli 2012, 04:45:16 »
Noch offene Probleme:

- Flaggen in der Titelzeile werden verzerrt dargestellt

- Auf der Suchseite erscheint oben die Warnung "Strict Standards:  Declaration of translateEdit::t() should be compatible with that of translate::t() in /usr/local/apache2/htdocs/oc-server/server-3.0/htdocs/lib2/translate.class.php on line 164" #4487 -> gefixt

- Auf der Suchseite gibt es noch ein paar Darstellungsprobleme. wurde durch die Fehlermeldung verursacht

- Ticket #4504: falscher Pfad beim XML-Download

- sendmail macht Probleme, weil es den Hostname 'oc-devel' nicht auflösen kann.
« Letzte Änderung: 03. August 2012, 15:55:14 von following »

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
AW: Wir basteln uns ein Entwickersystem
« Antwort #2 am: 20. Juli 2012, 07:11:20 »
Jetzt bitte schlafen gehen :-)

Heute Abend probiere ich auch aus, ob ich die aktuelle Git-Version zum Laufen bekomme.

Was ich nicht verstehe (ich bin kein MySQL-Held): warum ist das manuelle Anlegen von Tabellen und Feldern nötig? Kann man das nicht via Shellscript automatisieren?

following

  • Gast
Re: AW: Wir basteln uns ein Entwickersystem
« Antwort #3 am: 20. Juli 2012, 13:01:31 »
Was ich nicht verstehe (ich bin kein MySQL-Held): warum ist das manuelle Anlegen von Tabellen und Feldern nötig? Kann man das nicht via Shellscript automatisieren?

Im jetzigen Zustand könnte es schiefgehen, z.B. wenn ein Tabellenfeld umbenannt wurde - das kann das Script nicht von einem gelöschten und neu angelegten Feld unterscheiden, d.h. es weiß nicht was mit den Dateninhalten zu tun ist. In Zukunft soll die Datenbank versioniert werden, dann geht's automatisch und man hat volle Kontrolle über die Inhalte: http://forum.opencaching-network.org/index.php?topic=2214.0

Zur Überprüfung könntest du über /translate.php einen Export der Datenstruktur machen und dann über das GIT kontrollieren, ob Änderungen an den Dateien in doc/sql/tables gemacht wurden. Wenn nach dem Export in doc/sql/tables alle Dateien den aktuellen Zeitstempel haben und keine Änderungen drin sind, sind in deiner Datenbank alle Felder und Indizes vorhanden.

Danke für den Tip. Es gibt 42 veränderte Tabellen.  :o  Der Großteil davon anscheinend hinzugefügte Kommentare und geänderte Defaultwerte und Feldgrößen. Da weiß ich ja, was ich die nächste Stunde zu tun habe.

Edit: Link für Thread Datenbankversionierung korrigiert
« Letzte Änderung: 03. April 2013, 20:05:55 von following »

Offline bohrsty

  • Administrator
  • Normal
  • *****
  • Beiträge: 1347
  • Teamleiter Technik
Re: Wir basteln uns ein Entwickersystem
« Antwort #4 am: 20. Juli 2012, 16:12:40 »
[...]
Da ich Git als root verwende, fehlen in der Standard-Samba-Konfiguration (user apache) die Schreibrechte auf die Codedateien. Bis das sauber gelöst ist, hab ich den Samba-User auf root umgebogen und die filemasks geändert, damit der Apache die root-erzeugten Dateien noch lesen kann:

/etc/samba/smb.conf:
[wwwroot]
...
force user = root
force group = root
force create mode = 0664
create mask = 0664
[...]

su - apache -c "git ..."
koennte helfen, aber vorher die aktuellen berechtigungen anpassen...
gruss Nils (bohrsty)


following

  • Gast
Re: Wir basteln uns ein Entwickersystem
« Antwort #5 am: 20. Juli 2012, 16:43:58 »
su - apache -c "git ..."
koennte helfen, aber vorher die aktuellen berechtigungen anpassen...

Ok, das ist eindeutig die bessere Lösung. Ich passe mal die Beschreibung oben an.

following

  • Gast
Re: Wir basteln uns ein Entwickersystem
« Antwort #6 am: 20. Juli 2012, 19:05:02 »
- Flaggen in der Titelzeile werden verzerrt dargestellt

Liegt an den Pfaden auf die Flaggensymbole. Für neun Sprachen hab ich's korrigiert (siehe zusätzliche Einträge in config2/settings.inc.php oben); für Schwedisch, Norwegisch, Dänisch und Portugieisch gibt es keine Grafiken in images/flag. Ausblenden mit

$opt['template']['locales']['SV']['show'] = false;
$opt['template']['locales']['NO']['show'] = false;
$opt['template']['locales']['DA']['show'] = false;
$opt['template']['locales']['PT']['show'] = false;

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
Re: Wir basteln uns ein Entwickersystem
« Antwort #7 am: 20. Juli 2012, 22:16:15 »
Ich hatte noch einige Fehlermeldungen wegen fehlender Schreibrechte auf
htdocs/cache2/smarty/compiled
htdocs/cache2/smarty/cache

und wegen fehlender Dateien:
htdocs/cache2/labels-DE.inc.php
htdocs/cache2/menu-DE.inc.php

Da habe ich einfach die Dateien aus dem originalen Image genommen.

following

  • Gast
Re: Wir basteln uns ein Entwickersystem
« Antwort #8 am: 21. Juli 2012, 00:12:41 »
Ein Problem bei Git via Samba (mit oder ohne GUI) ist die teils grottige Performance. Ein "git status" vom Windows-Host aus braucht bei mir 30 Sekunden, gegenüber ca. einer Sekunde auf der Linux-Konsole.

Nach etwas Recherche habe ich folgende Lösung gefunden: Man lege das lokale Repository auf den Windows-Host, gebe es frei und mounte es in der VM. Funktioniert einwandfrei. Der Nachteil ist dass sich der Zugriff vom Apache auf die Webdaten verlangsamt, dafür hat man volle Git-Power auf dem Host. Und man hat das Repository immer verfügbar, auch wenn die VM gerade nicht hochgefahren ist, ohne mit einem zweiten Klon arbeiten zu müssen (was recht umständlich ist, wenn man intensiv mit Branches arbeitet).

following

  • Gast
Re: Wir basteln uns ein Entwickersystem
« Antwort #9 am: 21. Juli 2012, 00:59:21 »
In config2/settings.inc.php und lib/settings.inc.php stehen diverse absolute URLs drin (.../oc-server/branches/dev/code/...), die sind auch noch anzupassen.

following

  • Gast
Re: Wir basteln uns ein Entwickersystem
« Antwort #10 am: 06. August 2012, 14:18:56 »
Ich habe den aktuellen Komplettstand der Entwicklersystem-Datenbank als Dump bereitgestellt, das erspart das Rumfrickeln an Einzeltabellen:

private URL vor Veröffentlichung des Threads entfernt

Einlesen mit

bunzip2 oc.sql.bz2
cat oc.sql | mysql -uroot -p opencaching
(Passwort "developer")
« Letzte Änderung: 03. April 2013, 20:03:27 von following »

Offline 4_Vs

  • Vereinsmitglied
  • Vereinsmitglied
  • Large
  • *
  • Beiträge: 3159
  • Freier Cacher
    • vaahsen.de
Re: Wir basteln uns ein Entwickersystem
« Antwort #11 am: 06. August 2012, 14:43:31 »
su - apache -c "git clone https://github.com/<username>/server-3.0"
Mmmmh,

hier fängts an:
su - apache -c "git clone https://github.com/4Vs/server-3.0"
This account is currently not available.
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)

following

  • Gast
Re: Wir basteln uns ein Entwickersystem
« Antwort #12 am: 06. August 2012, 14:50:54 »
su - apache -c "git clone https://github.com/4Vs/server-3.0"
This account is currently not available.

hier ein paar Alternativen, vielleicht geht eine davon:

su - apache -c "git clone git://github.com/4Vs/server-3.0"
sudo -u apache git clone https://github.com/4Vs/server-3.0
sudo -u apache git clone git://github.com/4Vs/server-3.0

und/oder wahlweise noch ein ".git" an die Adresse anhängen

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
Re: Wir basteln uns ein Entwickersystem
« Antwort #13 am: 06. August 2012, 15:04:17 »
Ich denke die  Fehlermeldung "This account is currently not available." bezieht sich auf "apache" und hat nichts mit git zu tun.

"If you get this message attempting to ssh in or su’ing as another user, there is no valid shell set for this user."

Offline bohrsty

  • Administrator
  • Normal
  • *****
  • Beiträge: 1347
  • Teamleiter Technik
Re: Wir basteln uns ein Entwickersystem
« Antwort #14 am: 06. August 2012, 17:15:46 »
Ich denke die  Fehlermeldung "This account is currently not available." bezieht sich auf "apache" und hat nichts mit git zu tun.

"If you get this message attempting to ssh in or su’ing as another user, there is no valid shell set for this user."

Korrekt, deshalb (je nach git-version) eine der sudo-varianten verwenden (bei Versionen <1.7 die mit git://), su logged mit komplettem profil ein, war mein Fehler  :-[
gruss Nils (bohrsty)