Kategorien
Development

APC auf CentOS installieren

APC ist ein Cache System für PHP (Alternative PHP Cache) und als PECL Modul verfügbar. Die Installation auf CentOS wird wie folgt durchgeführt:

yum install pcre-devel
yum install php-pecl-apc.x86_64 php-pecl-apc-devel.x86_64

Anschließend muss noch eine ini-Datei erstellt werden, in der einerseits die PHP-Extension geladen wird und andererseits Konfigurationen für APC vorgenommen werden können.

Kategorien
Development

session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed

Diese Fehlermeldung kann unter Umständen bei PHP auf einem Ubuntu bzw. Debian System auftreten, wenn der sogenannte Session Garbage Collector aufgrund von falschen Berechtigungen nicht laufen konnte.

session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13)

Auf Ubuntu / Debian System sollte ein separater Cronjob vorhanden sein, der diese Aufgabe übernimmt.
Das Problem tritt beim einfachen starten einer Session über „session_start()“ auf. Hierfür gibt es zwei Lösungen, wobei die Zweite in meinen Augen die bessere Alternative ist.

Lösung 1 geht ganz schnell. Einfach ein „@“ vor session_start() und schon kommt der Fehler nicht mehr.

@session_start();

Lösung 2 benötigt Zugriff auf die PHP.ini des Servers.
Meistens liegen zwei PHP.ini-Dateien vor. Eine für Apache2 (/etc/php5/apache2) und eine für das CLI (/etc/php5/cli). In beiden Ordnern liegt eine PHP.ini. Einfach mit einem Editor öffnen und folgenden Wert von „1“ (standardmäßig) auf „0“ setzen.

session.gc_probability = 0

Danach den Apache neustarten bzw. -laden.

Kategorien
Development

PHP short open Tag per htaccess erlauben

Irgendwann wird es soweit sein, dass der short open Tag in PHP nicht mehr aktiviert ist. Wenn man folgende Zeile in die htaccess einträgt, kann man die Kurzform weiter verwenden.

php_flag short_open_tag on
Kategorien
Development

[jQuery] Serialize List Plugin

Mike Botsko hat ein nettes Plugin für jQuery geschrieben, mit dem eine unordered list <ul> „serialisiert“ werden kann, um sie dann mit PHP o.ä. weiterverarbeiten zu können.
Der Quelltext des Plugins sieht wie folgt aus:

(function($){
    $.fn.serializelist = function(options) {
        /**
         * jQuery Serialize List
         * Copyright (c) 2009 Mike Botsko, Botsko.net LLC
         * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
         * Copyright notice and license must remain intact for legal use
         * Version 1
         *
         * Serialize an unordered or ordered list item. Optional ability
         * to determine which attributes are included. The serialization
         * will be read by PHP as a multidimensional array which you may
         * use for saving state.
         */

        // Extend the configuration options with user-provided
        var defaults = {
            prepend: 'ul',
            is_child: false,
            attributes: ['id', 'class']
        };
        var opts = $.extend(defaults, options);
        var serialStr     = '';

        if(!opts.is_child){ opts.prepend = '&'+opts.prepend; }

        // Begin the core plugin
        this.each(function() {
            var ul_obj = this;

            var li_count     = 0;
            $(this).children().each(function(){

                for(att in opts.attributes){
                    serialStr += opts.prepend+'['+li_count+']['+opts.attributes[att]+']='+$(this).attr(opts.attributes[att]);
                }

                // append any children elements
                var child_base = opts.prepend+'['+li_count+'][children]';
                $(this).children().each(function(){
                    if(this.tagName == 'UL' || this.tagName == 'OL'){
                        serialStr += $(this).serializelist({'prepend': child_base, 'is_child': true});
                    }
                });
                li_count++;
            });
        });
        return(serialStr);
    };
})(jQuery);

Der Aufruf erfolgt über folgenden Befehl:

$(document).ready(function(){
    $('ul').serializelist();
});
Kategorien
Development

Aptana Studio 1.5

Vor einer Stunde habe ich bei Twitter gelesen, dass Version 1.5 der „Spitzen-IDE“ Aptana erschienen ist.
Soeben habe ich mir die neue Version installiert.

Basis ist die neuste Eclipse Version 3.5
Es soll weitreichende Verbesserungen in der Geschwindigkeit geben, weniger Speicher in Anspruch genommen werden sowie 64bit Support ist gewährleistet. Ich bin gespannt, wie sich diese Verbesserungen in der täglichen Nutzung bemerkbar machen.

Download unter http://www.aptana.com/studio/download

Kategorien
Development

[SERVER] PEAR und Confixx

Um PEAR auf einem Server mit Confixx 3 Verwaltung nutzen zu können, sollten folgende Schritte zu einem funktionierenden Ergebnis führen:
(Ich  gehe von einem Server mit Ubuntu Betriebssystem aus)

apt-get install php-pear

Danach liegt PEAR im Verzeichnis /usr/share/php/
Nun kann man über die Konsole noch zusätzliche PEAR-Pakete installieren.

