Mono bei Hostsharing: Unterschied zwischen den Versionen
Tim00 (Diskussion | Beiträge) |
Tim00 (Diskussion | Beiträge) (mono aus /usr/bin starten) |
||
(13 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 5: | Zeile 5: | ||
== Mono bei Hostsharing == | == Mono bei Hostsharing == | ||
Mono wird als Debian Paket bereitgestellt, siehe https://packages.debian.org/de/bookworm/mono-complete | |||
Mono wird | Momentan ist Mono nicht zentral auf den Hostsharing Servern installiert, damit nicht unnötig Platz belegt wird. | ||
Wir können die Mono Pakete pro Managed Server installieren. Bitte eine E-Mail an die [[Hostmaster]]. | |||
== Mono Anwendung mit xsp debuggen == | == Mono Anwendung mit xsp debuggen == | ||
Zeile 71: | Zeile 18: | ||
index.aspx | index.aspx | ||
< | <syntaxhighlight lang=html> | ||
<%@ Page Language="C#" %> | <%@ Page Language="C#" %> | ||
<html xmlns="www.w3.org/1999/xhtml"> | <html xmlns="www.w3.org/1999/xhtml"> | ||
Zeile 86: | Zeile 33: | ||
</div> | </div> | ||
</body> | </body> | ||
</ | </syntaxhighlight> | ||
Um Kompilierfehler im Browser zu sehen, diese Datei anlegen: | Um Kompilierfehler im Browser zu sehen, diese Datei anlegen: | ||
web.config | web.config | ||
< | <syntaxhighlight lang=html> | ||
<configuration> | <configuration> | ||
<system.web> | <system.web> | ||
Zeile 97: | Zeile 44: | ||
</system.web> | </system.web> | ||
</configuration> | </configuration> | ||
</ | </syntaxhighlight> | ||
Eigene IP Adresse herausfinden: | Eigene IP Adresse herausfinden: | ||
<syntaxhighlight lang=shell> | |||
ping -4 xyz00.hostsharing.net | |||
Nun kann der Server gestartet werden: | </syntaxhighlight> | ||
Nun kann der Server mit dieser IP Adresse gestartet werden: | |||
<syntaxhighlight lang=shell> | |||
xsp4 --port=8080 --address=aa.bbb.cc.ddd | |||
</syntaxhighlight> | |||
Die Seite ist nun über http://xyz00.hostsharing.net:8080 erreichbar. | Die Seite ist nun über http://xyz00.hostsharing.net:8080 erreichbar. | ||
Zeile 111: | Zeile 60: | ||
Für den produktiven Einsatz benutzt man den fastcgi Server. | Für den produktiven Einsatz benutzt man den fastcgi Server. | ||
Dazu muss man | Dazu muss man entsprechend RAM für den Webspace buchen, und beim Service um einen freien Port bitten. Wir benutzen im Beispiel den Port 4001. | ||
.config/systemd/user/mono.service: | |||
<syntaxhighlight lang=init> | |||
< | [Unit] | ||
Description=OpenPetra | |||
After=network.target | |||
[Service] | |||
Type=simple | |||
Restart=on-abort | |||
WorkingDirectory=%h/aspnetapp | |||
bin/ | ExecStart=/usr/bin/fastcgi-mono-server4 /socket=tcp:127.0.0.1:4001 /applications=/:%h/aspnetapp /appconfigfile=%h/etc/common.config --logfile=%h/var/log/monoserver.log --loglevels=Standard | ||
StandardOutput=append:%h/var/log/mono.log | |||
StandardError=inherit | |||
. | [Install] | ||
< | WantedBy=default.target | ||
</syntaxhighlight> | |||
etc/common.config: | |||
<syntaxhighlight lang=xml> | |||
<?xml version="1.0" encoding="utf-8" ?> | |||
<configuration> | |||
<system.web> | |||
<sessionState | |||
</ | mode="InProc" | ||
timeout="30" /> <!-- timeout in minutes --> | |||
<customErrors mode="Off"/> | |||
<compilation tempDirectory="/home/pacs/xyz00/users/meinuser/var/tmp" debug="true" strict="false" explicit="true"/> | |||
</system.web> | |||
<system.web.extensions> | |||
<scripting> | |||
<webServices> | |||
<jsonSerialization maxJsonLength="8000000" /> | |||
</webServices> | |||
</scripting> | |||
</system.web.extensions> | |||
</configuration> | |||
</syntaxhighlight> | |||
Es sollten die entsprechenden leeren Verzeichnisse erstellt | Es sollten die entsprechenden leeren Verzeichnisse erstellt werden: | ||
< | <syntaxhighlight lang=shell> | ||
mkdir -p $HOME/var/log | |||
mkdir -p $HOME/var/run | |||
</syntaxhighlight> | |||
</ | |||
Service aktivieren und starten: | |||
<syntaxhighlight lang=shell> | |||
< | $ systemctl --user enable mono.service --now | ||
$ | </syntaxhighlight> | ||
</ | |||
Nun muss noch dem Apache mitgeteilt werden, wie er auf den fastcgi Server zugreift: | Nun muss noch dem Apache mitgeteilt werden, wie er auf den fastcgi Server zugreift: | ||
doms/meine-domain.de/subs-ssl/www/.htaccess | doms/meine-domain.de/subs-ssl/www/.htaccess | ||
< | <syntaxhighlight lang=apache> | ||
DirectoryIndex index.aspx | DirectoryIndex index.aspx | ||
RewriteEngine on | RewriteEngine on | ||
RewriteBase / | RewriteBase / | ||
RewriteRule ^(.*) fcgi://127.0.0.1:4001/$1 [proxy,last] | RewriteRule ^(.*) fcgi://127.0.0.1:4001/$1 [proxy,last] | ||
</ | </syntaxhighlight> | ||
Dann sollte unter https://www.meinedomain.de/ die Mono Applikation erreichbar sein! | Dann sollte unter https://www.meinedomain.de/ die Mono Applikation erreichbar sein! | ||
Zeile 182: | Zeile 133: | ||
[[Kategorie:Installationsanleitungen]] | [[Kategorie:Installationsanleitungen]] | ||
[[Kategorie:Software]] | [[Kategorie:Software]] | ||
[[Kategorie:Mono]] | |||
[[Kategorie:Eigene Daemons]] | [[Kategorie:Eigene Daemons]] |
Aktuelle Version vom 3. Januar 2025, 16:42 Uhr
Allgemein
Mono [1] ist ein Open Source .NET Framework und ermöglicht es, .NET Anwendungen in C# unter Linux auszuführen.
Mono bei Hostsharing
Mono wird als Debian Paket bereitgestellt, siehe https://packages.debian.org/de/bookworm/mono-complete
Momentan ist Mono nicht zentral auf den Hostsharing Servern installiert, damit nicht unnötig Platz belegt wird.
Wir können die Mono Pakete pro Managed Server installieren. Bitte eine E-Mail an die Hostmaster.
Mono Anwendung mit xsp debuggen
Man kann eine Mono Anwendung direkt mit xsp ausführen, ohne den Umweg über den Apache. Das kann beim Debuggen nützlich sein.
Beispiel:
index.aspx
<%@ Page Language="C#" %>
<html xmlns="www.w3.org/1999/xhtml">
<%@ Import Namespace="System" %>
<head runat="server">
<title></title>
</head>
<body>
<div>
<%
Response.Write( "Hello World<br/>");
Response.Write( String.Format("Current Time is {0}<br/>", DateTime.Now));
%>
</div>
</body>
Um Kompilierfehler im Browser zu sehen, diese Datei anlegen:
web.config
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Eigene IP Adresse herausfinden:
ping -4 xyz00.hostsharing.net
Nun kann der Server mit dieser IP Adresse gestartet werden:
xsp4 --port=8080 --address=aa.bbb.cc.ddd
Die Seite ist nun über http://xyz00.hostsharing.net:8080 erreichbar.
Mono und fastcgi Server im Produktiveinsatz
Für den produktiven Einsatz benutzt man den fastcgi Server.
Dazu muss man entsprechend RAM für den Webspace buchen, und beim Service um einen freien Port bitten. Wir benutzen im Beispiel den Port 4001.
.config/systemd/user/mono.service:
[Unit]
Description=OpenPetra
After=network.target
[Service]
Type=simple
Restart=on-abort
WorkingDirectory=%h/aspnetapp
ExecStart=/usr/bin/fastcgi-mono-server4 /socket=tcp:127.0.0.1:4001 /applications=/:%h/aspnetapp /appconfigfile=%h/etc/common.config --logfile=%h/var/log/monoserver.log --loglevels=Standard
StandardOutput=append:%h/var/log/mono.log
StandardError=inherit
[Install]
WantedBy=default.target
etc/common.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<sessionState
mode="InProc"
timeout="30" /> <!-- timeout in minutes -->
<customErrors mode="Off"/>
<compilation tempDirectory="/home/pacs/xyz00/users/meinuser/var/tmp" debug="true" strict="false" explicit="true"/>
</system.web>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="8000000" />
</webServices>
</scripting>
</system.web.extensions>
</configuration>
Es sollten die entsprechenden leeren Verzeichnisse erstellt werden:
mkdir -p $HOME/var/log
mkdir -p $HOME/var/run
Service aktivieren und starten:
$ systemctl --user enable mono.service --now
Nun muss noch dem Apache mitgeteilt werden, wie er auf den fastcgi Server zugreift:
doms/meine-domain.de/subs-ssl/www/.htaccess
DirectoryIndex index.aspx
RewriteEngine on
RewriteBase /
RewriteRule ^(.*) fcgi://127.0.0.1:4001/$1 [proxy,last]
Dann sollte unter https://www.meinedomain.de/ die Mono Applikation erreichbar sein!