PureBasic als Ersatz für PHP / Perl

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Beitrag von stbi »

AND51 hat geschrieben:> schwerer Verstoß gegen das Compilerschutzgesetz
Das war doch nur 'n Joke, oder?
Laut Lizenz darf ich "PureBasic auf jedem mir zur Verfügung stehenden Computer nutzen".
:mrgreen:

/opt/pb war nur ein Beispiel. Unter Linux/Unix packt man alles was nicht zum OS gehört in bzw. unter das Verzeichnis /opt.

Den Apache-User kriegst Du mit

Code: Alles auswählen

ps -ef
raus.

Mach Dein PB-Verzeichnis mit chmod 755, dann können alle User auf dem Rechner PB nutzen, aber nicht verändern, auch der wwwrun. Wenn der Apache ein CGI aufruft, dann müsste das CGI auch mit den wwwrun-Rechten laufen.
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Hallo stbi,

Und wieder was gelernt. Das mit /opt wusste ich noch nicht.
Ich hatte doch erzählt, PB liegt bei mir in /purebasic. Scheinbar kann ein CGI Skript nicht bzw. nicht immer darauf zugreifen, auch wenn ich 777-Rechte vergebe.
Jetzt ist PB bei mir im Verzeichnis /srv/www/vhosts/and51.de/httpdocs/purebasic gelandet. Das ist eigentlich unschön, ich will es ja nicht zum Download anbieten. Aber das CGI Skript kann nicht auf ein anderes Verzeichnis zugreifen, oder ich mach was falsch. Deswegen schütze ich das noch komplett via .htaccess.
Kann ein CGI Skript aus /srv/www/vhosts/and51.de/cgi-bin denn nicht auf andere Verzeichnisse außerhalb von 'vhosts' zugreifen?
Ich habe auch einen SymLink erstellt: /pb/and51. Der zeigt auf das PB Verzeichnis, sodass ich nicht immer einen so langen Pfad angeben muss. Das funktioniert.

Habe mal ps -ef ausgeführt und wie ich mir dachte hat Apache diverse "http-prefork" Dienste laufen, als "wwwrun". Die CGI-Skripte, z. B. "test.cgi" erscheinen auch im Taskmanager (top), aber unter dem Benutzer "and51".
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Beitrag von stbi »

Guck Dir mal Deine vhost-Konfiguration vom Apache genauer an, da sollte eigentlich alles wesentliche drinstehen bzw. da sollte man das entsprechend hinfummeln können. Schau mal nach dem Parameter ScriptAlias bzw. erweitere den mal um Dein /purebasic-Verzeichnis.
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Hallo stbi,

Vielen Dank für den Tipp.

Alias ist aber laut Apache-Dokumentation ein Befehl um URLs auf das lokale Dateisystem abzubilden ("mappen"). ScriptAlias das gleiche, bloß, dass die im Verzeichnis enthaltenen Dateien zusätzlich ausgeführt/interpretiert werden sollen.

Die Anweisung

Code: Alles auswählen

ScriptAlias     /cgi-bin/     /srv/www/vhosts/and51.de/cgi-bin
bedeutet also, dass alle http://www.and51.de/cgi-bin — Aufrufe auf das entsprechende Verzeichnis in .../vhosts/and51.de umgeleitet werden sollen.

Das dürfte also nicht der richtige Weg sein, um lokale Pfade umzuleiten, wie gesagt, der soll angeblich nur URLs umleiten. Werde es aber trotzdem probieren, da ich denselben Gedanken hatte und da du ihn auch hast, scheint das ja so abwegig nicht zu sein.



Übrigens: Eine Webseite zu kompilieren dauert auf meinem Server im Schnitt 200 ms (vorher wird die .pb-Datei kopiert und die Kopie dem Kompiler übergeben, dasbraucht zusätzlich Zeit). Meinst du, das ist für den Anfang akzeptabel?
Weil du von der ganzen Idee ja nicht so überzeugt warst/bist, deswegen würd ich gern deine Meinung hören.

Wie gesagt, habe ich vor, diesen Prozess zu beschleunigen: Kompiler mit dem /standby-Parameter starten und Dateien nur kompilieren, wenn sie sich seit der letzten Kompilation verändert haben.
Was sagst du dazu?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Beitrag von stbi »

AND51 hat geschrieben:Wie gesagt, habe ich vor, diesen Prozess zu beschleunigen: Kompiler mit dem /standby-Parameter starten und Dateien nur kompilieren, wenn sie sich seit der letzten Kompilation verändert haben.
Genau, Sinn eines Compilers ist es ja, dass man nur einmal kompilieren muss. 200ms Verzögerung durch Kompilation sind sicherlich akzeptabel - im Einzelfall. Lass da mal ein paar Abrufe gleichzeitig kommen, dann gehen Dir CPU-Last und Speicherbedarf durch die Decke und die Antwortzeit in den Keller. Du musst bedenken, dass ein Compiler immer ALLES kompiliert, während ein Interpreter immer nur die auszuführenden Zeilen abarbeitet und den Rest ignoriert.
Ohne die Kompilierung hast Du eben keine zusätzliche Last und auch ansonsten nur 1 ms Antwortzeit :)

Wegen dem ScriptAlias war meine Idee eben, dass Du Dein cgi-bin auf Dein PB-Verzeichnis umbiegst. Ich würde aber eher nur die Kompilate ins www-Verzeichnis und den Quellcode und PB z.B. im /home oder unter /opt ablegen. Ersteres, falls Du mehrere "Kunden" auf Deinem Server hast.
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
Antworten