Was bedeutet Python Unterstützung im Webshosting ?

  • Hallo


    Ich habe eben im WCP gesehen, dass dort für mein Webhosting die "Python-Unterstützung" aktiviert ist. Was bedeutet dies genau? Denn Python an sich scheint auf dem System nicht vorhanden zu sein.


    Danke


    edit:


    Die Anleitung unter WebhostingPython Webprogrammierung funktioniert nicht, da man nichts installieren kann:
    Python Webprogrammierung – netcup Wiki


    Es handelt sich um ein "Expert Light" Webhosting

  • Denn Python an sich scheint auf dem System nicht vorhanden zu sein.


    Hast Du es im WCP für diese Domain aktiviert? Über SSH ist es in der Chroot-Umgebung leider nicht verfügbar, der Webserver kann es allerdings im konfigurierten Ordner ausführen.


    Beispielscript: https://wh-nc.fnx.li/cgi-bin/test/test.py



    Bei Perl hingegen gibt es aber offenbar ein Problem, je nach Dateiendung: Perl über *.pl verwenden? (alles unter Expert Light)



    MfG Christian

  • Eine Frage noch zu dem Thema, wie kann ich den ein Python Skript laufen lassen, ohne es über den Webbrowser aufzurufen?


    ich habe z.B. die Datei jobmanager.py welche über "Geplante Aufgaben" jede halbe Stunde aufgerufen werden soll.


    Danke

  • Hallo zusammen, ich versuche auch gerade einen cronjob anzulegen, der ein python script ausführen soll. Wie ist das möglich?


    Ich bekomme folgenden Fehler:


    Shell-Script
    1. bash-4.3$ python
    2. bash: python: command not found
  • Hi mfnalex, danke für den Tipp.


    Aber als Unternehmen ist das doch keine skalierbare Lösung. In der Leistungsbeachreibung stehen Ruby, Perl und Python drin. Und da von SSH-Zugang gesprochen wird, kann man davon ausgehen, dass das alles darüber verfügbar ist. Nirgendwo in der Leistungsbeschreibung steht ein Wort von der Limitierung.


    Wie soll ich denn jetzt ein python CLI ausführen ohne dieses direkt komplett nach außen erreichbar zu machen?

  • Bei einem Webhosting kann man doch nie etwas selbst auf dem Webserver installieren, oder? Man kann doch nur Dateien hochkopieren. Ich kann ja auch nicht einfach selbst z.B. Apache nachinstallieren.

  • Aber als Unternehmen ist das doch keine skalierbare Lösung. In der Leistungsbeachreibung stehen Ruby, Perl und Python drin. Und da von SSH-Zugang gesprochen wird, kann man davon ausgehen, dass das alles darüber verfügbar ist. Nirgendwo in der Leistungsbeschreibung steht ein Wort von der Limitierung.

    Die eingesetzte Software - Parallels Plesk - bietet entsprechende Funktionalitäten an. Das ist aber nicht Netcups Hauptfokus, sondern eher ein Nice-to-have Feature was übernommen wurde. Soweit ich mitbekommen habe auch zur Unzufriedenheit Netcups.


    Insofern leider kein Eigenbau von Netcup und daher in der Funktion limitiert.

    Aus der Sicht von: Ressourcenlimitierung und Sicherheit durchaus verständlich.


    Immerhin kann man bei PHP das CLI durch eine eigene php.ini Konfiguration an all zu viel Schindluder hindern. Bei Ruby, Node.js und Python braucht es da schon ein anderes Konzept. Und da fehlt es noch an Best Practice Ansätzen, insbesondere von den Herstellern der Produkte. Diese müssen dann auch implementiert werden.


    Und für 6€ so einen Aufwand zu betreiben - insbesondere für 1% aller Webhostingkunden - ist bestenfalls ein Nullsummenspiel. Da fehlt ganz einfach die Erfahrung.

    Bei klassischem PHP Hosting kann auf einen jahrelangen Erfahrungspool zurückgegriffen werden. => In so fern: Neuland

  • vmk   H6G also andere Anbieter bieten es schon im Webhosting-Umfang an (auch als cli). Der Support ist dann natürlich etwas limitierter, sodass beispielsweise bei ruby gems nur für den eigenen "Nutzer" anstelle von systemweit installiert werden können.


    Mir geht es nur darum, dass ohne Hinweis in der Webhosting Paket-Beschreibung damit geworden wird. Ich hatte mich wegen dem python und ruby support und dem günstigen Preis für Netcup entschieden.


    Bezüglich dem Aufwand und der geringen Nachfrage: auf jeden Fall verständlich. Nur etwas schade, dass wir jetzt nicht weiterkommen und schon alles andere umgezogen habe (ist leider kein kleines Privatprojekt).



    Gibt es denn irgendwie eine Möglichkeit einem python script (externes vendor-script) parameter in folgendem Stil zu übergeben?


    Shell-Script
    1. python /path/to/piwik/misc/log-analytics/import_logs.py --url=http://analytics.example.com
    2. --idsite=1234 --enable-http-errors --enable-http-redirects --enable-static access.log


    Ich hätte gedacht, dass es vielleicht so geht:


    Code
    1. https://scripts.domain.tld/misc/log-analytics/import_logs.py?url=http://analytics.example.com&idsite=1234&enable-http-errors&enable-http-redirects&enable-static

    Aber ich bin mir nicht sicher wie ich den Pfad zum access-log dann ordentlich übergebe. Außerdem befürchte ich, dass diese web-python-Schnittstelle kein Wissen über die aktuelle Umgebung außerhalb des Domainorders hat..

  • Hast du denn Zugriff auf den Access Log?

    Das eine sind argc, argv Parameter des Betriebssystems, das andere sind HTTP Parameter. Diese werden ganz anders angesteuert und ausgelesen.

  • Folgende Ideen hätte ich:


    1. Remote per SSH das antriggern, d.h. ssh user@webhosting 'cat logfile' | import-skript.local

    2. Remote per rsync die Dateien runterkopieren und lokal verarbeiten (cron, jenkins, windows task planer)

    3. python selbst lokal installieren (und dann auf den Webserver kopieren). Stichwort virtualenv. Das macht diverse Software auch, die läuft dann mit python unabhängig vom OS.

    4. netcup bitten python + virtualenv bereitzustellen. Das dürfte das einfachste sein.


    update zu 3: Als Konzeptvorlage ab Zeile 57: https://github.com/subuk/awx-rpm/blob/master/awx.spec

  • Hast du denn Zugriff auf den Access Log?

    Das eine sind argc, argv Parameter des Betriebssystems, das andere sind HTTP Parameter. Diese werden ganz anders angesteuert und ausgelesen.

    Ja, auf die logs habe ich Zugriff



    Das ist leider auch nicht skalierbar, weil das ist ja nur ein tool von mehreren, die wir benötigen. Aber danke für den Vorschlag, vielleicht hilft das anderen weiter. Ziel ist es keine externen Abhängigkeiten zu haben.

  • Kann es sein, dass nur noch python3 installiert ist? Das wäre dann mitteils


    Code
    1. python3

    ausführbar.


    Kann mir eigentlich kaum vorstellen, wie das gehen soll, dass man python unterstützt, aber keinen python Interpreter ausführen kann.


    Gib doch mal


    Code
    1. whereis python

    in der Konsole ein, dann solltest Du aufgelistet bekommen, was alles installiert ist und wie die binaries genau heißen.

  • Cictani

    Den Webserver kann ich ja beim Shared Web-Hosting auch nicht selber ausführen, das ist ja auch gar nich nötig. Python kann über den Webserver (cgi) benutzt werden, nicht jedoch direkt in der chroot-Umgebung.

  • chroot oder halt nur im Pfad nicht drin. Früher zum Beispiel gab es noch ifconfig. Das konntest du als Benutzer ausführen, aber es lag unter /sbin ausserhalb deines PATHs (je nach Distri anders).

  • Zitat

    Gib doch mal


    whereis python

    in der Konsole ein, dann solltest Du aufgelistet bekommen, was alles installiert ist und wie die binaries genau heißen.



    Cictani, die Binary ist wie bereits gesagt schlichtweg nicht vorhanden.


    Code
    1. bash-4.3$ find / -name python3
    2. find: `/etc/ssl/ssl/private': Keine Berechtigung
    3. find: `/etc/ssl/private': Keine Berechtigung
    4. bash-4.3$