Archiv für PHP - Tipps

eAccelerator Installieren

eAccelerator Installation und Konfiguration

1. Laden Sie die aktuelle Version von eAccelerator herunter.

cd /tmp && wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2

2. Datei überprüfen

sha1sum eaccelerator-0.9.5.3.tar.bz2

Die jetzt angegebene Prüfsumme gleichen Sie mit der Prüfsumme ab, die auf der
eAccelerator Homepage angegeben ist. Wenn die beiden Summen nicht übereinstimmen, ist die Datei
fehlerhaft und sollte nochmals heruntergeladen werden.

>http://eaccelerator.net/wiki/Release-0.9.5.3

3. Entpacken der Archivdatei

tar xvfj eaccelerator-0.9.5.3.tar.bz2

4. Kompilieren und Installieren des Moduls
Die Pakete gcc, autoconf, automake, libtool, m4 müssen installiert sein. Für phpize muss auch php-devel installiert sein.

cd eaccelerator-0.9.5.3
phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
make && make install

5. Konfiguration in php.ini eintragen.

Am Ende der Datei folgendes anhängen:

extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/oos_tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

6. Verzeichnis für den Cache anlegen

mkdir /oos_tmp/eaccelerator
chmod 0777 /oos_tmp/eaccelerator

Um die Änderungen zu aktivieren, muss der Webserver neu gestartet werden. Danach kann über phpinfo (Admin => Hilfsprogramme => Server Info hier PHP Version) validiert werden, ob eAccelerator unter PHP verfügbar ist.

ERROR: ‘phpize’ failed

Bei der Installation über pecl.php.net kann es zu der Meldung


