====== SoSci Survey umziehen ====== Diese Anleitung richtet sich an Betreiber einer lokalen Instanz (Installation) von SoSci Survey. Die Anleitung beschreibt, wie man eine Installation von SoSci Survey mit allen Befragungsprojekten von einem Server auf einen anderen Server umzieht. **Hinweis:** Es geht hier nicht um den Umzug eines Befragungsprojekts, dazu s. [[:de:general:copy-project]] Eine Instanz von SoSci Survey besteht aus folgenden Komponenten: * Dateisystem * Programmdateien von SoSci Survey * Konfiguration * Befragungsprojekte (Verzeichnisse und Uploads) * Erhobene Dateien * Schreibcache * Lesecache (soll nicht kopiert werden) * Datenbank Für den Umzug auf einen anderen server gehen Sie wie folgt vor. - Bereiten Sie den neuen Server vor. - Die Prozesse für den Webserver sollten funktionieren und die Konfiguration für Apache, nginx, IIS o.ä. sollte abgeschlossen sein. - Erstellen Sie eine Datei ''test.html'' mit beliebigem Inhalt im Wurzelverzeichnis für SoSci Survey, und testen Sie, ob diese Datei über die neue URL mit dem Anhang ''/test.html'' im Browser via HTTPS aufgerufen werden kann (zum Beispiel ''%%https://www.beispiel-neuer-server.de/test.html%%'') - Datenbank-System eingerichtet sein, und es sollte eine Datenbank für SoSci Survey inkl. zugehörigem Datenbank-Benutzer vorbereitet sein, aber noch ohne Tabellen. - Sofern SoSci Survey E-Mails direkt über den Server (''sendmail'') verschickt, sollte auch dies korrekt konfiguriert werden. Der Versand über SMTP ist in aller Regel besser zu warten. - Ein gesonderter Nutzer auf dem alten Server (im Beispiel ''transfer'') erliechert die Übertragung der Dateien. - Sperren Sie auf dem alten Server die Instanz von SoSci Survey, damit während des Umzugs keine Änderungen an Fragebögen und kein Ausfüllen von Fragebögen möglich ist. - **Server-Verwaltung** -> **Server-Wartung** -> **Server sperren** - Bei der Sperrung wird der Cache automatisch geleert. - Kopieren Sie das Verzeichnis von SoSci Survey auf den neuen Server, am besten mittels ''rsync'' und ''scp'', alternativ als ''.tar.gz'' packen und diese Datei per SFTP kopieren. - **Tipp:** Um die Downtime zu minimieren, können Sie die Synchronisation auch vor dem Sperren des Servers laufen lassen, und danach noch einmal. ''rsync'' kopiert beim zweiten Aufruf nur noch die geänderten Daten. - Unten finden Sie ein Code-Beispiel mit ''rsync'' für einen extra angelegten Linux-Nutzer ''transfer'' - Datenbank übertragen (Beispiel-Code siehe unten) - Erstellen Sie ein Datenbank-Dump - Kopieren Sie das Datenbank-Dump auf den neuen Server, zum Beispiel mittels ''scp'' - Laden Sie das Dump in die neue Datenbank - Anpassen der URL in der Konfiguration - Rufen Sie über den Webbrowser die URL auf, unter welcher SoSci Survey auf dem neuen Server erreichbar ist, und darin ''/admin/install.php'' (zum Beispiel ''%%https://www.beispiel-neuer-server.de/admin/install.php%%''). - Setzen Sie das Häkchen, dass Lizenz und URL zurückgesetzt werden sollen, und loggen Sie sich mit dem Administrator-Konto ein. - Alternativ können Sie die Zeile ''$GLOBALS['oFb']['licence data'] = ...'' aus der Datei ''system/config.php'' löschen. - Wenn die Installationsroutine (''admin/install.php'') erfolgreich durchgelaufen ist, wird der Wartungmodus (**Server sperren**) automatisch beendet. Bitte beachten Sie, dass der nachfolgende Code nur ein Beispiel ist. Für die Verwendung auf dem eigenen Server müssen sowohl Pfade als auch die Namen von Benutzern und/oder Gruppen angepasst werden. # Zugriffsrechte für geschützte Verzeichnisse temporär anpassen # (auf dem alten Server) sudo chmod -R 750 /var/www/soscisurvey/files/protected sudo chmod -R 750 /var/www/soscisurvey/system/keyring # Synchronisation des Dateisystems ohne Cache und Sessions # (auf dem neuen Server) sudo rsync -av -e ssh --delete --exclude=/system/session/ --exclude=/system/cache/ --exclude=/view transfer@192.0.2.123:/var/www/soscisurvey/ /var/www/soscisurvey/ sudo rsync -av -e ssh --delete transfer@192.0.2.123:/var/www/sosci-log/ /var/www/sosci-log/ # Datenbank Dump erstellen # (auf dem alten Server) sudo mysqldump -usosci -p --databases soscisurvey --quick --single-transaction | gzip -9 > /home/transfer/transfer-database.sql.gz # Dump auf dem neuen Server kopieren und einspielen # (auf dem neuen Server) scp -i ~/.ssh/id_ecdsa transfer@192.0.2.123:/home/transfer/transfer* /home/transfer gunzip -c /home/transfer/transfer-database.sql.gz | mysql -u sosci -p soscisurvey # Die Projektverzeichnisse müssen www-data gehören, damit PHP dort schreiben kann # (auf dem neuen Server) sudo chown -R www-data:www-data /var/www/soscisurvey # Einige Verzeichnisse sind exklusiv www-data zugeordnet # (auf dem neuen Server) sudo chown -R www-data:www-data /var/www/soscisurvey/system/keyring sudo chown -R www-data:www-data /var/www/soscisurvey/files sudo chown -R www-data:www-data /var/www/soscisurvey/system # FTP ist der Besitzer der Bibliotheken, aber die ganze www-data Gruppe hat Lesezugriff # (auf dem neuen Server) sudo chown -R www-ftp:www-data /var/www/soscisurvey/admin sudo chown -R www-ftp:www-data /var/www/soscisurvey/inc sudo chown -R www-ftp:www-data /var/www/soscisurvey/lib sudo chown -R www-ftp:www-data /var/www/soscisurvey/images sudo chown -R www-ftp:www-data /var/www/soscisurvey/internal sudo chown -R www-ftp:www-data /var/www/soscisurvey/layout sudo chown -R www-ftp:www-data /var/www/soscisurvey/modules sudo chown -R www-ftp:www-data /var/www/soscisurvey/plugins sudo chown -R www-ftp:www-data /var/www/soscisurvey/script sudo chown -R www-ftp:www-data /var/www/soscisurvey/templates # Zugriffsrechte wieder setzen # (auf dem neuen Server) sudo chmod -R u-x+rwX,g-xw+rX,o-rwx /var/www/soscisurvey sudo chmod 770 /var/www/soscisurvey sudo chmod -R u-x+rwX,go-rwx /var/www/soscisurvey/files/protected sudo chmod -R u-x+rwX,go-rwx /var/www/soscisurvey/system/keyring