Inhaltsverzeichnis
Diese Seite befindet sich noch im Aufbau
Die Inhalte hier wurden noch nicht korrekturgelesen. Nicht einfach blind der Dokumentation folgen.
Drupal bei PING
Eine neue Homepage auf der Basis des CMS Drupal ist (nach langem, zähen Ringen) auf http://web.ping.de/ entstanden. Die Implementation naht nunmehr ihrer Vollendung, sobald letzte Kleinigkeiten fertiggestellt und die Inhalte übertragen sind soll das neue CMS die Startseite http://www.ping.de/ ersetzen.
Dokumentation
Die Dokumentation des Systems ist im Drupal selbst abgelegt, die entsprechenden Seiten/Artikel werden aber nicht veröffentlicht. Nach erfolgreicher Anmeldung als Redakteur oder Admin ( genaue Rollen benennen) können diese eingesehen werden.
Mitgliederaccounts
Es gibt einen Mechanismus, um Mitgliederaccounts automatisch mit der PING-Datenbank zu synchronisieren. Dazu wird auf lilly eine CSV-Datei erstellt und auf web.ping.de kopiert. Hier kann diese entweder manuell oder automatisch sychronisiert werden, dieser Vorgang ist im Drupal beschrieben (s.o.).
Hier folgen nun noch einige technische Detail-Informationen zu der Implementation der Synchronisation. Für die Benutzung des CMS ist es nicht notwendig, diesen Teil zu kennen.
Die Quell-Daten für die CSV-Datei finden sich auf lilly in /etc/httpd/drupal/
Die CSV-Datei wird als /var/www/intern/user-transfer/accounts.csv abgelegt.
- Das Passwort in der CSV-Datei ist ein MD5-Hash ohne Salt.
Der Import wird von dem PHP-Skript /var/www/drupal7/sites/all/themes/ping/inc/import.inc.php durchgeführt.
- Es gibt aktuell im Drupal die folgenden Rollen, ein Benutzer kann dabei mehr als eine Rolle haben:
- administrator
- Authentifizierter Benutzer
- Gast
- Redakteur
Neben den regulären Account-Daten werden auch noch drei data fields angelegt:
- user_id
- user_vorname
- user_nachname
TODO
- Es muss noch geklärt werden, wie Prima-User integriert werden, bzw. wie mit doppelten Sitenames umgegangen werden soll.
Aktuell werden Mitglieder, die den Verein verlassen, nicht gelöscht sondern inaktiv gesetzt. Sollen diese gelöscht werden muss noch ein entsprechender Mechanismus implementiert werden.
Insbesondere müssen die oben erwähnten data fields gelöscht werden.- Aktuell gibt es im Import-Skript zwei besondere Ausnahmen:
- User-ID 0 wird komplett ignoriert und niemals modifiziert. Diese User-ID stellt den Drupal-Administrator dar.
User-ID 18 wird explizit übersprungen, dieses ist aktuell ein generischer Redakteur-Account mit dem Usernamen redaktion
- Der Import-Mechanismus muss noch derart angepasst werden, daß weitere, manuell vergebene Redakteur- bzw. Administrator-Accounts ebenfalls übersprungen werden. Die Entscheidung könnte über die im Drupal dem entsprechenden Account zugeordnete Rolle oder über die vom Import-Skript speziell generierten Dummy-email-Adressen geschehen.
Es muss noch eine Möglichkeit eingebaut werden, damit sich ein angemeldeter Benutzer wieder abmelden kann. Z.B. könnte ein "Abmelden"-Link im Menu "Interner Bereich" erstellt werden. Ein Abmelden Link (user/logout) wurde im Menu "Interner Bereich" ergänzt.
Accounts
Drupal
Anmelden unter: http://web.ping.de/user
- Benutzer: PINGone
Piwik (Besucher-Statistik)
Anmelden unter: http://web.ping.de/piwik
- Benutzer: PINGadmin
MySQLDumper (zum Sichern/Wiederherstellen der Datenbank)
Anmelden unter: http://web.ping.de/msd/
- Benutzer: pingadmin
Updates
Beim Login als Administrator zeigt Drupal eine Benachrichtigung an, wenn Updates existieren.
Vorarbeiten
Vor jedem Update (gleich ob Modul, Theme oder Core) sollte die Datenbank gesichert werden. Dies kann direkt auf dem Server mittels mysqldump geschehen oder mit dem HTML-basierten MySQLDumper.
Hier wird die Sicherung mittels MySQLDumper beschrieben.
Login auf http://web.ping.de/msd/
- "Backup" in der linken Navigation wählen
- Einen Kommentar vergeben
- Den Knopf "Neues Backup starten" drücken
Während das Backup läuft wird der Fortschritt angezeigt.
Module/Themes
- Über die Links auf der Drupal-Update-Übersicht die Neuigkeiten prüfen.
Auf der Neuigkeiten-Seite gibt es auch die Download-Links (hier die tar.gz-Version nehmen) NICHT über "Aktualisierungen herunterladen" auf der Dupal-Update-Übersichtsseite downloaden
- Jedes Paket lokal öffnen und die Dokumentation in den Dateien README.txt, INSTALL.txt und UPGRADE.txt durchsehen
- Notwendige Abhängigkeiten installieren
- Die Installationspakete auf den Server kopieren.
- Drupal in den Wartungsmodus versetzen (unter: /admin/config/development/maintenance)
In /var/www/drupal7/sites/all/modules/contrib das gesamte Verzeichnis des zu aktualisierenden Moduls nach /var/www/_update_modules kopieren
In /var/www/drupal7/sites/all/modules/contrib die Verzeichnisse der zu aktualisierenden Module löschen. Auf keinen Fall die Verzeichnisse einfach umbenennen.
- Im selben Verzeichnis die Aktualisierungsdateien des Moduls auspacken
http://web.ping.de/update.php aufrufen
- Den Dialogen folgen
- Fehlermeldungen prüfen und notwendige Schritte ausführen
Nur nach Update von Chatblock: cd /var/www/drupal7 Hier in das richtige Verzeichnis wechseln
Nur nach Update von Chatblock: sudo drufixperms.sh
- Ggfs. weitere Module nach obigen Schema updaten.
- Wartungsmodus deaktivieren
Temporär gesicherte Verzeichnisse in /var/www/_update_moduels löschen
Module manuell deaktivieren
- Module können manuell nur in der Datenbank deaktiviert bzw. aktivert werden.
- Vor dem Aktiveren/Deaktivieren von Modulen die Datenbank wie oben beschrieben sichern.
- Im MySQLDumper "SQL-Browser" in der linken Navigationsleiste wählen.
Die notwendigen SQL-Befehle stehen unter https://www.drupal.org/node/157632
Core
Das Drupal Kernsystem wird Core genannt.
- Über die Links auf der Drupal-Update-Übersicht die Neuigkeiten prüfen.
- Auf der Neuigkeiten-Seite gibt es auch die Download-Links (hier die tar.gz-Version nehmen)
- Die Installationspakete auf den Server kopieren.
- Drupal in den Wartungsmodus versetzen (unter: /admin/config/development/maintenance).
cd /var/www
tar xzf /path/to/drupal-7.version.tar.gz
cp -Rf drupal7/sites drupal-7.version/
cp -Rf drupal7/dateien drupal-7.version/
cp -Rf drupal7/msd drupal-7.version/
cp -Rf drupal7/piwik drupal-7.version/
cd drupal-7.version Hier in das richtige Verzeichnis wechseln, das NEUE Drupalverzeichnis
sudo drufixperms.sh
cp drupal7/js.php drupal-7.version/
cp drupal7/chatblock.php drupal-7.version/
Alte und neue Version der Dateien robots.txt und .htaccess vergleichen und notwendige Anpassungen vornehmen. Es gibt bei PING lokale Anpassungen an der Datei .htaccess
mv drupal7 drupal7-BAK
mv drupal-7.version drupal7
http://web.ping.de/update.php aufrufen
- Den Dialogen folgen
- Fehlermeldungen prüfen und notwendige Schritte ausführen
- Wartungsmodus deaktivieren
Sicherung der notwendigen Rechteänderungen als reine Information
chown -R www-data:www-data drupal-7.version/sites
chown -R www-data:www-data drupal-7.version/dateien
chown -R www-data:www-data drupal-7.version/piwik/tmp/climulti
chown -R www-data:www-data drupal-7.version/piwik/tmp/latest
chown -R www-data:www-data drupal-7.version/piwik/tmp/sessions
chown www-data:www-data drupal-7.version/piwik/tmp/index.htm
chown www-data:www-data drupal-7.version/piwik/tmp/index.php
FAQ
Hier nun eine Sammlung von Fragen, die dem Webdesigner, der die Drupal-Implementierung umgesetzt hat, gestellt wurden, sowie dessen Antworten.
Umbenennung web -> www
>> - Was muss innerhalb des Drupal getan werden, wenn die Seite von >> web.ping.de auf www.ping.de umgestellt wird? > > Da muss eigentlich gar nichts gemacht werden, solange die Dateien nicht > auch noch auf dem Server verschoben werden. Sollte es bei der Umstellung > Probleme geben, können Sie mich aber noch einmal fragen.
URL für die Webcam
>> - Lässt sich die URL für die Webcam ändern und wenn ja wo? > > Die Ersetzung des Kurzcodes ist selbst programmiert. Zuständig ist die > Datei /sites/all/themes/ping/template.php - Zeile 55.
Backup/Restore
>> - Backups sind dokumentiert, doch wie muss vorgegangen werden, um diese >> ganz oder teilweise wiederherzustellen? > > Der Admin hat Zugriff auf die Backups. Es gibt eine Funktion, um diese > wieder herzustellen. Ich habe die Funktion des Moduls aber noch nie > selbst benutzt. Ich nutze das Tool MySQLDumper. Das hätte ich nun > gelöscht, aber ich belasse es mal auf dem Server und gebe auch dort den > Zugang weiter. > Das Tool hat nichts mit Drupal zu tun. > Siehe: <http://www.mysqldumper.de/>
(Sicherheits-)Updates einspielen
>> - Wie werden Sicherheitsupdates korrekt und ohne Datenverlust >> eingespielt? > > Das ist hier erklärt: <https://www.drupal.org/node/1494290> > Bitte dabei immer und in jedem Fall zuerst die Datenbank sichern. Mit dem > Drupal-Modul oder mit MySQLDumper.
Infrastruktur-Module
Neben Drupal (CMS) gibt es auf dem Server auch eine Installation von Piwik (Statistiken) und MySQLDumper (Web-Interface zur Datenbank-Pflege).
Piwik
Es scheinen derzeit keine Statistiken gesammelt zu werden, die entsprechende Funktion scheint im Drupal nicht aktiv zu sein.
Piwik Updates
- Sollte eine altes Backup-Verzeichnis existieren (piwik-BAK), dieses löschen
cd /var/www/drupal7/piwik/config
cp config.ini.php config.ini.php-`date -I`
cd /var/www/drupal7
wget https://builds.piwik.org/piwik.zip
cp -a piwik piwik-BAK
unzip -o piwik.zip
rm How\ to\ install\ Matomo.html piwik.zip
Prüfen, ob im richtige Verzeichnis: /var/www/drupal7
sudo drufixperms.sh
/var/www/drupal7/piwik/console core:update
Piwik Cache leeren
Unter Umständen kann es sein, daß statt der normalen Seite eine Fehlermeldung angezeigt wird. Dann kann es helfen, den Cache zu leeren:
/var/www/drupal7/piwik/console core:clear-caches
Links:
MySQLDumper
Hier gibt es zur Zeit nichts zu sehen.
Reverse Engineering
Benutzerdaten-Dialog
Benutzer (inklusive Administratoren und lokale, nicht durch den Import erzeugte Benutzer) können ihre Benutzerdaten nicht ändern. Dafür verantwortlich ist das Modul pingmini. Dieses ist in /var/www/drupal7/sites/all/modules/custom/pingmini zu finden.
Das Modul implementiert aktuell nur die Funktion pingmini_form_alter welche nur für das Formular user_profile_form aktiv wird und hier einige Felder inklusive des Speichern-Buttons entfernt. Hier wird auch der Hinweis eingefügt, die Daten über die PING-Benutzerverwaltung zu ändern.