running: phpize
sh: phpize: command not found
ERROR: `phpize' failed

Lösung
php-devel installieren

apt-get install php-devel
yast –install php-devel
http://rpmseek.com/rpm-pl/php-devel.html?hl=de&cs=php-devel:PN:0:0:0:0

Memcache mit MyOOS

Mit Memcache lassen sich Teile eines Programmes in den Hauptspeicher verlagern, für die z.B. Datenbankzugriffe oder Dateizugriffe notwendig wären. Memcache nimmt der Datenbank fantastisch
viel Arbeit ab. Alle Objekte sind im Memcache, kein Code greift direkt auf die Datenbank zu.
Die Datenbank wird dadurch um eine Größenordung entlastet. Was die Datenbank leisten müsste
sieht man dann, wenn der Cache leer ist.

Der Memcache ist ein verteilter Speicher. Er ist verteilt über mehrere Rechner. Will man keine Rechner extra für den Memcache abstellen, dann verwendet man traditionell die Webserver auch als Memcache-Server. Das heißt nicht, dass es schneller wird, weil die meisten Zugriffe nicht lokal sind, aber billiger weil man keine extra Rechner braucht. Die Webserver hat man ja sowieso. Die Standardvorgehensweise ist also: 10 Webserver hinter einem Loadbalancer. Auf jedem Webserver ein memcached. Das wird deshalb empfohlen, weil Webserver vor allem CPU brauchen (CPU bound) und der Memcache vor allem Speicher (memory bound). Man kann also die jeweils “andere” Ressource auch noch nutzen.

Installation und Konfiguration von memcache
memcached herunterladen

cd /tmp && wget http://www.danga.com/memcached/dist/memcached-1.2.3.tar.gz

Kompilieren und Installieren

cd memcached-1.2.3
./configure --prefix=/usr --sysconfdir=/etc
make && make install

Starten des Dienstes

/usr/bin/memcached -d -m 2048 -l 10.0.0.40 -p 11211
    Erklärung zu den verwendeten Parametern:

  • -d Startet memcached als Dienst
  • -m Gibt an, wieviel Hauptspeicher memcached benutzen kann. Diese Angabe wird in MB angegeben
  • -l Unter welcher IP der Daemon angesprochen wird
  • -p Unter welchem Port der Daemon angesprochen wird
r23@home:~> /usr/bin/memcached -h
memcached 1.2.3
-p <num>      TCP port number to listen on (default: 11211)
-U <num>      UDP port number to listen on (default: 0, off)
-s <file>     unix socket path to listen on (disables network support)
-l <ip_addr>  interface to listen on, default is INDRR_ANY
-d            run as a daemon
-r            maximize core file limit
-u <username> assume identity of <username> (only when run as root)
-m <num>      max memory to use for items in megabytes, default is 64 MB
-M            return error on memory exhausted (rather than removing items)
-c <num>      max simultaneous connections, default is 1024
-k            lock down all paged memory
-v            verbose (print errors/warnings while in event loop)
-vv           very verbose (also print client commands/reponses)
-h            print this help and exit
-i            print memcached and libevent license
-b            run a managed instanced (mnemonic: buckets)
-P <file>     save PID in <file>, only used with -d option
-f <factor>   chunk size growth factor, default 1.25
-n <bytes>    minimum space allocated for key+value+flags, default 48

Memcached mit PHP nutzen

Um memcached mit PHP nutzen zu können, muss das PECL Modul memcache verwendet werden.

Da PECL-Erweiterungen nicht mit PHP mitgeliefert werden, müssen sie nachträglich installiert werden. Danach kann man sie, wie andere Erweiterungen auch, von PHP aus verwenden.

pecl install memcache

Der Installer kümmert sich darum, dass die Erweiterung automatisch in der neusten Version heruntergeladen, das Archiv entpackt, die Erweiterung kompiliert und in das Erweiterungs-Verzeichnis (./ext) kopiert wird. Im Anschluss muss die Erweiterung noch in der php.ini eingetragen werden.

extension=memcache.so

Um die Änderungen zu aktivieren, muss der Webserver neu gestartet werden. Danach kann über phpinfo (Admin => Hilfsprogramme => Server Info hier PHP Version) validiert werden, ob memcache unter PHP verfügbar ist.

Passen Sie nun noch die Port und IP Adresse von Ihren Memcach Server in
~/shop/includes/functions/function_db.php an

      $dbconn->memCache = true; // should we use memCache instead of caching in files
      $dbconn->memCacheHost = '126.0.1.1'; // $db->memCacheHost = array($ip1, $ip2, $ip3); // $db->memCacheHost = $ip1; still works
      $dbconn->memCachePort = '11211'; // this is default memCache port
      $dbconn->memCacheCompress = false; // Use 'true' to store the item compressed (uses zlib)

Fehlermeldung bei der Installation von GnuPG für PHP

Die Installation von GnuPG für PHP bricht mit dieser Fehlermeldung ab

In file included from /tmp/pear/download/gnupg-1.3.1/php_gnupg.h:31,
                 from /tmp/pear/download/gnupg-1.3.1/gnupg.c:22:
/usr/include/gpgme.h:53:23: error: gpg-error.h: No such file or directory
In file included from /tmp/pear/download/gnupg-1.3.1/php_gnupg.h:31,
                 from /tmp/pear/download/gnupg-1.3.1/gnupg.c:22:
/usr/include/gpgme.h:95: error: syntax error before 'gpgme_error_t'
/usr/include/gpgme.h:96: error: syntax error before 'gpgme_err_code_t'
/usr/include/gpgme.h:97: error: syntax error before 'gpgme_err_source_t'
/usr/include/gpgme.h:101: error: syntax error before 'gpgme_err_make'
/usr/include/gpgme.h:101: error: syntax error before 'source'
/usr/include/gpgme.h: In function 'gpgme_err_make':
/usr/include/gpgme.h:103: error: 'source' undeclared (first use in this function)
/usr/include/gpgme.h:103: error: (Each undeclared identifier is reported only once
/usr/include/gpgme.h:103: error: for each function it appears in.)
/usr/include/gpgme.h:103: error: 'code' undeclared (first use in this function)
/usr/include/gpgme.h: At top level:
/usr/include/gpgme.h:114: error: syntax error before 'gpgme_error'
/usr/include/gpgme.h:114: error: syntax error before 'code'
/usr/include/gpgme.h: In function 'gpgme_error':
/usr/include/gpgme.h:116: error: 'GPG_ERR_SOURCE_USER_1' undeclared (first use in this function)
/usr/include/gpgme.h:116: error: 'code' undeclared (first use in this function)
/usr/include/gpgme.h: At top level:
/usr/include/gpgme.h:121: error: syntax error before 'gpgme_err_code'
/usr/include/gpgme.h:121: error: syntax error before 'err'
/usr/include/gpgme.h: In function 'gpgme_err_code':
/usr/include/gpgme.h:123: error: 'err' undeclared (first use in this function)
/usr/include/gpgme.h: At top level:
/usr/include/gpgme.h:128: error: syntax error before 'gpgme_err_source'
/usr/include/gpgme.h:128: error: syntax error before 'err'
/usr/include/gpgme.h: In function 'gpgme_err_source':
/usr/include/gpgme.h:130: error: 'err' undeclared (first use in this function)
/usr/include/gpgme.h: At top level:
/usr/include/gpgme.h:136: error: syntax error before 'err'
/usr/include/gpgme.h:145: error: syntax error before 'err'
/usr/include/gpgme.h:150: error: syntax error before 'err'
/usr/include/gpgme.h:156: error: syntax error before 'gpgme_err_code_from_errno'
/usr/include/gpgme.h:161: error: syntax error before 'code'
/usr/include/gpgme.h:166: error: syntax error before 'gpgme_err_make_from_errno'
/usr/include/gpgme.h:166: error: syntax error before 'source'
/usr/include/gpgme.h:170: error: syntax error before 'gpgme_error_from_errno'
/usr/include/gpgme.h:522: error: syntax error before 'gpgme_error_t'
/usr/include/gpgme.h:545: error: syntax error before '}' token
/usr/include/gpgme.h:664: error: syntax error before '*' token
/usr/include/gpgme.h:667: error: 'gpgme_error_t' declared as function returning a function
/usr/include/gpgme.h:667: error: 'gpgme_error_t' redeclared as different kind of symbol
/usr/include/gpgme.h:95: error: previous declaration of 'gpgme_error_t' was here
/usr/include/gpgme.h:676: error: 'gpgme_edit_cb_t' declared as function returning a function
/usr/include/gpgme.h:682: error: 'gpgme_new' declared as function returning a function
/usr/include/gpgme.h:688: error: 'gpgme_set_protocol' declared as function returning a function
/usr/include/gpgme.h:716: error: 'gpgme_set_keylist_mode' declared as function returning a function
/usr/include/gpgme.h:724: error: syntax error before 'gpgme_passphrase_cb_t'
/usr/include/gpgme.h:728: error: syntax error before 'gpgme_passphrase_cb_t'
/usr/include/gpgme.h:744: error: 'gpgme_set_locale' declared as function returning a function
/usr/include/gpgme.h:759: error: 'gpgme_signers_add' declared as function returning a function
/usr/include/gpgme.h:788: error: 'gpgme_get_sig_key' declared as function returning a function
/usr/include/gpgme.h:794: error: 'gpgme_io_cb_t' declared as function returning a function
/usr/include/gpgme.h:803: error: 'gpgme_register_io_cb_t' declared as function returning a function
/usr/include/gpgme.h:892: error: 'gpgme_data_new' declared as function returning a function
/usr/include/gpgme.h:902: error: 'gpgme_data_new_from_mem' declared as function returning a function
/usr/include/gpgme.h:911: error: 'gpgme_data_new_from_cbs' declared as function returning a function
/usr/include/gpgme.h:913: error: 'gpgme_data_new_from_fd' declared as function returning a function
/usr/include/gpgme.h:915: error: 'gpgme_data_new_from_stream' declared as function returning a function
/usr/include/gpgme.h:922: error: 'gpgme_data_set_encoding' declared as function returning a function
/usr/include/gpgme.h:933: error: 'gpgme_data_new_with_read_cb' declared as function returning a function
/usr/include/gpgme.h:940: error: 'gpgme_data_new_from_file' declared as function returning a function
/usr/include/gpgme.h:947: error: 'gpgme_data_new_from_filepart' declared as function returning a function
/usr/include/gpgme.h:951: error: 'gpgme_data_rewind' declared as function returning a function
/usr/include/gpgme.h:959: error: 'gpgme_get_key' declared as function returning a function
/usr/include/gpgme.h:1007: error: 'gpgme_cancel' declared as function returning a function
/usr/include/gpgme.h:1014: error: field 'reason' declared as a function
/usr/include/gpgme.h:1041: error: 'gpgme_op_encrypt_start' declared as function returning a function
/usr/include/gpgme.h:1044: error: 'gpgme_op_encrypt' declared as function returning a function
/usr/include/gpgme.h:1053: error: 'gpgme_op_encrypt_sign_start' declared as function returning a function
/usr/include/gpgme.h:1056: error: 'gpgme_op_encrypt_sign' declared as function returning a function
/usr/include/gpgme.h:1078: error: 'gpgme_op_decrypt_start' declared as function returning a function
/usr/include/gpgme.h:1080: error: 'gpgme_op_decrypt' declared as function returning a function
/usr/include/gpgme.h:1086: error: 'gpgme_op_decrypt_verify_start' declared as function returning a function
/usr/include/gpgme.h:1088: error: 'gpgme_op_decrypt_verify' declared as function returning a function
/usr/include/gpgme.h:1141: error: 'gpgme_op_sign_start' declared as function returning a function
/usr/include/gpgme.h:1144: error: 'gpgme_op_sign' declared as function returning a function
/usr/include/gpgme.h:1187: error: field 'status' declared as a function
/usr/include/gpgme.h:1205: error: field 'validity_reason' declared as a function
/usr/include/gpgme.h:1221: error: 'gpgme_op_verify_start' declared as function returning a function
/usr/include/gpgme.h:1224: error: 'gpgme_op_verify' declared as function returning a function
/usr/include/gpgme.h:1254: error: field 'result' declared as a function
/usr/include/gpgme.h:1317: error: 'gpgme_op_import_start' declared as function returning a function
/usr/include/gpgme.h:1318: error: 'gpgme_op_import' declared as function returning a function
/usr/include/gpgme.h:1320: error: 'gpgme_op_import_ext' declared as function returning a function
/usr/include/gpgme.h:1326: error: 'gpgme_op_export_start' declared as function returning a function
/usr/include/gpgme.h:1328: error: 'gpgme_op_export' declared as function returning a function
/usr/include/gpgme.h:1333: error: 'gpgme_op_export_ext_start' declared as function returning a function
/usr/include/gpgme.h:1336: error: 'gpgme_op_export_ext' declared as function returning a function
/usr/include/gpgme.h:1360: error: 'gpgme_op_genkey_start' declared as function returning a function
/usr/include/gpgme.h:1362: error: 'gpgme_op_genkey' declared as function returning a function
/usr/include/gpgme.h:1371: error: 'gpgme_op_delete_start' declared as function returning a function
/usr/include/gpgme.h:1373: error: 'gpgme_op_delete' declared as function returning a function
/usr/include/gpgme.h:1380: error: 'gpgme_op_edit_start' declared as function returning a function
/usr/include/gpgme.h:1383: error: 'gpgme_op_edit' declared as function returning a function
/usr/include/gpgme.h:1389: error: 'gpgme_op_card_edit_start' declared as function returning a function
/usr/include/gpgme.h:1392: error: 'gpgme_op_card_edit' declared as function returning a function
/usr/include/gpgme.h:1412: error: 'gpgme_op_keylist_start' declared as function returning a function
/usr/include/gpgme.h:1415: error: 'gpgme_op_keylist_ext_start' declared as function returning a function
/usr/include/gpgme.h:1418: error: 'gpgme_op_keylist_next' declared as function returning a function
/usr/include/gpgme.h:1421: error: 'gpgme_op_keylist_end' declared as function returning a function
/usr/include/gpgme.h:1463: error: 'gpgme_op_trustlist_start' declared as function returning a function
/usr/include/gpgme.h:1467: error: 'gpgme_op_trustlist_next' declared as function returning a function
/usr/include/gpgme.h:1470: error: 'gpgme_op_trustlist_end' declared as function returning a function
/usr/include/gpgme.h:1506: error: 'gpgme_get_engine_info' declared as function returning a function
/usr/include/gpgme.h:1513: error: 'gpgme_engine_check_version' declared as function returning a function
/usr/include/gpgme.h:1533: error: syntax error before 'GpgmePassphraseCb'
In file included from /tmp/pear/download/gnupg-1.3.1/gnupg.c:22:
/tmp/pear/download/gnupg-1.3.1/php_gnupg.h:36: error: field 'err' declared as a function
In file included from /tmp/pear/download/gnupg-1.3.1/gnupg.c:25:
/tmp/pear/download/gnupg-1.3.1/php_gnupg_keylistiterator.h:38: error: field 'err' declared as a function
/tmp/pear/download/gnupg-1.3.1/gnupg.c:382: error: 'passphrase_cb' declared as function returning a function
/tmp/pear/download/gnupg-1.3.1/gnupg.c:410: error: 'passphrase_decrypt_cb' declared as function returning a function
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'gnupg_fetchsignatures':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:448: warning: passing argument 4 of 'add_assoc_long_ex' makes integer from pointer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_keyinfo':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:624: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:624: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:631: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_addsignkey':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:723: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:723: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:736: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_adddecryptkey':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:767: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:767: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_addencryptkey':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:803: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:803: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_sign':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:899: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:899: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:903: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:908: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_encrypt':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:971: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:971: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:975: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:980: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_encryptsign':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1035: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1035: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1039: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1044: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_verify':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1115: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1115: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1120: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1127: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1134: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1139: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1146: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1161: warning: pointer targets in passing argument 2 of 'gpgme_data_release_and_get_mem' differ in signedness
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_decrypt':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1199: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1199: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1202: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1207: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_decryptverify':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1265: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1265: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1268: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1273: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_export':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1326: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1326: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1330: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_import':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1366: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1366: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1370: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_deletekey':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1416: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1416: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1420: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_gettrustlist':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1452: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1452: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1457: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c: In function 'zif_gnupg_listsignatures':
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1498: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1498: error: 'GPG_ERR_NO_ERROR' undeclared (first use in this function)
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1502: warning: assignment makes pointer from integer without a cast
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1521: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1522: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1523: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1524: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1525: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1526: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1527: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1528: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1529: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1529: error: dereferencing pointer to incomplete type
/tmp/pear/download/gnupg-1.3.1/gnupg.c:1530: error: dereferencing pointer to incomplete type
make: *** [gnupg.lo] Fehler 1
ERROR: `make' failed

