Sunday, May 21, 2017

Lighttpd Cgi Binary Optionen

Sicherheit, Geschwindigkeit, Compliance und Flexibilität - all dies beschreibt starkes, was die Effizienz eines Webservers schnell neu definiert, wie es für Hochleistungsumgebungen entworfen und optimiert ist. Mit einem kleinen Speicherbedarf im Vergleich zu anderen Web-Servern ist eine effektive Verwaltung der Cpu-load und erweiterte Feature-Set FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting und vieles mehr ist die perfekte Lösung für jeden Server, der Belastungsprobleme leidet Und am besten ist es Open Source lizenziert unter der überarbeiteten BSD-Lizenz . Befugt mehrere populäre Web 2 0-Standorte Die Hochgeschwindigkeits-io-Infrastruktur ermöglicht es ihnen, mehrmals besser mit der gleichen Hardware zu skalieren als mit alternativen Web-Servern. Dieser schnelle Webserver und sein Entwicklerteam erstellen einen Web-Server mit den Bedürfnissen der Zukunft Web im mind. Faster FastCGIET trifft modmailbox. Its ereignisgesteuerte Architektur ist für eine große Anzahl von parallelen Verbindungen optimiert, die für hochleistungsfähige AJAX-Anwendungen wichtig sind. Januar 14, 2017.Important changes. bug behebt Bug-fix-only Release. Ich habe einen dedizierten Server mit 1GB s dedizierten, 4GB RAM und 4cpus Ich habe statische Dateien zum Download von 300mb bis 900mb Ich testete über Apache, Nginx und. Apache macht zu viele Bedrohungen und nach 200 Verbindungen geht es sehr hoch so apache Es ist kein KEIN GO. Nginx nach 100 Anschlüssen geht es sehr hoch, also ist es auch kein. So weit ist sehr gut wie ein Single-Thread-Server Mit 500 gleichzeitigen Verbindungen bleibt die Last bei 0 90 - 1 10 sehr gut, aber ich bin vor einem Download-Speed-Problem, es geht langsamer, auch wenn ich 1GBps dedizierten Port habe, sehe ich die Iptraf und mit 500 gleichzeitigen Verbindungen geht es nicht mehr als 250000 KB s Mit Apache und Nginx manchmal ging es auf 700000 KB s die Upstream in den Server Ich wechselte zwischen sendfile und writev in der config und es hat das gleiche Ergebnis. Ich nicht mit Jeder php oder schnell-cgi, gerade gerade Download direkt auf die Datei, zum Beispiel und es lädt die Datei. Ich werde einige Informationen hier für Sie zu helfen, mir herauszufinden, out out. Actual top commandstat - an grep 80 wc - l. What Sollte ich ändern, um die Clients schneller herunterzuladen, sagten sie manchmal, dass es langsamer als 10 KB herunterlädt. Das Problem hier ist nicht dein Web-Server, das ist das wirklich nicht als Datei Download-Protokoll Es ist das Hyper Text Transport Protocol, Und viele der Entscheidungen um den Fokus auf den Hyperlinked Tex Es werden erwartet, dass die Dateigrößen klein sind, unter ein paar Dutzend Kb und sicherlich unter einem Mb. Die Web-Infrastruktur nutzt diese Tatsache in einer Menge ihrer Ansätze zum Daten-Caching, etc. Statt der Verwendung für etwas, das es wirklich nicht entworfen ist Denn ich würde empfehlen, bei der Verwendung eines anderen Transport-Mechanismus. FTP File Transfer Protocol FTP wurde speziell entwickelt, um Dateien von beliebiger Größe zu übertragen, und doesn t machen die gleichen Annahmen wie Software Wenn alles, was Sie tun, ist statische Downloads, Ihre Web-Seite HTML Kann eine Verbindung zu den statischen Dateien mit einem ftp-Link herstellen und einen FTP-Server konfigurieren, um anonymen Download zu erlauben, ist in der Regel einfach. Überprüfen Sie Ihre FTP-Server s docs für Details Browser seit IE6 FF2 haben grundlegende FTP nativ unterstützt - der durchschnittliche Benutzer hat keinen anderen Workflow als Üblich Dies ist wahrscheinlich nicht der beste Ansatz, da FTP schon lange entworfen wurde und wie Perry erwähnt hat, lange bevor wir ein halbes Gig files. CDN Mit einem Content Delivery Network wie Amazon s S3 doesn t technisch umgehen mit, aber es lässt Sie sich keine Sorgen über Ihre Benutzer überladen Ihren Server wie Sie re seeing. BitTorrent Wenn Ihre Benutzer sind ein bisschen mehr tech savy, betrachten Sie Ihren Server bis zu samen die statische Datei auf unbestimmte Zeit, dann Veröffentlichen Magnet-Links auf Ihrer Website Im schlimmsten Fall wird ein einzelner Benutzer einen direkten Download von Ihrem Server erleben, mit einem Protokoll, das tatsächlich weiß, wie man große Dateien behandeln Im besten Fall werden Ihre Hunderte von Benutzern beide Blutegel und Samen einander, Drastisch reduzieren Sie Ihre Server s Last Ja, dies erforderte Ihre Benutzer zu wissen, wie zu laufen und zu konfigurieren bittorrent, was wahrscheinlich nicht der Fall ist, aber es ist ein interessantes Paradigma für Datei-Downloads nicht weniger. answered Mai 5 12 um 3 09.I Nehmen Sie das Problem mit der Anweisung FTP wurde speziell entworfen, um Dateien zu übertragen, die größer sind als das, was behandelt werden kann, da FTP lange entworfen wurde, bevor es irgendwelche 300mb - 900mb Dateien gab und lange bevor es existierte. Vielleicht hat der Anrufer etwas gemeint Ein bisschen anders, aber wie es steht Ich denke, die Antwort ist irreführend Das OP-Problem ist wahrscheinlich seine Konfiguration und hat nichts mit dem Protokoll im Einsatz Perry 16. Juni 12 um 20 04. Perry Du bist absolut richtig, meine Charakterisierung von FTP ist Falsch, und je nach Konfiguration könnte es auch ähnliche Probleme mit IO haben Ich hatte meine Antwort beabsichtigt, um eine Bestätigung von BitTorrent Für die Bereitstellung von großen Dateien, ist der schlimmste Transport-Mechanismus zu verwenden Wir als IT-Profis sollten in Richtung mit mehr geeigneten Techniken zu bewegen Für die Lösung von Problemen David Souther Jun 17 12 bei 13 34. 1 4 auf Unix-Systemen. Dieser Abschnitt enthält Hinweise und Hinweise, die spezifisch für 1 4 Installationen von PHP auf Unix-Systemen sind. Bitte verwenden Sie den Trac zu lernen, wie man richtig installieren, bevor fortsetzen. Fastcgi ist Das bevorzugte SAPI zum Verbinden von PHP und Fastcgi ist in PHP-CGi in PHP 5 3 automatisch aktiviert, aber für ältere Versionen konfigurieren Sie PHP mit --enable-fastcgi Um zu bestätigen, dass PHP schnellcgi aktiviert hat, sollte php - v Enthalten PHP 5 2 5 cgi-fcgi Vor PHP 5 2 3, Fastcgi wurde auf der PHP-Binärdatei aktiviert Es gab keine PHP-cgi. Letting Spawn PHP-Prozesse. Um zu konfigurieren, um Php und Spawn Fastcgi Prozesse zu verbinden, bearbeiten Sockets sind bevorzugt zu verbinden Zu Fastcgi-Prozessen auf dem lokalen System. Example 1 Partial. Die Bin-Pfad-Direktion ermöglicht es, Fastcgi-Prozesse dynamisch spawn PHP wird Kinder nach der PHPFCGICHILDREN Umgebungsvariable Die Bin-Environment-Richtlinie setzt die Umgebung für die hervorgebrachten Prozesse PHP wird ein Kind zu töten Prozess nach der Anzahl der von PHPFCGIMAXREQUESTS festgelegten Anfragen Die Richtlinien Min-Procs und Max-Procs sollten in der Regel mit PHP PHP verwaltet werden PHP verwaltet seine eigenen Kinder und Opcode-Caches wie APC wird nur bei Kindern teilnehmen, die von PHP verwaltet werden Wenn Min-Procs gesetzt ist Auf etwas größer als 1, wird die Gesamtzahl der PHP-Responder multipliziert werden PHPFCGICHILDREN 2 min-procs 16 Kinder gibt 32 Responder. Sperren mit spawn-fcgi. Bietet ein Programm namens spawn-fcgi, um den Prozess des Laichens von Fastcgi-Prozessen zu erleichtern. Spanelnde php-cgi. Es ist möglich, Prozesse ohne spawn-fcgi zu erzeugen, obwohl ein bisschen schweres Heben erforderlich ist. Einstellung der PHPFCGICHILDREN-Umgebung var steuert, wie viele Kinder PHP wird spawn, um eingehende Anfragen zu behandeln Einstellung PHPFCGIMAXREQUESTS bestimmt, wie lange in Anfragen jedes Kind leben wird Hier ist ein einfaches bash Skript zu helfen Spawn PHP Responder. Example 2 Spawning FastCGI Responders. - Start - bin bash. Usr bin spawn-fcgi - s - f usr bin php-cgi - c - u - g - C 4 - P - F 12 - Ende. 1 5 - Konfig - Start. , Stats MIRRORLANGUAGE kr, MIRRORSTATS 1. Round-Robin aktivieren Fastcgi 16 - End. 1 4 Unix Unix 1 4 PHP. Trac. PHP SAPI schnellcgi fastcgi PHP 5 3 php-cgi php konfigurieren --enable-fastcgi PHP schnellcgi php - v PHP 5 2 5 cgi-fcgi PHP 5 2 3 php-cgi php fastcgi. Php Php fastcgi fastcgi. bin-Pfad schnellcgi PHP PHPFCGICHILDREN bin-environment PHPFCGIMAXREQUESTS PHP töten Min-procs max-procs PHP PHP APC opcode PHP min-procs 1 PHP PHPFCGICHILDREN 2 min-procs 16 32.spawn-fcgi. Spawn-fcgi fastcgi. spawn-fcgi PHPFCGICHILDREN PHP PHPFCGIMAXREQUESTS php bash .2 FastCGI .-- Start - bin bash. Usr bin spawn-fcgi - s - f usr bin php-cgi - c - u - g - C 4 - P - F 12 - Ende. 1 5 - Konfig - Start. , Stats MIRRORLANGUAGE kr, MIRRORSTATS 1. Round-Robin aktivieren Fastcgi 16 - End. Apache Tutorial Dynamic Content mit CGI. Die CGI Common Gateway Interface definiert einen Weg für einen Web-Server, um mit externen Content-Generating-Programme, die oft verwiesen werden interagieren Als CGI-Programme oder CGI-Skripte Es ist die einfachste und häufigste Möglichkeit, dynamische Inhalte auf Ihre Website zu setzen. Dieses Dokument wird eine Einführung in die Einrichtung von CGI auf Ihrem Apache Webserver und beim Einstieg von CGI-Programmen Um Ihre CGI-Programme ordnungsgemäß zu arbeiten, müssen Sie Apache konfiguriert haben, um CGI-Ausführung zu ermöglichen. Es gibt mehrere Möglichkeiten, dies zu tun. Hinweis Wenn Apache mit freigegebener Modulunterstützung gebaut wurde, müssen Sie sicherstellen, dass das Modul in Ihrem Sie geladen ist Muss sicherstellen, dass die LoadModule-Direktive nicht kommentiert wurde. Eine korrekt konfigurierte Direktive kann wie folgt aussehen Auf Windows oder mit einem nicht-threaded MPM wie Prefork, kann eine korrekt konfigurierte Anweisung wie folgt aussehen RiptAlias-Direktive teilt Apache mit, dass ein bestimmtes Verzeichnis für CGI-Programme beiseite gelegt wird Apache wird davon ausgehen, dass jede Datei in diesem Verzeichnis ein CGI-Programm ist und wird versuchen, es auszuführen, wenn diese bestimmte Ressource von einem Client angefordert wird. Die ScriptAlias-Direktive sieht aus wie. ScriptAlias ​​cgi-bin usr lokales apache2 cgi-bin. Das gezeigte Beispiel stammt aus deiner Standard-Konfigurationsdatei, wenn du Apache im Standard-Speicherort installiert hast. Die ScriptAlias-Direktive ähnelt der Alias-Direktive, die ein URL-Präfix definiert, das zugeordnet werden soll Ein bestimmtes Verzeichnis Alias ​​und ScriptAlias ​​werden normalerweise für Verzeichnisse verwendet, die sich außerhalb des DocumentRoot-Verzeichnisses befinden. Der Unterschied zwischen Alias ​​und ScriptAlias ​​besteht darin, dass ScriptAlias ​​die zusätzliche Bedeutung hat, dass alles unter diesem URL-Präfix als ein CGI-Programm betrachtet wird. So sagt das Beispiel oben Apache Dass jede Anforderung für eine Ressource, die mit cgi-bin beginnt, aus dem Verzeichnis usr local apache2 cgi-bin serviert werden sollte und sollte trea sein Als CGI-Programm. Zum Beispiel, wenn die URL angefordert wird, wird Apache versuchen, die Datei auszuführen und die Ausgabe zurückzugeben. Natürlich muss die Datei existieren und ausführbar sein und die Ausgabe auf eine bestimmte Weise oder Apache zurückgeben Wird eine Fehlermeldung zurückgeben. CGI-Programme sind oft auf ScriptAlias ​​ed Verzeichnisse aus Sicherheitsgründen beschränkt Auf diese Weise können Administratoren fest kontrollieren, wer erlaubt ist, CGI-Programme zu verwenden. Wenn jedoch die entsprechenden Sicherheitsvorkehrungen getroffen werden, gibt es keinen Grund, warum CGI-Programme Kann nicht aus beliebigen Verzeichnissen ausgeführt werden Zum Beispiel können Sie möchten, dass Benutzer Webinhalte in ihren Home-Verzeichnissen mit der UserDir-Direktive haben Wenn sie ihre eigenen CGI-Programme haben wollen, aber keinen Zugriff auf das Haupt-Cgi-Bin-Verzeichnis haben Müssen in der Lage sein, CGI-Programme an anderer Stelle auszuführen. Es gibt zwei Schritte, um die CGI-Ausführung in einem beliebigen Verzeichnis zu ermöglichen. Zuerst muss der Cgi-Script-Handler mit der AddHandler - oder SetHandler-Direktive Second ExecCG aktiviert werden Ich muss in der Optionsrichtlinie angegeben werden. Sie können die Optionsrichtlinie explizit in Ihrer Hauptserver-Konfigurationsdatei verwenden, um festzulegen, dass die CGI-Ausführung in einem bestimmten Verzeichnis erlaubt wurde. Directory usr local apache2 htdocs somedir Optionen ExecCGI Directory. Die obige Anweisung sagt an Apache, um die Ausführung von CGI-Dateien zu ermöglichen Sie müssen auch dem Server mitteilen, welche Dateien CGI-Dateien sind. Die folgende AddHandler-Direktive teilt dem Server mit, dass er alle Dateien mit der cgi - oder pl-Erweiterung als CGI-Programme behandeln soll. AddHandler cgi-script. Das Tutorial zeigt an Wie man CGI-Programme aktivieren kann, wenn du keinen Zugriff hast. Um CGI-Programmausführung für jede Datei zu erlauben, die in Benutzerverzeichnissen endet, kannst du die folgende Konfiguration verwenden. Directory home publichtml Optionen ExecCGI AddHandler cgi-script Directory. Wenn du einen benennen willst Cgi-bin-Unterverzeichnis eines Benutzers s-Verzeichnis, wo alles als CGI-Programm behandelt wird, können Sie die folgenden. Directory home publichtml cgi-bin Optionen verwenden ExecCGI SetHandler cgi-script Directory. Es gibt zwei Hauptunterschiede zwischen regulärer Programmierung und CGI-Programmierung. Zuerst müssen alle Ausgaben aus deinem CGI-Programm einem MIME-Typ-Header vorangestellt werden. Dies ist Header, der dem Client mitteilt, welche Art von Inhalt es ist Die meisten der Zeit, wird dies aussehen. Zweitlich muss Ihre Ausgabe in HTML sein, oder ein anderes Format, dass ein Browser in der Lage sein wird, die meisten der Zeit, das wird HTML, aber gelegentlich können Sie eine CGI schreiben Programm, das ein Gif-Bild ausgibt, oder andere Nicht-HTML-Inhalte. Abgesehen von diesen beiden Sachen wird das Schreiben eines CGI-Programms viel wie jedes andere Programm aussehen, das Sie schreiben könnten. Das folgende ist ein Beispiel-CGI-Programm, das eine Zeile zu Ihrem druckt Browser Geben Sie folgendes ein, speichern Sie es in eine Datei und rufen Sie es in Ihr Cgi-bin Verzeichnis ein. Usr bin perl print Content-type text html nn print Hallo, World. Even, wenn du nicht mit Perl vertraut bist, solltest du sehen können, was hier passiert ist. Die erste Zeile erzählt Apache oder was auch immer Shell passiert? Programm kann durch Einspeisung der Datei an den Dolmetscher, der an der Stelle gefunden wird, abgebrochen werden. Die zweite Zeile druckt die von uns gesprochene Inhaltstyp-Deklaration, gefolgt von zwei Wagen-Return-Newline-Paaren. Dies legt eine Leerzeile nach dem Header fest, um anzuzeigen Das Ende der Header und der Anfang des Körpers Die dritte Zeile druckt die Zeichenfolge Hallo, Welt Und das ist das Ende von it. If Sie Ihren Lieblings-Browser öffnen und sagen, um die Adresse zu bekommen. or wo immer Sie Ihre Datei, Du wirst die eine Zeile sehen Hallo, die Welt erscheint in deinem Browser-Fenster Es ist nicht sehr aufregend, aber sobald du das kommst, wirst du eine gute Chance haben, dir gerade etwas zu geben. Es gibt vier grundlegende Dinge, die du sehen kannst Ihr Browser, wenn Sie versuchen zuzugreifen S Ihr CGI-Programm aus dem Web. Die Ausgabe Ihres CGI-Programms Great Das bedeutet, dass alles gut funktioniert Wenn die Ausgabe korrekt ist, aber der Browser nicht ordnungsgemäß verarbeitet, stellen Sie sicher, dass Sie den richtigen Content-Type in Ihrem CGI-Programm haben Quellcode Ihres CGI-Programms oder eine POST-Methode Nicht zugelassene Nachricht Das bedeutet, dass Sie Apache nicht ordnungsgemäß konfiguriert haben, um Ihr CGI-Programm zu verarbeiten. Lesen Sie den Abschnitt über die Konfiguration von Apache und versuchen Sie zu finden, was Sie verpasst haben Eine Nachricht, die mit Verboten beginnt Das bedeutet, dass es gibt Ein Berechtigungsproblem Überprüfen Sie das Apache-Fehlerprotokoll und den Abschnitt unten auf Dateiberechtigungen Eine Meldung, die den internen Serverfehler sagt Wenn Sie das Apache-Fehlerprotokoll überprüfen, werden Sie wahrscheinlich feststellen, dass es vorzeitiges Ende der Skriptheader bedeutet, möglicherweise zusammen mit einer Fehlermeldung, die von Ihrem erzeugt wird CGI-Programm In diesem Fall möchten Sie jeden der folgenden Abschnitte überprüfen, um zu sehen, was Sie verhindern könnte, dass Ihr CGI-Programm die richtigen Header aussendet. Beachten Sie, dass die s Erver läuft nicht wie du das ist, wenn der Server startet, läuft es mit den Berechtigungen eines unprivilegierten Benutzers - in der Regel niemand oder www - und so braucht es zusätzliche Berechtigungen, um Dateien auszuführen, die dir gehören. In der Regel ist der Weg Um eine Datei zu geben, die genügend Berechtigungen hat, um von niemandem ausgeführt zu werden, ist, jedem die Vollständigkeitsberechtigung für die Datei zu geben. Auch wenn Ihr Programm irgendwelche anderen Dateien liest oder schreibt, müssen diese Dateien die richtigen Berechtigungen haben, um dies zu erlauben. Wenn du ein Programm von deiner Befehlszeile aus hast, hast du bestimmte Informationen, die an die Shell weitergegeben werden, ohne dass du darüber nachdenkst. Zum Beispiel hast du einen PATH, der die Shell sagt, wo sie nach Dateien suchen kann, die du verweist. Wenn ein Programm läuft Durch den Webserver als CGI-Programm kann es nicht das gleiche PATH haben. Alle Programme, die du in deinem CGI-Programm wie zB sendmail aufrufst, müssen zB durch einen vollständigen Pfad angegeben werden, damit die Shell sie finden kann, wenn sie versucht wird Führen Sie Ihre CGI pr Ogram. A eine gemeinsame Manifestation von diesem ist der Weg zum Skript-Interpreter oft perl in der ersten Zeile Ihres CGI-Programm angezeigt, die so aussehen wird. Stellen Sie sicher, dass dies in der Tat ist der Weg zum Dolmetscher. Wenn Bearbeitung CGI-Skripte auf Windows, End-of-Line-Zeichen können an den Interpreter-Pfad angehängt werden Stellen Sie sicher, dass Dateien dann im ASCII-Modus auf den Server übertragen werden. Wenn dies nicht der Fall ist, kann das Kommando keine Warnungen aus dem Betriebssystem finden, da das nicht erkannte End-of - Line-Zeichen, das als Teil des Interpreter-Dateinamens interpretiert wird. Wenn Ihr CGI-Programm von nicht standardmäßigen Umgebungsvariablen abhängt, müssen Sie sicherstellen, dass diese Variablen von Apache übergeben werden. Wenn Sie die Header aus der Umgebung verpassen, stellen Sie sicher, dass sie entsprechend formatiert sind Zu RFC 2616 Abschnitt 4 2 Header-Namen müssen mit einem Buchstaben beginnen, gefolgt nur durch Buchstaben, Zahlen oder Bindestrich Jeder Header, der diese Regel verletzt, wird stillgelegt. Die meisten der Zeit, wenn ein CGI-Programm ausfällt, ist es, weil o Fa Problem mit dem Programm selbst Dies ist besonders wahr, sobald Sie den Hang dieses CGI Zeug bekommen, und nicht mehr machen die oben zwei Fehler Das erste, was zu tun ist, um sicherzustellen, dass Ihr Programm läuft von der Kommandozeile vor dem Testen über die Webserver Zum Beispiel try. cd usr local apache2 cgi-bin. Rufen Sie nicht den Perl-Interpreter Die Shell und Apache sollten den Interpreter mit den Pfadinformationen in der ersten Zeile des Skripts finden. Das erste, was Sie sehen, geschrieben von Ihrem Programm sollte ein Satz von Headern, einschließlich der Content-Type gefolgt von einem Leerzeile Wenn Sie irgendetwas anderes sehen, gibt Apache das vorzeitige Ende des Skriptheaderfehlers zurück, wenn Sie versuchen, es durch den Server zu führen Siehe Schreiben eines CGI-Programms oben für weitere Details. Die Fehlerprotokolle sind Ihr Freund Alles, was schief geht, erzeugt Nachricht in Das Fehlerprotokoll Sie sollten immer zuerst dort aussehen Wenn der Ort, an dem Sie Hosting Ihre Website nicht zulassen, dass Sie Zugriff auf das Fehlerprotokoll, sollten Sie wahrscheinlich Host Ihre Website irgendwo anders Lernen Sie die Fehlerprotokolle zu lesen, und Sie werden das fast finden Alle Ihre Probleme werden schnell erkannt und schnell gelöst. Das Suexec-Support-Programm ermöglicht es, CGI-Programme unter verschiedenen Benutzerberechtigungen auszuführen, je nachdem, welches virtuelle Host - oder Benutzer-Home-Verzeichnis sie befinden In Suexec hat sehr strenge Berechtigungsprüfung, und jeder Fehler in dieser Überprüfung wird dazu führen, dass Ihre CGI-Programme fehlgeschlagen mit vorzeitigen Ende der Skript-Header. Um zu überprüfen, ob Sie mit suexec verwenden, führen Sie apachectl - V und überprüfen Sie den Standort von SUEXECBIN Wenn Apache findet Eine suexec binäre dort beim start, suexec wird aktiviert. Unterfolg verstehst du suexec, du solltest es nicht verwenden Um suexec zu deaktivieren, einfach entfernen oder umbenennen die suexec binary mit SUEXECBIN und dann den Server neu starten Wenn nach dem Lesen über suexec Sie wollen es immer noch verwenden, dann führen Sie suexec - V, um den Speicherort der suexec-Protokolldatei zu finden, und verwenden Sie diese Protokolldatei, um zu finden, welche Richtlinie Sie verletzen. Wenn Sie in CGI-Programmierung weiter fortgeschritten werden, wird es nützlich, um zu verstehen Mehr über das, was hinter den Kulissen geschieht Speziell, wie der Browser und der Server miteinander kommunizieren Denn obwohl es alles sehr gut ist, um ein Programm zu schreiben, das Hallo, Welt druckt, ist es nicht besonders nützlich. Environ Variablen sind Werte, die um Sie herum schwimmen, wie Sie Ihren Computer verwenden Sie sind nützliche Dinge wie Ihr Weg, wo der Computer sucht nach der tatsächlichen Datei, die einen Befehl implementiert, wenn Sie es eingeben, Ihren Benutzernamen, Ihren Terminal-Typ und so weiter Für eine vollständige Liste Von Ihren normalen, alltäglichen Umgebungsvariablen, geben Sie env an einer Eingabeaufforderung ein. Während der CGI-Transaktion legen der Server und der Browser auch Umgebungsvariablen fest, damit sie miteinander kommunizieren können. Das sind Dinge wie der Browser Typ Netscape, IE, Lynx, der Servertyp Apache, IIS, WebSite, der Name des CGI-Programms, das ausgeführt wird, und so weiter. Diese Variablen stehen dem CGI-Programmierer zur Verfügung und sind die Hälfte der Geschichte der Client-Server-Kommunikation. Die vollständige Liste Der erforderlichen Variablen ist bei Common Gateway Interface RFC. This einfache Perl CGI-Programm zeigt alle Umgebungsvariablen, die übergeben werden Zwei ähnliche Programme sind in der cgi-bin Verzeichnis der Apache Bezirk enthalten Ibution Beachten Sie, dass einige Variablen erforderlich sind, während andere optional sind, so dass Sie möglicherweise einige Variablen aufgeführt haben, die nicht in der offiziellen Liste aufgeführt sind. Darüber hinaus bietet Apache viele verschiedene Möglichkeiten, um Ihre eigenen Umgebungsvariablen zu den grundlegenden, die standardmäßig zur Verfügung gestellt werden, hinzuzufügen . Usr bin perl print Inhaltstyp Text html nn foreach Tasten Tasten ENV Drucktaste - ENV br. Weitere Kommunikation zwischen dem Server und dem Client erfolgt über Standard-Eingang STDIN und Standardausgabe STDOUT Im normalen Alltagskontext bedeutet STDIN die Tastatur oder a Datei, die ein Programm gegeben wird, um zu handeln, und STDOUT bedeutet in der Regel die Konsole oder Bildschirm. Wenn Sie POST ein Web-Formular zu einem CGI-Programm, werden die Daten in diesem Formular in ein spezielles Format gebündelt und wird an Ihr CGI-Programm über geliefert STDIN Das Programm kann dann diese Daten verarbeiten, als ob es von der Tastatur oder von einer Datei kommen würde. Das spezielle Format ist sehr einfach Ein Feldname und sein Wert werden mit einem Gleichheitszeichen verbunden und Wertepaare werden miteinander verbunden Mit einem kaufmännischen Zeichen Unbequeme Charaktere wie Räume, Bekenntnisse und Gleiche Zeichen, werden in ihr Hex-Äquivalent umgewandelt, so dass sie nicht gummieren die Werke Die ganze Daten-String könnte so etwas aussehen. Sie sehen manchmal auch diese Art von String-App Endete auf eine URL Wenn das fertig ist, setzt der Server diese Zeichenfolge in die Umgebungsvariable namens QUERYSTRING ein. Das heißt eine GET-Anfrage. Ihr HTML-Formular gibt an, ob ein GET oder ein POST verwendet wird, um die Daten zu liefern, indem das METHOD-Attribut in die FORM tag. Your Programm ist dann verantwortlich für die Aufteilung dieser Zeichenfolge in nützliche Informationen Glücklicherweise gibt es Bibliotheken und Module zur Verfügung, um Ihnen zu helfen, diese Daten zu verarbeiten, sowie behandeln andere der Aspekte Ihres CGI-Programm. Wenn Sie schreiben CGI-Programme, Sollten Sie eine Codebibliothek oder ein Modul verwenden, um die meisten grunzenden Arbeiten für Sie zu tun. Dies führt zu weniger Fehlern und schnellerer Entwicklung. Wenn Sie CGI-Programme in Perl schreiben, sind Module auf CPAN verfügbar. Das beliebteste Modul für diese Zweck ist, können Sie auch betrachten CGI Lite, die eine minimale Reihe von Funktionalität implementiert, die alles, was Sie brauchen, in den meisten Programmen. Wenn Sie schreiben CGI-Programme in C, gibt es eine Vielzahl von Optionen Eines davon ist die CGIC-Bibliothek Y, from. Es gibt eine große Anzahl von CGI-Ressourcen im Web Die Liste aus der HTML Writers Guild ist eine großartige Antwort auf Ihre Fragen Sie können mehr herausfinden. Die aktuelle CGI-Spezifikation ist im Common Gateway Interface RFC verfügbar. Wenn Sie eine Frage über ein CGI-Problem, das Sie wieder haben, ob zu einer Mailing-Liste oder zu einer Newsgroup, stellen Sie sicher, dass Sie genug Informationen über das, was passiert ist, was Sie erwartet haben, und wie, was tatsächlich passiert war anders, Welcher Server Sie laufen, welche Sprache Ihr CGI-Programm war, und, wenn möglich, der beleidigende Code Dies wird die Suche nach Ihrem Problem viel einfacher. Hinweis, dass Fragen über CGI-Probleme sollten nie in die Apache-Bug-Datenbank gebucht werden, es sei denn, Sie sind sicher Sie haben ein Problem in der Apache-Quellcode gefunden. Notice Dies ist kein QA-Abschnitt Kommentare hier platziert werden sollte auf Vorschläge zur Verbesserung der Dokumentation oder Server, und kann wieder von unseren Moderatoren entfernt werden, wenn sie e sind Ither implementiert oder als ungültiges off-topic betrachtet Fragen zum Verwalten des Apache Servers sollten entweder auf unseren IRC-Kanal, auf Freenode oder an unsere Mailinglisten geschickt werden. Copyright 2017 Die Apache Software Foundation unter der Apache Lizenz, Version 2 0 lizenziert .


No comments:

Post a Comment