Checkout campus21 Software
Die Installation bezieht sich auf die ECampus21 und CELLstudio (für SMACCware gibt es noch ein separate Installationsanleitung, siehe). Zum Ausbuchen der campus21-Produkte muss ein SVN-Client installiert sein. Informationen zur Installation und Benutzung von SVN siehe Subversion. Zum Ausbuchen aus SVN legen Sie einen lokalen Ordner campus21 an. Wechseln Sie in diesen Ordner und verwenden sie den SVN Kommandozeilenbefehl checkout (bzw. den Ersatz des jeweiligen SVN-Clients):
cd campus21
svn checkout http://www.campus21.de:8081/trunk trunk
svn checkout http://www.campus21.de:8081/releases releases
Dateistruktur
Mit dem Checkout wird die standardmäßige Dateistruktur der Laufzeitumgebung von ECampus21 und CELLstudio hergestellt (Im folgenden dargestellt). Beide Produkte basieren (im Gegensatz zu SMACCware, hier nicht dargestellt) auf einer gemeinsamen Dateistruktur:
+ campus21
+ trunk // Quellcode für NET-Komponenten
+ releases
+ his2010 // CELLstudio, ECampus21
+ Files+ Documents // Dokumentenverzeichnis+ Images // Bildarchiv
+ Templates // Standardvorlagen
+ install // Initialdaten
+ Nsoft.His.Website // Webservices auf NET-Basis
+ php
+ cms // nsoftCMS
+ com // nsoftCOM
+ custom
+ fom // nsoftFOM
+ his // nsoftSMB
+ org // nsoftORG
+ pub // nsoftQDE
+ sys // nsoftSYS
+ upload
+ doc // Dokumentenverzeichnis
+ icons // Systemsymbole
+ img // Bildarchiv
+ scriptes // Verwaltete Scripte
+ templates // Dateiressourcen
+ thumbs // DMS-Thumbs
+ System // Wartungs-Scripts
+ bin // NET-Binärcode Systemprozesse, Tools
+ node.js // serverseitige RTC-Komponenten
Build-Prozess
Der Quellcode der NET-Umgebung muss nach dem Checkout kompiliert werden um die Laufzeitumgebung zu erstellen. Dies wird durch den Build-Prozess (NET/Mono) erledigt. In der Standardinstallation kann das mitgelieferte Build-Script ohne Anpassungen verwendet werden:
Linux (Mono)
cd campus21/releases/his2010
chmod 755 *.sh
./update.sh
./build.sh
Windows
cd campus21\releases\his2010
update.cmd
build.cmd
In der PHP-Umgebung und serverseitigen JS-Umgebung (node.js) ist der Quelltext gleichzeitig die Laufzeitumgebung. Unsere Basic Editionen (siehe Produkte) benötigen keine NET-Umgebung und somit keinen Build!
Herstellung der Konfigurationsdateien und Berechtigungen
Ausfühberechtigungen für System-Scripte
Nach dem Checkout der Software müssen die Installations-, Wartungsscripte für den Administrator als ausführbar markiert werden. Zusätzlich müssen Anwendungsscripte (exec-Kommandodateien) durch den PHP-Prozess ausführbar sein
Auf Linuxsystemenen ist die Nutzeridentität standardmäßig www-data. Durch folgende Befehle werden Ausführberechtigungen an alle Nutzer vergeben.
cd ~/his2010
chmod 755 install/*.sh
chmod 755 System/*.sh
Auf Windowssystemen muss der Webserver Lese- und Ausführberechtigungen haben für die exex-???.cmd Dateien. Die ist abhängig davon unter welcher Nutzeridentität der PHP-Prozess ausgeführt wird (standardmäßig IUSR).
- Kontextmenü exec-rep.cmd
- Eigenschaften > Sicherheit
- Hinzufügen IUSR mit Berechtigung Lesen und Ausführen
Herstellung von Konfigurationsdateien
Außerdem werden die Konfigurationsdateien hergestellt durch Kopieren der Dateien aus dem Kompilierungsvorgang (trunk/bin/Release).
cd ~/his2010/System
./config-restore.sh
Logging der Systemprozesse
Die Systemjobs werden durch drei Shellscripts aufgerufen (siehe Systemprozesse). In den Verzeichnissen der Systemjobs und der Webapplikationen/Webservices befindet sich eine Datei NLog.config, die das Logging-Subsystem konfiguriert (siehe NLog). Die Logdateien werden entweder in den Binärverzeichnissen der Jobs oder in /tmp erstellt (Einstellung in NLog.config).
Schreibberechtigungen Webserver
Die Webserver benötigt Leserechte auf alle Dateien des PHP-Frontends und Schreibberechtigungen auf wenige Dateien und Ordner. Standardmäßig hat der Webserver keine Schreibberechtigungen im Dateisystem. Folgende Dateien und Ordner können vom Frontend aus geschrieben werden (in SYS_ROOT).
- Dateien
- *.custom
- cms.templates
- cms.extensions
- cms.extensions.backup
- *.log
- Ordner (in denen vom FE Dateien angelegt werden können)
- upload/doc
- upload/icons
- upload/img
- upload/templates
- upload/thumbs
Bei der Standardinstallation werden die Dateien durch das Installationsscript erzeugt.
Linux:
chown www-data *
sudo chown www-data upload/*
Windows
Verzeichnis | |
---|---|
C:\Windows\Temp |
IUSR Vollzugriff, Benutzer(User-PC\Benutzer) OI, CI, F |
.../his2010/php/upload |
IUSR Vollzugriff, Benutzer(User-PC\Benutzer) OI, CI, F |
Dos-Fenster als Administrator öffnen
Bsp.: icacls "C:\Temp" /grant "IIS_IUSRS":(OI)(CI)(F)
Systemsymbole
Lauffähiges PHP-System
http://localhost/nsoft/sys/images/copy.asp
http://localhost/nsoft/sys/images/modulate.asp
http://localhost/nsoft/sys/images/modulate.asp?rgb=7f7f7f&folder=disabled/
http://localhost/nsoft/sys/images/modulate.asp?rgb=B6181F&folder=signal/
Die Systemsymbole werden bei Verwendung von Glyphicons nicht mehr benötigt (siehe Systemsymbole).
Einrichtung der PHP-Applikation
Virtuelle Verzeichnisse
In der PHP-Umgebung können mehrere virtuelle Verzeichnisse existieren. Darüber erfolgt die Differenzierung von Zielgruppen- und Medienportalen.
Verz. |
Portal | Status |
---|---|---|
/nsoft |
Verwaltungsportal |
erf. |
/******* |
alternativ zu /nsoft kann das Verwaltungsportal unter einem anderen Verzeichnis eingerichtet werden, z.B. /vportal oder /campus21 |
optional |
/sportal |
optional | |
/aportal |
Absolventenportal |
optional |
/dportal |
Dozentenportal |
optional |
/popup |
Popup-Version |
erf. |
|
Druckversion (kann entfallen, wenn das Template die Druckausgabe mittels CSS-media realisiert) |
optional |
/studio |
Backend des Content Management Systems |
erf. |
/net | Webservices (Nsoft.His.Website) | optional |
/com | Webservices (Nsoft.Com.Website) | optional |
Die virtuellen Verzeichnisse verweisen per Webserver-Konfiguration im Normalfall auf dieselbe Softwarekopie. Hintergrund der virtuellen Verzeichnisse ist die Differenzierung des Anzeigeverhaltens der Softwarekopie in verschiedenen Zielgruppenportalen. In den verschiedenen Portalen werden unterschiedliche Navigationsstrukturen, Randbereiche und Titelbilder angewendet, die per integriertem CMS verwaltet werden können. Außerdem werden per CSS bestimmte Elemente ein- bzw. ausgeblendet. Softwareseitig können auch Konfigurationsparameter portalabhängig erstellt werden, dies dient insbesondere der Funktionsabschaltung. Weitere Information zur Bedeutung dieser Daten und Kopplung mit TYPO3 unter:
Windows + IIS
Für die Installation von PHP unter Windows gibt es verschiedenste Varianten. Außerdem ist die Einrichtung von der Windows-Version abhängig. Der Inbetriebnahme der PHP-Applikation umfasst im Wesentlichen die Einrichtung der virtuellen Verzeichnisse. Dies setzt die Installation des IIS Dienste und von PHP für Windows voraus. Im folgenden ist die Einrichtung mit IIS 7 beschrieben:
ISAPI
- Windows Server 2016
- Serverrollen > WebServer (IIS) + Konsole
- Rollendienste ... ISAPI-Erweiterungen, ISS-Verwaltungskonsole
- Windows-Funktionen (Windows 10: Windowstaste + R > optionalfeatures)
- IIS Dienste einschließlich Asp.Net und ISAPI auswählen
- IIS Manger > Default Web Site > Händlerzuordnung > mehrere Scriptzuordnungen hinzufügen (*.php und *.asp)
- Anforderungspfad: *.php
- Ausführbare Datei: php5isapi.dll lokalisieren (kann auch anders heissen: php7ts.dll)
- Name: PHP5ISAPI (bzw. PHP5ISAPI.ASP)
FastCGI:
- nts-Build von PHP verwenden
- IIS und FastCgiModule installieren
- %windir%\System32\inetsrv\iisfcgi.dll muss da sein
- Default Web Site > Modulzuordnungen für *.php FastCgiModule nach ...\php\php-cgi.exe
- php-cgi.exe erfordert vcruntime140.dll o.ä., prüfen ob di da sind
- IIS_IUSRS muss Ausführungsrechte auf ...\php haben
- Anonyme Authentifizierung
- virtuelle verzeichnisse einrichten, Verbinden als festlegen
- Nutzer muss Berechtigungen haben auf Skripte *.php
Verzeichnis einrichten
- virtuelle Verzeichnisse laut Tabelle anlegen (mindestens nsoft, studio, popup)
- Alias: nsoft
- Physikalischer Pfad: .../releases/his2010/php
- Standarddokument: index.php hinzufügen
- Berechtigungen auf Ordner php:
- Identität des PHP-Prozesses: Lesen und Schreiben*
- DefaultAppPool > Erweiterte Einstellungen
- Framework-Version: 2.0
- 32-Bit-Anwendungen aktivieren: true
- Identität überprüfen (sollte Netzwerkdienst oder ApplicationPoolIdentity sein)*
*Die Nutzeridentität des PHP-Prozesses kann in den Windows-Versionen verschieden sein. Möglich sind IUSR, Netzwerkdienst, ApplicationPoolIdentity. Die Identität ist bei Verwendung des ISAPI-Modus im DefaultAppPool eingestellt bzw. dort ablesbar oder änderbar.
Unter phpinfo (http://localhost/nsoft/phpinfo.php) wird der Pfad der Datei php.ini angezeigt. Hier ist zu prüfen, ob die Datei php.ini an der angegebenen Stelle existiert. Ggf. muss der Webserver neu gestartet werden.
Linux + Apache
Die Konfigurationsdateien sind in verschiedenen Linux-System bzw. in WAMP/WAPP-Systemen unterschiedlich organisiert. Zumeist sind es /etc/apache2/sites-available/default oder /etc/apache2/httpd.conf
In eine der Konfigurationsdatei ist zu ergänzen:
DocumentRoot /home/nsoft/releases/his2010/php
Alias /campus21 /home/nsoft/releases/his2010/php
Alias /popup /home/nsoft/releases/his2010/php
Alias /print /home/nsoft/releases/his2010/php
Alias /nsoft /home/nsoft/releases/his2010/php
<Directory /home/nsoft/releases/his2010/php>
Options FollowSymLinks MultiViews
AllowOverride None
Require all granted
#Order allow,deny
#allow from all
</Directory>
Direktes Download von Dokumenten verhindern, sofern der Upload-Bereich unter der Webroot bleibt:
<Directory /home/nsoft/releases/his2010/php/upload/doc>
Options FollowSymLinks MultiViews
AllowOverride All
Require all denied
#Order allow,deny
#allow from all
</Directory>
Blockierung direktes Download von Konfigurations- und Logdateien:
<Files ~ "(.config$|.custom$|.log$)">
Order allow,deny
Deny from all
</Files>
In /etc/apache2/mods-available/php5.conf ist folgender Abschnitt hinzufügen, damit *.asp-Dateien als PHP ausgeführt werden (Dies rührt aus der Entwicklungsgeschichte von campus21. Die Eliminierung der asp-Erweiterung ist geplant):
<FilesMatch ".+\.asp$"> SetHandler application/x-httpd-php </FilesMatch>
Restart des Apache
/etc/init.d/apache2 force-reload
Windows + Apache
Die Verwendung des Apache ist auch unter Windows anstelle des IIS möglich. Die Installation erfolgt ähnlich.
LoadFile "C:\php\libpq.dll"
Aktuell haben wir aber keine Informationen über die folgende Installation der NET-Werservices unter Windows/Apache und raten deshalb von dieser Konstellation ab.
Webservices und NET-Webapplikationen
Die ASP.NET-Webapplikation enthält nur einen Webservice, keine UI. Der Aufruf der Webservices erfolgt durch die PHP-Applikation. Der Webservice ist nach erfolgreiche Einrichtung der Webapplikation unter der URL erreichbar:
http://localhost/net/HisServer.asmx?wsdl
Der Werservice (URL oben) darf nur für localhost erreichbar sein, da in der Standardinstallation Authentifizierung/ Autorisierung vom PHP-Frontend vorgenommen wird (der Webservice nimmt keine Authentifizierung/ Autorisierung vor, siehe Webservices). Der Werservice muss in dem Fall nicht über HTTPS erreichbar sein, was gleichzeitig auch die Gesamtperformance verbessert.
Windows/IIS
- IIS-Manager:
- unter der Default Website neue Applikation hinzufügen mit Namen net
- Physikalischer Pfad: .../releases/his2010/Nsoft.His.Website
- Nach der Einrcihtung muss der Webservice-URL im Browser funktionieren:
http://localhost/net/HisServer.asmx bzw. http://localhost/net/HisServer.asmx?wsdl
- in Datei .../releases/his2010/Nsoft.His.Website/Web.config-Überprüfung der Datenbankverbindung
- Lese/Ausführ-Berechtigungen für Gruppe Benutzer auf Ordner Nsoft.His.Website
Linux/Apache
Vor der Einrichtung muss apache2, mono und mod_mono installiert werden.
/etc/mono-server2/mono-server2-hosts.conf
/etc/apache2/mods-enabled/mod_mono.conf
enthalten Konfigurationseinstellungen des mono-Moduls. Hier muss nichts geändert werden, wenn die Webapplikation unter sites-available eingerichtet wird. Die Einrichtung der Webapplikation in den Dateien unter sites-available sie etwa wie folgt aus:
/etc/apache2/sites-available/default
Folgende Einträge richten die ASP.NET-Webapplikation als virtuelles Verzeichnis /net innnerhalt eines VirtuellHost ein:
# Webservice ASP.NET
Alias /net "/home/nsoft/his2010/Nsoft.His.Website"
AddMonoApplications default "/net:/home/nsoft/his2010/Nsoft.His.Website"
<Directory /home/nsoft/his2010/Nsoft.His.Website>
Order Deny,Allow
Allow from all
SetHandler mono
<IfModule mod_dir.c>
DirectoryIndex Default.aspx
</IfModule>
</Directory>
Einrichtung der Zugriffsbeschränkung für localhost:
<Location /hsm/HisServer.asmx>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
oder
<Files ~ "\.asmx$">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Files>
Links
Wir arbeiten mit Software von http://www.campus21.de.
Verantwortlich für angezeigte Daten ist der Webdomain-Eigentümer laut Impressum.