Um PEAR auf den verschiedenen „web’s“ von Confixx verfügbar zu machen, geht man im Confixx-Admin-Bereich auf „Einstellungen“ –> „htttpd Spezial“. Wählt dann „Einen Kunden ändern“. Danach das entsprechende „web“ aus der Liste „wählen“. Jetzt auf „Erweiterter Modus“ klicken und in das Textfeld folgenden Code einfügen (X hinter web steht für die Nummer des „web“):

php_admin_value include_path .:/var/www/webX/html/:/var/www/webX/phptmp/:/var/www/webX/files/:/var/www/webX/atd/:/usr/share/php/
php_admin_value safe_mode_exec_dir /usr/share/php/
php_admin_value safe_mode_include_dir /usr/share/php/

Beim Speichern darauf achten, dass folgender Eintrag ausgewählt ist: „„. Jetzt wartet man entweder ein paar Minuten bis Confixx die Einstellungen übernimmt und neu lädt oder man geht in die „Update Intervalle“ und führt einen „Reload“ direkt aus. Zur Sicherheit empfehle ich allerdings noch:

/etc/init.d/apache2 restart

Nun kann man PEAR trotz eingeschaltetem Safe-Mode ganz normal benutzen. Um zum Beispiel den Spreadsheet Excel Writer zu nutzen, trägt man in die entsprechende PHP-Datei einfach nur folgendes ein:

require_once 'Spreadsheet/Excel/Writer.php';
Kategorien
Development

[HOWTO] Das Fenster einer ausgeführten Batch-Datei verstecken (Cronjob)

Um das Fenster einer Batch-Datei zu verstecken bzw. um eine Batch Datei im Hintergrund auszuführen, benötigt man eine kleine VBScript Datei, die das Verstecken des Fensters übernimmt.
Eine Anwendungsfall hierfür wäre zum Beispiel das Ausführen eines Cronjobs auf einer lokalen PHP Entwicklungsumgebung mit einem „XAMPP-Server“.
Zunächst wird die Batch-Datei erstellt, die das PHP-Skript über die „php-win.exe“ des Servers aufruft. Ich nenne sie einfach mal „cron.bat“ mit folgendem Inhalt:

X:\[PFAD-ZUR-PHP-WIN.EXE]\php-win.exe X:\[PFAD-ZUR-PHP-DATEI-DIE-AUSGEFÜHRT-WERDEN-SOLL]\jobs.php

Als nächstes braucht man noch die VBScript Datei, um das Fenster der Batch-Datei zu verstecken. Ich nenne sie „hidden.vbs“ und der Inhalt sieht wie folgt aus:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

Wenn man jetzt unter „START -> Ausführen“ folgendes eingibt, wird die Batch-Datei ausgeführt aber ohne, dass man ein Fenster sieht:

wscript.exe "X:\[PFAD-ZUR-HIDDEN.VBS]\hidden.vbs" "X:\[PFAD-ZUR-BATCH-DATEI]\cron.bat"

Diesen Befehl kann man jetzt zum Beispiel als „Geplante Task“ in Windows alle 5 Minuten ausführen lassen und erreicht dadurch eine in meinen Augen einfache Cronjob-Lösung für eine lokale Entwicklungsumgebung ohne zusätzliche Software.

Kategorien
Development

[SERVER] mod_rewrite auf Strato vServer einrichten (openSUSE)

Um auf einem Starto vServer mit openSUSE die mod_rewrite Erweiterung einzurichten müssen folgende Schritte durchgeführt werden:

Schritt 1:
Per SSH mit dem Server verbinden

Schritt 2:
Das Verzeichnis „/etc/sysconfig“ öffnen

Schritt 3:
Mit einem Editor eurer Wahl die Datei „apache2“ öffnen

Schritt 4:
In der Datei folgende Zeile suchen:

APACHE_MODULES="

und vor dem Wort „php5“

rewrite

eintragen

Schritt 5:
Datei schließen und den Apache2 Dienst neustarten

/etc/init.d/apache2 restart

Nun sollte mod_rewrite funktionieren.

Kategorien
Development

[SERVER] PHP5 JSON Modul auf Strato vServer nachinstallieren (openSUSE)

Ich musste letztens auf einem vServer mit openSUSE das json Modul für PHP5 nachinstallieren.
Folgende Schritte müssen durchgeführt werden:

Schritt 1:
Per SSH auf dem Server anmelden

Schritt 2:
Folgenden Befehl eingeben

yast2 --install php5-json

Dadurch wird das SUSE Setup Tool angewiesen, dass PHP5-JSON Paket herunterzuladen und zu installieren.

Schritt 3:
Danach noch

/etc/init.d/apache2 restart

Um den Apache2 Dienst neuzustarten.

Jetzt sollte in der phpinfo das Modul „json“ angezeigt werden.

Kategorien
Development WWW

Release: Polarwind-Expeditions.com

www.polarwind-expeditions.com

Die Firma Polarwind-Expeditions aus Münster organisiert Segelreisen der ganz besonderen Art. Kap Hoorn, die Antarktis oder Feuerland sind Ziele, die man nicht jeden Tag mit einer Segelyacht ansteuert. Seit ca. 3 Wochen ist die neue Webseite nun schon online und wir finden immer wieder zusätzliche Features, die nachträglich eingebaut werden. Ich bedanke mich an dieser Stelle schon mal für die tolle Zusammenarbeit!!