Seit ein paar Tagen fahre ich PHP 5.3 mittels FPM in der Kombination mit Nginx auf Debian Lenny und habe einige (großteils sehr positive) Erfahrungen damit gesammelt. Natürlich versucht man alle Fehler, die während der ersten Phase entstehen, so gut wie möglich auszumerzen, wozu auch der folgende gehört.
In der Log-Datei von PHP-FPM hatten einige Einträge gesammelt, die wie folgt lauteten:
[WARNING] [pool mypool1] child 23791 said into stderr: "Invalid query name 1"
Diese Fehler kamen von mehreren Pools, weshalb mir der Fehler nicht direkt auf nur eine Applikation zurückzuführen war. Auch ein kurzer Wechsel auf Apache half nicht. Ein wenig Suchen ergab, dass wohl der Befehl “host” die fehlerhafte Ausgabe erzeugte und durch eine neue Version von bind9 ersetzt werden musste:
apt-get install bind9-host
Das ist das neue Host-Kommando aus der 9.X-Reihe von bind, seitdem ist der Fehler weg
In den letzten Tagen habe ich ein wenig mit CouchDB herumgespielt und mich ein bisschen dazu eingelesen. Dabei wollte ich vor allem wissen, wie ich CouchDB mit PHP verbinden kann. CouchDB selbst stelle eine RESTful HTTP/JSON API bereit, was jedoch im Quellcode nicht wirklich komfortable ist und nach einem Wrapper schreit. Seitens PHP gibts es derzeit noch keine Erweiterung, die diese API kapselt, eine entsprechende PECL-Extension ist jedoch schon in Arbeit. In diesem Beitrag möchte ich einige der verschiedenen PHP-Wrapper sammeln.
Weiterlesen von ‘PHP und CouchDB – Wie verbinde ich diese beiden Welten?’
Dieser Artikel ist Teil einer Reihe zum Webserver nginx.
Schau dir auch die anderen Artikel an:
Zum Leitartikel
Vor einigen Tagen schrieb ich bereits über eine Möglichkeit, die Gravatar-Icons lokal zwischen zu speichern. Leider wurde dabei bei jedem Aufruf eines Bildes immer einen php-call gemacht, was mir bei manchen Beiträgen das Blog in die Knie zwingen würde und dem eigentlich gewünschten Effekt (Beschleunigung) entgegenstehen würde. Daher habe ich mir mal die Funktionen meines Webservers nginx angesehen und dabei festgestellt, dass dieser die folgende Prüfung erlaubt:
- Ist das Bild vorhanden?
- Wenn ja: Direkte Auslieferung
- Wenn nein: Aufruf einer PHP-Datei zum Download des Bildes
Weiterlesen von ‘Bildercache für den Webserver nginx am Beispiel von Gravatar-Icons’
Dieser Artikel ist Teil einer Reihe zum Webserver nginx.
Schau dir auch die anderen Artikel an:
Zum Leitartikel
Seit einigen Tagen habe ich einen neuen Root-Server, der meine Webseite ausliefern soll. Da ich ein bisschen experimentierfreudig bin, habe ich mich zur Installation des Webservers nginx (sprich engine-x) entschlossen, da dieser in vielen Benchmarks noch schneller als lighttpd ist und gleichzeitig weniger RAM verbraucht.
Gleichzeitig sind aber die Rewrite-rules einfacher als beim lighttpd, da diese fast 1:1 vom Apache zu übernehmen sind (was den Umzug der Seiten deutlich einfacher gestaltet). Ich möchte direkt nativ alles über nginx und dessen FastCGI-Backend ausliefern, weshalb ein paar zusätzliche Artikel zu deren Rewrite-Rules oder Stolperfallen bei der Einrichtung kommen werden.
Weiterlesen von ‘Installation von nginx mit PHP auf Gentoo’
Die neue Version 0.4.3 der Statistik-Software Piwik ist gestern erschienen und diese bringt den versprochenen zweiten Patch von mir aus Ticket #793 mit, welcher ein Rewrite der sendHttpRequest()-Funktion ist, um Abfragen der Versionsnummer auch bei allow_url_fopen=Off zu ermöglichen.
Weiterlesen von ‘Piwik 0.4.3 ist erschienen’
German: Dieser Artikel ist auf Englisch, da er an ein internationales Publikum gerichtet ist.
In one of the latest posts on the Zend Framework maillinglist there was a question regarding the minimum required version of PHP for the current version Zend Framework (1.9.0). As of Version 1.7.0 of ZF the documentation recommends versions >=5.2.4 for PHP. Some users are stuck with php5.1.6 (e.g. those running Redhat Linux) and these need to know the components that could be problematic.
To see the minimum required version of PHP for each package of ZF, i’ve created a shellscript which uses PHP_CompatInfo from Pear. It doesn’t take the dependencies into account!
For your convinience i’ve created a website with these infos:
http://zfcompat.wolf-u.li/
By the way for all users of Redhat with PHP 5.1.6: In Zend 1.9.0 the following files that need a higher version than 5.1.6. Be aware, that some components are dependend on these files, e.g. Zend_Cache_Backend is used in about 40% of all components (see comment by Thomas below).
ZendCacheBackend.php : 5.2.1
ZendCryptDiffieHellman.php : 5.2.0
ZendCryptRsaKeyPrivate.php : 5.2.0
ZendCryptRsaKeyPublic.php : 5.2.0
ZendCryptRsa.php : 5.2.0
ZendFileTransferAdapterAbstract.php : 5.2.1
ZendNavigationPage.php : 5.2.0
ZendOpenId.php : 5.2.0
ZendPdfPage.php : 5.2.0
ZendPdf.php : 5.2.0
ZendTestPHPUnitDbOperationTruncate.php : 5.2.1
Thanks to Stefan Sturm for this list!
Still, you should run your own tests and check if your application is really working. The Website above just shows the possiblity to run a specific component under a specific php-version and isn’t taking dependencies between components into account. Or simply update to the current version of PHP
Das Zend Framework ist in der Version 1.9.0 erschienen und bringt immer mehr unternehmensnahe Komponenten mit. So können mit Zend_Queue und Zend_Service_Amazon_Sqs die Queuing-Services Apache ActiveMQ, MemcacheQ, Zend Platform’s Job Queue und Amazon SQS in Anspruch genommen werden. Zend_Ldap arbeitet nun deutlich besser mit dem Microsoft Active Directory und dem Novell eDirectory zusammen. Zend_Db_Adapter_Sqlsrv ist einer neuer Datenbankadapter für den Microsoft SQLServer.
Aber auch die neue Komponente Zend_Feed_Reader ist sehr interessant, da diese eine einheitliche Schnittstelle zu allen Feeds im RSS und Atom-Feeds bietet. Eine weitere, schon lang fehlende Komponente ist Zend_View_Helper_BaseUrl, welche die URL zum public-Verzeichnis zurückgibt und auch URLs aufbauen kann.
Zudem wurden nun alle Komponenten gegen PHP5.3 getestet und sind diesbezüglich validiert. Der Support für PHP5.2 ist jedoch deswegen nicht aufgehoben, dieser ist bis auf weiteres gegeben. Das komplette Changelog ist hier zu finden.
Ein paar API-Changes waren dabei, die hier nachgelesen werden können.
Das Release ist über das SVN oder die offizielle Seite zu beziehen. Die Zeile für svn:externals lautet:
library/Zend http://framework.zend.com/svn/framework/standard/tags/release-1.9.0/library/Zend/