====== Installation Update ======

Each SoSci Survey installation package is also an update package at the same time. If this is yet to be done, download the latest installation package in the [[https://www.soscisurvey.de/download/|Download-Portal]]. You need your license data (password) in order to download this.

After the update is complete, SoSci Survey can be accessed as usual. The new version number will be displayed on the left in the navigation. 

===== 1. Lock Server Down =====

Programs, databases and caching is not consistent internally during the update. This means that SoSci Survey cannot be used for project management or to fill out questionnaires during the update. If this is done, the user may get error messages listed in the log files (system/logfiles). This can also lead to data being lost during the update.   

The server should be blocked when carrying out the update in order to avoid problems such as these.

**Server Management** -> **Server Maintenance** -> **Block Server**


===== 2. Write Cache =====

**Note:** If you are using version 2.4.00 or more recent, the write cache is automatically XXX when the server is blocked. If this is the case, you can skip this step. 

If you have enabled write cache (**Server Management** -> **Server Settings** -> //Write cache//, transfer the contents of the cache into the database before carrying out the update. This is important as the file format in the cache can be changed during the update.

**Server Management** -> **Server Maintenance** -> **Write cache**.

===== 3. Create a Backup =====

In principle, it always makes sense to create a backup of the file system __and__ the database before carrying out an update. If there are any unforeseen problems, the files can then be returned to their original state.  

Grundsätzlich ist es vor einem Update immer sinnvoll, ein Backup des Dateisystems __und__ der Datenbank zu erstellen. Falls es zu unvorhergesehenen Problemen kommt, kann so schnell wieder der Ausgangszustand hergestellt werden.

If you are using Linux and a MySQL database, you can use the following Bash script to create backups. The file paths, along with the database name and password obviously have to be customized to your installation. In order for the file to be executed, the //execute// flag for the script has to be used with ''chmod'' after saving. 

Wenn Sie Linux und eine MySQL-Datenbank verwenden, können Sie folgendes Bash-Script verwenden, um Backups zu erstellen. Die Dateipfade sowie Datenbankname und -passwort müssen Sie selbstverständlich an Ihre Installation anpassen. Damit die Datei ausgeführt werden kann, muss mit ''chmod'' nach dem Speichern noch das //execute// Flag für das Script gesetzt werden.

<file bash backup4update.sh>
#!/bin/sh

#Backup Settings Einstellungen für das Backup
pathSOSCI=/var/www/html/sosci
pathBACKUP=/var/www/backup
dbDatabase=sosci
dbUser=survey
dbPass=PASSWORD

# Timestamp for the File Name Zeitstempel für den Dateinamen
datetime=`date +%Y-%m-%d_%H-%M-%S`

#File System Backup Backup Dateisystem
tar --exclude=$pathSOSCI/system/session --exclude=$pathSOSCI/system/cache -czf $pathBACKUP/sosci-html-$datetime.tar.gz $pathSOSCI

#MySQL Database Backup Backup MySQL-Datenbank
mysqldump -u$dbUser -p$dbPass -q --databases $dbDatabase | gzip -9 > $pathBACKUP/sosci-database-$datetime.sql.gz
</file>

===== 4. Updating the Program Programm aktualisieren =====

Unzip the installation packet in a directory on the local computer (not in the SoSci Survey installation directory directly). Replace the following directories in the SoSci Survey installation directory with the new files from the update package:

Entpacken Sie das Installationspaket in ein Verzeichnis auf dem lokalen Computer (nicht direkt in das SoSci Survey Installationsverzeichnis). Ersetzen Sie die folgenden Verzeichnisse im SoSci Survey Installationsverzeichnis durch die neuen Dateien aus dem Update-Paket:

  * ''/admin''
  * ''/help''
  * ''/images''
  * ''/inc''
  * ''/layout''
  * ''/lib''
  * ''/modules''
  * ''/script''
  * ''/templates''
  * ''/spellcheck.php'' (Datei)

Only copy files; do not delete any of them:

Kopieren Sie nur Dateien, löschen Sie aber nichts aus:

  * ''/plugins'' -- There can be files here that are not included in the update (anymore). Therefore, do not delete any files from this directory.

Do not copy __any__ files from the following directories:

Kopieren Sie __keine__ Dateien folgender Verzeichnisse:

  * ''/system'' -- This directory contains the installation configuration and must not be changed during the update.
  * All other directories: The (sometimes numerous) project directories must not be changed or deleted, otherwise ongoing projects may not longer be available after the update. You can check in **Server Management** -> **Server Maintenance** -> **Directories** whether there are potentially deserted directories on the server. 

  * ''/system'' -- Dieses Verzeichnis enthält die Konfiguration der Installation und darf beim Update nicht verändert werden.
  * Alle anderen Verzeichnisse: Die (mitunter zahlreichen) Projektverzeichnisse dürfen nicht verändert oder gelöscht werden, sonst sind laufende Projekte nach dem Update u.U. nicht mehr verfügbar. Unter **Server-Verwaltung** -> **Server-Wartung** -> **Verzeichnisse** können Sie bei Interesse überprüfen, ob es möglicherweise verwaiste Verzeichnisse auf dem Server gibt.

The files in the root directory are optional: they control what is displayed in the browser (index.html) when the directories are accessed, how search engines deal with installation (robots.txt), and which symbol is displayed in the browser's tab bar (favicon.ico). These files can be customized or replaced if needed. If you have not made any modifications to these files, then you can update them during the update.

Die Dateien im Hauptverzeichnis sind optional, sie steuern was beim Aufruf des Verzeichnisses im Browser angezeigt wird (index.html), wie Suchmaschinen die Installation behandeln (robots.txt) und welches Symbol in der Tableiste des Browser angezeigt wird (favicon.ico). Diese Dateien können nach Bedarf angepasst oder ausgetauscht werden. Falls Sie keine Modifikationen an diesen Dateien vorgenommen haben, können Sie sie im Rahmen des Updates aktualisieren.

**Note:** To upload the new files you require, like with the installation, a FTP program (e.g. [[http://filezilla-project.org/|FileZilla]]), or another way to copy files onto the webserver. At the moment, an update cannot be triggered directly from SoSci Survey is not possible.

**Hinweis:** Zum Hochladen der neuen Dateien benötigen Sie, wie schon bei der Installation, ein FTP-Programm (z.B. [[http://filezilla-project.org/|FileZilla]]) oder eine andere Möglichkeit, Dateien auf den Webserver zu kopieren. Ein Update direkt aus SoSci Survey heraus ist derzeit nicht möglich.

===== 5. Update the Database =====

After the files have been updated, the installation routine (admin/install.php) should always be called up. This ensures the database will be updated and points to any potential problems at the same time.

Nach dem Update der Dateien sollte immer die Installations-Routine (admin/install.php) aufgerufen werden. Diese kümmert sich um Aktualisierungen der Datenbank und gibt ggf. Hinweise auf mögliche Probleme.

**Tip:** If you have blocked the server, calling up the //Server Installation Routine// will be offered directly on the corresponding page (version 2.4.00 onwards).

**Tipp:** Wenn Sie den Server gesperrt haben, wird auf der entsprechenden Seite (ab Version 2.4.00) direkt ein Aufruf der //Server Installationsroutine// angeboten.

Call the **%%http://www.domain.tld/sosci/admin/install.php%%** URL in the internet browser. Please adjust the domain and the SoSci Survey directory in the URL according to your installation.

Rufen Sie im Internetbrowser die URL **%%http://www.domain.tld/sosci/admin/install.php%%** auf. Bitte passen Sie in der URL die Domain und das SoSci Survey Verzeichnis entsprechend Ihrer Installation an.

After the installation is complete, the block on the server will automatically be lifted.

Nach Abschluss der Installation wird die Sperrung des Servers automatisch aufgehoben.