"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

[php] Apache//php//GD(2)-überlastet??

watchout 26.04.2003 - 00:34 1309 14
Posts

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
abend...

es geht um folgendes: aufgrund der menge der fonts die ich bereits hab (>300) verlier ich immer öfter den überblick, ich hab was gebraucht, mit dem ich mir schnell die fonts anschauen kann.

Also hab ich mir ein kleines script geschrieben, welches mittels der "imagettftext"-function einen beispieltext in ein 30x600px PNG-bild schreibt, dynamisch natürlich.

Zuerst wollte ich alle fonts auf eine seite packen, hätte ja kein grosses problem sein dürfen, jedoch hat sich jedesmal der apache gekillt (bessergesagt ein child davon) also hab ichs mal auf 15 fonts pro seite beschränkt - aber trotzdem hängt er sich noch manchmal auf, nicht immer aber so oft, dass es stört.

Also, ich weiss nicht - irgendwie sollte sich imho der apache nicht bei lächerlichen 15 zugriffen killen... :confused: ok, ich habs am webserver noch nicht probiert, aber ich wollte nicht riskieren, dass ich ihn kille...

also, weiss jemand worans liegen kann? dass es was mit dem font zu tun hat is unwahrscheinlich, weil sich der apache immer an unterschiedlichen stellen killt.

tia

watchout


Solved: Apache konnte anscheinend nicht die vielen gleichzeitigen zugriffe verarbeiten und ging daran ein!
Lösung: Bilder vorher, und nacheinander erstellen und dann den browser aus einem cache auslesen lassen!
Bearbeitet von watchout am 27.04.2003, 01:06

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
wenn dein server nichts verkraftet, schau dass die Requests hintereinander kommen und nicht gleichzeitig.

Wenn du eine Übersichtsseite, und ein image-script hat das direkt ausm img-tag aufgerufen wird, gehen alle 15 Requests auf einmal an den Apache ... ich kann mir zwar nicht vorstellen dass es ihn deswegen killt, aber möglich isses.

Drum: zerst alle images hintereinander generieren (in einen Cache, hat noch andere Vorteile), und dann gesammelt ausgeben.
Weiters sparst so die initialisierungszeit ein!

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von .deRElict.
wenn dein server nichts verkraftet, schau dass die Requests hintereinander kommen und nicht gleichzeitig.

Wenn du eine Übersichtsseite, und ein image-script hat das direkt ausm img-tag aufgerufen wird, gehen alle 15 Requests auf einmal an den Apache ... ich kann mir zwar nicht vorstellen dass es ihn deswegen killt, aber möglich isses.

Drum: zerst alle images hintereinander generieren (in einen Cache, hat noch andere Vorteile), und dann gesammelt ausgeben.
Weiters sparst so die initialisierungszeit ein!
gute idee, ich hab mir auch schon sowas gedacht, dass das sein könnte weil alle requests gleichzeitig kamen... hätte zwar nur ein primitivst-script werden sollen, aber wird wohl wieder nix draus... :rolleyes:

ps: der "webserver" is mein windoof-rechner, da sind ja auch die fonts drauf...

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
Ich finde ein script das dir alles generiert "primitiver" als die 2 script lösung (ist auch kleinerer code)

Philipp

Here to stay
Registered: Jul 2001
Location: Wien
Posts: 1922
Zitat von watchout
ps: der "webserver" is mein windoof-rechner, da sind ja auch die fonts drauf...

Eine Anmerkung:
Ich würde (wenn möglich) eine Linux Distribution dazu installieren. Das kann beim Testen von Scripten ganz hilfreich sein. Ausserdem ist es eine realistischere Testumgebung, da die meisten Provider ohnehin Unix/Linux einsetzen.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
hatte mal ein ähnliches problem (übersicht über schriftarten) - hab mir mit einem winword-vb-script geholfen, daß für jede schriftart einen kurzen text (name der schriftart) +CRLF in ein spalten-layout ausgibt. war größtenteils aus der vb-hilfe zusammenkopiert.
wenn du eine php/gd lösung willst, ist das aber natürlich keine lösung.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von Philipp
Eine Anmerkung:
Ich würde (wenn möglich) eine Linux Distribution dazu installieren. Das kann beim Testen von Scripten ganz hilfreich sein. Ausserdem ist es eine realistischere Testumgebung, da die meisten Provider ohnehin Unix/Linux einsetzen.
zum anschaun von windows-fonts :confused: is doch wohl bissal übertrieben, oder? :rolleyes:

ps: den einzigen unterschied zwischen meiner apache-install und mein' _web_server hab ich bis jetzt bei den cookies bemerkt - weil bei mir local funkens net, is aber wohl eher eine unfähigkeit von mir... :D