Lösung: update auf die aktuelle Version von
gpg2 – Version: 1.9.18-2
gpgme – Version: 1.0.2-4
installieren

Libraries have been installed in:
   /var/tmp/pear-build/gnupg-xxx/modules
 
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'
 
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.

checking for re2c… no

Es fehlt auf dem Server System re2c.

Die Entwickler der freien Scriptsprache PHP haben begonnen, PHP von einem veralteten, Flex-basierten Lexer auf re2c umzustellen. Die aktuelle Entwicklerversion von PHP 5.3 wird dadurch und viele weiter Verbesserungen an der Zend-Engine um bis zu 30 Prozent schneller.

Re2c kommt bei PHP bereits seit geraumer Zeit z.B. zur Serialisierung zum Einsatz. Mit PHP 5.3 löst re2c nun auch den bisher verwendeten Flex-basierten Lexer ab, wovon sich die PHP-Entwickler eine höhere Geschwindigkeit versprechen.

Erste Benchmarks der aktuellen Entwicklerversion von PHP 5.3 mit PHP 5.2, die Dmitry Stogov veröffentlichte, sehen vielversprechend aus: Demnach ist PHP 5.3 bis zu 30 Prozent schneller als sein Vorgänger. Gemessen wurden die PHP-Applikationen Drupal (20 Prozent schneller), Qdig (2 Prozent schneller), Typo3 (30 Prozent schneller), Wordpress (15 Prozent schneller) und Xoops (10 Prozent schneller).

Für diese Leistungssteigerung ist nicht allein re2c verantwortlich, hat aber seinen Anteil, so Stogov. Neben dem Umstieg auf re2c gibt es zahlreiche weitere Optimierungen am ausführenden Teil der Zend Engine.

Quelle: Golem.de

Über die Projekt Homepage http://re2c.org/

# wget http://nchc.dl.sourceforge.net/sourceforge/re2c/re2c-0.13.5.tar.gz
# tar xzvf re2c-0.13.5.tar.gz
# cd re2c-0.13.5
# ./configure
# make
# make install

Weitere Informationen über die Projekt Homepage http://re2c.org/