Perl mit MySQL?
Kann man das machen? Also PHP und MySQL geht ja, aber auch mit Perl?
mfg
TByte
Antwort schreiben
Antwort 21 von Dr.Ma-Busen vom 05.05.2020, 16:45 Options
Ich weiss nicht ob es bei XAMPP Tools zur Administration gibt und was du mit denen alles machen kannst, deswegen kann ich dir nur sagen wie du es per Hand machst.
Irgendwo in einem Unterordner von xampp gibt es eine Datei die, glaube ich httpd.conf heißen müsste. die Öffnest du mit einen Editor und suchst dort in nach einer Zeile Listen 80. Dort gibst du den Port an den der Apache nutzen soll.
Bedenke aber das du nach der Portänderung deinen Webserver mit domain:port aufrufen musst.
Skype benutzt also den Port? kann man bei Skype nicht einstellen das es einen anderen Port nehmen soll?
Antwort 22 von TByte vom 05.05.2020, 17:07 Options
ich glaub net.
Zitat:
Bedenke aber das du nach der Portänderung deinen Webserver mit domain:port aufrufen musst.
Wie jetzt?
mfg
TByte
Antwort 23 von Dr.Ma-Busen vom 05.05.2020, 17:27 Options
Na.... wenn du eine Webseite aufrufst dann baut dein Browser eine Verbindung zum Server über Port 80 auf, der Standard-Port für das Web.
Änderst du jetzt bei deinen Server den Port, so das er nicht mehr auf Port 80 lauscht, und du rufst den Server über dein Browser auf, denn wird er versuchen den Server auf Port 80 zu erreichen. Wenn du den aber geändert hast denn wird dein Browser keine antwort erhalten. Also musst du deinen Browser beim aufruf der Seite sagen das er eine Verbindung über port xyz mit den Server aufbauen soll. Das erreichst du in dem du mit einem doppelpunkt hinter der Serveradresse in der Adresszeile des Browsers den Port angibst.
Beispiel:
www.supportnet.de:4711
In dem fall versucht der Browser den Server des SN auf Port 4711 zu erreichen.
Antwort 24 von TByte vom 05.05.2020, 17:54 Options
Hmmm... Hab jetzt wieder normal Apache mithlfe von
-_Klick_- konfiguriert, wenn ich localhost:8080 aufrufe klappt ja alles wunderbar. aber FF will die CGIs trotzdem downloaden. Was jetzt?
mfg
TByte
Antwort 25 von Dr.Ma-Busen vom 05.05.2020, 18:03 Options
Stell mal die Konfigurationsdatei deines Apachen ins netz das man die sich mal anschauen kann.
Antwort 27 von rabies vom 05.05.2020, 22:03 Options
Die zahlreichen Tipps und Ratschläge, die Dir gegeben werden, scheinen alle keine Beachtung zu finden. Auch das Tutorial auf netzadmin.org scheinst Du nicht recht befolgt zu haben.
Nur als Beispiel: Du hast keine AddHandler-Direktive hinzugefügt. Diese ist in Deiner Konfiguration nach wie vor auskommentiert. Auch fehlt Dir die Direktive ScriptInterpreterSource. Und ich könnte Wetten darauf abschließen, dass auch der nötige Registry-Eintrag nicht getätigt wurde.
Du solltest Dich endlich an die zahlreichen Ratschläge halten, die Du bekommst, und endlich eine gewisse Affinität und Ausdauer zu den Themen, die Dich interessieren, entwickeln. Das bringt Dich weiter, als ein ständiges Springen zwischen Themen, die dann nur kurz und zusammenhangslos aufgefasst werden. Dabei lernt man
nichts.
Ich schlage vor, Du liest Dir das von Dir selbst verlinkte Tutorial noch einmal durch und versuchst es dann noch einmal.
Zusätzlich hilft Dir
google mit nur wenigen Schlagwörtern bei der Suche nach Tutorials weiter.
Der Einfachheit halber könntest Du Dir allerdings auch mod_perl anschauen. Das ist ein Modul für den Apache, das imho wesentlich schneller agieren kann als ein über CGI angesprochener Perl-Interpreter und einem Lookup in der Registry.
Dass XAMPP nicht auf Port 80 laufen konnte, liegt mit hoher Wahrscheinlichkeit einfach daran, dass Du Apache als Dienst installiert hast. Dieser führt sich dann natürlich beim Start von Windows direkt aus. Dies führt dann dementsprechend auch dazu, dass Port 80 ständig belegt ist. Diesen Dienst kannst Du deaktivieren, oder auf den Starttyp "manuell" setzen. Dann wird er nicht beim Start von Windows ausgeführt und XAMPP hat keinerlei Probleme damit, den Apache an Port 80 zu binden.
Viel Erfolg weiterhin,
--rabies.
Antwort 28 von TByte vom 05.05.2020, 22:22 Options
Ich hab mir ja eure ratschläge angeschaut, jetzt glaubt mir doch mal! Auch das utorial hab ich versucht zu befolgen! Aber anscheinend kam bei meinen versuchen nix raus!
mfg
TByte
Antwort 29 von TByte vom 07.05.2020, 17:18 Options
Bin wieder da...
Also, in meinem tollem Buch sthet drinn, dass man Perl Module in Perl ohne Shebang (und noch mehr sachen) programmiert, als *.pm abgespeichert. Aber wenn ich ein anderes Modul installieren will, stand da irgendwas von "C-Code kompilieren...". Jetzt meine Fragen:
1. Ist use Modul gleichgestellt mit #include in C++?
2. Muss ich, wenn ich meine Module zum download anbieten will mit Installierpaket und alles drum und drann, muss ich das dann in C machen?
3. Was muss ich sonst noch beim schreiben eines Moduls beachten?
wär dankbar für Hilfe
mfg
TByte
Antwort 30 von Dr.Ma-Busen vom 07.05.2020, 20:45 Options
Richtig in *.pm brauchst du keine Shebang. Da es sich bei *.pm nur um Perl Module handelt. Die werden mit use oder require in dein Perl-Programm eingebunden. In den Modulen kannst du du Funktionen auslagern damit du dein Programm schön modular aufbauen kannst.
Normalerweis musst du zum Installieren eines Perl-Modul kein C-Code kompilieren. Ausser das Modul bringt eine Lib. mit um auf Betriebssystem spezifische funktioen zugreifen zu könne die man aus Perl direkt nicht erreichen kann oder aus Performance gründen in C geschrieben sind.
zu 1: Grob gesagt, ja.
zu 2. Nein du kannst es auch in ein Archiv packen. Zum installieren reicht es aus das Modul in das Arbeitsverzeichnis deines Perl-Programmes oder in das Lib-Verzeichnis von Perl zu kopieren. Man kann auch beim start des Perlprogrammes die @inc variable um den Pfad zum Perlmodul ergänzen.
zu 3: Binde am besten immer das Modul use strict; ein, zu mindest so lange wie du an deinen Perl-Scripten Arbeitest/Entwickelst.
Schau dir am besten mal ein paar Perl-Programme von den erfahrenen Perl-Programmieren an.
Antwort 31 von TByte vom 07.05.2020, 21:02 Options
ok, danke, also use strict mach ich eh immer, ich mag keine Sprachen wo man Variablen nicht deklarieren muss. Aber erkennt denn Perl auch die Sprache C? Wenn ja, dann auch C++? Wie kann man überhaupt auf Perl mittels anderer Sprache zugreifen?
Antwort 32 von Dr.Ma-Busen vom 08.05.2020, 00:19 Options
Du kannst, meines wissens nach, keine in C geschriebenen Programme mit Perl ausführen, es soll zwar glaube ich Module geben die Quelltexte von C lesen und interpretieren könne. Wie genau die das aber machen weis ich auch nicht. Ob die den Quelltext übersetzen in ein ausführbares Programm, oder einfach nur die C-Anweisungen in Perl-Anweisungen wandeln.
Zitat:
Wie kann man überhaupt auf Perl mittels anderer Sprache zugreifen?
Meinst du das so wie du es geschrieben hast, oder wolltest du wissen wie man mit Perl auf externe "Programme" zugreifen kann?
Von Perl aus auf externe Libraray kannst z.B. mit DynLoader zugreifen.
such einfach mal nach
calling c function from perlUm von anderen Programmen aus auf Perl zugreifen zu können ist es etwas schwiriger. So weit ich weis geht das nicht da Perl eine Interpreter sprache ist, sprich die Perl-Programme werden von Perl geöffnet und die enthaltenen Befehle ausgeführt. Also Perl-Programme laufen nicht wie C oder C++ Programme nativ auf dem System. Um von z.B. c aus auf Methoden in dein Perl-Programm zugreifen zu können müsste man die Methode vorher durch ein Perl-Interpreter laufen lassen der das Resultat dann an dein C-Programm weiter gibt.
Ein möglichkeit wäre aus dem anderen Programm das Perl-Programm zu starten und dann den Datenaustausch über DBUS, DCOP, DOM, Socket oder einfach auch über Stdin & Stdout zu machen.
Ich kann mich aber auch irren und es geht. Ich habe mich mit der Materie noch nicht so richtig befasst.
Antwort 33 von TByte vom 08.05.2020, 20:14 Options
also bei use CGI('param'); kann man ja, als Beispiel, einfach mit param($name); darauf zugreifen. Aber bei eigenen Perl-Modulen muss man als beispiel use MEINMODUL; und dann MEINMODUL::MEINEFUNKTON; so zugreifen. Und in dem Tut. stand, dass ich jedes andere Modul, wie auch CGI, wenn ich es installieren will, ich einn C-Compiler brauche. Deswegen wollt ich das ganze wissen. Und wie macht man das denn überhaupt?
mfg
TByte
Antwort 34 von Dr.Ma-Busen vom 08.05.2020, 21:10 Options
Kanst du mal den Link zu den Tut. geben? Das möchte ich mir auch einmal anschauen.
Zitat:
...muss man als beispiel use MEINMODUL; und dann MEINMODUL::MEINEFUNKTON;
Ja, weil es möglich ist das du z.B. in dein Perl-Script eine sub namens abc hast und ein Modul xyz einbinden kannst was auch eine sub abc enthalten kann. Damit der Perl-Interpreter weis welche sub du meinst wenn du sie aufrufen möchtest, musst du ihn sagen welche sub du meinst. Ob die aus Main (dein Script) oder die sub aus dem Modul (Modul::abc)
Antwort 35 von TByte vom 09.05.2020, 16:29 Options
Worauf ich hinaus wollte ist, dass man beim Modul CGI auf die Funktionen einfachso zugreift, bei meinen Modulen aber immer den Modulnamen und 2 Doppelpunkte einfügen muss, um darauf zuzugreifen. Was ist der Unterschied zwischen meinen und anderen Modulen?
Das Tut ist ein Uralt Buch von Markt und Tehnik
mfg
TByte
Antwort 36 von Dr.Ma-Busen vom 09.05.2020, 16:55 Options
Das kann ich dir nicht sagen, weil ich deine Module nicht kennen.