@dere: is nur ein script mit 2 functions und nem case davor... viel ändern werd ich wohl nicht müssen, aber das mit dem tempfile... muss ich mal schaun, ich hab _null_ ahnung wie das php das handled - habs bis jetzt nicht gebraucht... vielleicht isses ja auch gscheiter die pics nicht nachher wieder zu löschen, sondern lassen und dann nur prüfen obs schon ein da is, wenn nicht generiern..... ..... ......... ..... :rolleyes:

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von atrox
hatte mal ein ähnliches problem (übersicht über schriftarten) - hab mir mit einem winword-vb-script geholfen, daß für jede schriftart einen kurzen text (name der schriftart) +CRLF in ein spalten-layout ausgibt. war größtenteils aus der vb-hilfe zusammenkopiert.
wenn du eine php/gd lösung willst, ist das aber natürlich keine lösung.
_wollen_ is natürlich kein thema... ;) das problem mit word is, dass das die schriftarten im windoof-verzeichnis braucht, was ich wieder gern vermeiden tät, weil ich die meisten schriften sowieso nur für photoshop brauch... für word reicht times und arial :D

am liebsten wär mir natürlich ein mini-proggie, aber ich hab mich so lang mit php beschäftigt...



btw: gibts in php (gd oder wwi) ne möglichkeit den namen der schriftart und deren optimale grösse herauszubekommen?

Maehmann

OC Addicted
Avatar
Registered: Aug 2002
Location: Vienna
Posts: 1110
http://www.ceytec.com/de/fonty/

hmmm ... kA ob es auch Schriftarten anzeigen kann, die nicht im Win\Font s Ordner sind.

Is mir nur grad eingefallen, wie ich den Thread gelesen hab ;)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
geiles proggie, es kann auch ausserhalb vom win-font-dir die fonts anzeigen... nur es kostet was und hat trotzdem fehler:
Zitat
Diese Schrift kann nicht erzeugt werden! (evtl. defekt oder zu wenig Speicher, da zu viele Schriften geladen)
:rolleyes:

ausserdem: nur selber proggen macht gscheit :D

Maehmann

OC Addicted
Avatar
Registered: Aug 2002
Location: Vienna
Posts: 1110
na dann ... viel spaß beim Proggen ;)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von Maehmann
na dann ... viel spaß beim Proggen ;)
fertig :)
drei fonts kann er nicht, aber ich glaub die sind wahrscheinlich open-type

was mich gleich zum nächsten problem führt:
bis jetzt kann mein proggie nur true-types , was ich gern ändern würde, free-type 2 bietet sich da offensichtlich an, nur irgendwie check ich das noch nicht so ab, vor allem weil nur c-code zum d/l zu finden war und ich das ganze compiler-zeug nicht checke, weil ich einfach noch nie was damit gemacht hab...

die gd2 dürfte ein problem mit der ttftext-function haben, weil die kann praktisch keine (ttf) schrift anzeigen, ich musste wieder gd1 aktivieren...

ps: aus zwei functions wurden drei functions und eine class :D - dafür is der speed mächtig gestiegen, vor allem weil ich jetz nen cache hab ;)

Maehmann

OC Addicted
Avatar
Registered: Aug 2002
Location: Vienna
Posts: 1110
hmmm ... wie proggt man einen Cache? Einfach die komplette Ausgabe zusammenstellen und dann auf einmal ausgeben?

PS: Hab sowas noch nie gebraucht/verwendet ;)
Genau so wenig wie eine Klasse ^^

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von Maehmann
hmmm ... wie proggt man einen Cache? Einfach die komplette Ausgabe zusammenstellen und dann auf einmal ausgeben?

PS: Hab sowas noch nie gebraucht/verwendet ;)
Genau so wenig wie eine Klasse ^^
naja, is eigentlich simpel

vorher warens im prinzip zwei scripte, aus faulheit einfach nur in einem file: Hauptscript sucht die filenames und schreibts in den img-src
sub-script wird dann durch den browser aufgerufen und erstellt das bild anhand der daten die über den url übergeben wurden - das is shize

jetzt: _ein_ script, die dateinamen werden gesucht, wenn ein font gefunden worden is, dann wird die graphik-funktion aufgerufen und diese speichert dann das ganze zeug in ein temporäres verzeichnis
wichtig dabei is: es muss nichts existieren! weder verzeichnis, noch file

ausserdem muss im normalfall zumindest eine überprüfung gemacht werden, ob das änderungsdatum vom "original" höher is als das erstellungsdatum vom cache - man kann das auch bis in den exzess treiben mit datenbank usw....

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von watchout
fwas mich gleich zum nächsten problem führt:
bis jetzt kann mein proggie nur true-types , was ich gern ändern würde, free-type 2 bietet sich da offensichtlich an, nur irgendwie check ich das noch nicht so ab, vor allem weil nur c-code zum d/l zu finden war und ich das ganze compiler-zeug nicht checke, weil ich einfach noch nie was damit gemacht hab...

die gd2 dürfte ein problem mit der ttftext-function haben, weil die kann praktisch keine (ttf) schrift anzeigen, ich musste wieder gd1 aktivieren...
pls hlp
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz