APC (Alternative PHP Cache) in PHP5 (Fedora 8 & Apache2) integrieren

Version 1.0
Author: Falko Timme


Diese Anleitung veranschaulicht, wie man APC (Alternative PHP Cache) in PHP5 auf einem Fedora 8 System (mit Apache2) integriert. APC ist ein kostenloser, open PHP Opcode Cacher zum Cachen und Optimieren des PHP Intermediate Codes. Es ähnelt anderen PHP Opcode Cachers, wie zum Beispiel eAccelerator oder XCache.

Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

Ich habe dies auf einem Fedora 8 Server mit der IP Adresse 192.168.0.100 getestet, auf dem Apache2 und PHP5 bereits installiert funktionstüchtig sind. Ich werde Apaches Standard Dokumenten-Root /var/www/html in dieser Anleitung aus Demonstrationsgründen verwenden. Selbstverständlich kannst Du auch jeden anderen vhost verwenden, es kann jedohc sein, dass Du dann den Pfad zur info.php Datei, die ich in dieser Anleitung verwenden, anpassen musst.

2 Den derzeitigen Status von PHP5 überprüfen

Bevor wir APC installieren, lass uns zunächst einige Angaben bezüglich unserer PHP5 Installation in Erfahrung bringen. Dazu erstellen wir die Datei info.php in unserem Dokumenten-Root /var/www/html:

vi /var/www/html/info.php


<?php
phpinfo(); ?>
Danach rufen wir diese Datei in einem Browser auf: http://192.168.0.100/info.php

Wie Du siehst, ist die Version PHP 5.2.4 installiert...


... jedoch wird APC nirgendwo auf der Seite erwähnt:

3 Installation von APC

APC ist eine PHP Erweiterng, die unter Verwenung von PECL installiert werden kann. PECL hat das php-pear Paket, also installieren wir das jetzt:

yum install php-pear

Weiterhin müssen wir einige APC Abhängigkeiten installieren, sodass PECL APC bauen kann:

yum install php-devel httpd-devel

yum groupinstall 'Development Tools'

yum groupinstall 'Development Libraries'

Da nun alle Abhängigkeiten installiert sind, können wir APC wie folgt installieren:

pecl install apc


[root@server1 ~]# pecl install apc
downloading APC-3.0.18.tgz ...
Starting to download APC-3.0.18.tgz (115,957 bytes)
.........................done: 115,957 bytes
47 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
1. Use apxs to set compile flags (if using APC with Apache)? : yes

1-1, 'all', 'abort', or Enter to continue: <-- ENTER

[...]


----------------------------------------------------------------------
Libraries have been installed in:
/var/tmp/pear-build-root/APC-3.0.18/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.
----------------------------------------------------------------------

Build complete.
Don't forget to run 'make test'.

running: make INSTALL_ROOT="/var/tmp/pear-build-root/install-APC-3.0.18" install
Installing shared extensions: /var/tmp/pear-build-root/install-APC-3.0.18/usr/lib/php/modules/
running: find "/var/tmp/pear-build-root/install-APC-3.0.18" -ls
1996900 4 drwxr-xr-x 3 root root 4096 Apr 8 16:32 /var/tmp/pear-build-root/install-APC-3.0.18
1996959 4 drwxr-xr-x 3 root root 4096 Apr 8 16:32 /var/tmp/pear-build-root/install-APC-3.0.18/usr
1996960 4 drwxr-xr-x 3 root root 4096 Apr 8 16:32 /var/tmp/pear-build-root/install-APC-3.0.18/usr/lib
1996961 4 drwxr-xr-x 3 root root 4096 Apr 8 16:32 /var/tmp/pear-build-root/install-APC-3.0.18/usr/lib/php
1996962 4 drwxr-xr-x 2 root root 4096 Apr 8 16:32 /var/tmp/pear-build-root/install-APC-3.0.18/usr/lib/php/modules
1996958 432 -rwxr-xr-x 1 root root 435950 Apr 8 16:32 /var/tmp/pear-build-root/install-APC-3.0.18/usr/lib/php/modules/apc.so

Build process completed successfully
Installing '/usr/lib/php/modules/apc.so'
install ok: channel://pecl.php.net/APC-3.0.18
configuration option "php_ini" is not set to php.ini location
You should add "extension=apc.so" to php.ini
[root@server1 ~]#

Da nun APC installiert ist, erstellen wir die Konfigurationsdatei /etc/php.d/apc.ini. Wir müssen wenigstens die Zeile extension=apc.so hinzufügen; alle anderen Konfigurationsoptionen sind optional. Du findest eine Liste aller verfügbarer Konfigurationsoptionen auf http://de2.php.net/manual/en/ref.apc.php.

vi /etc/php.d/apc.ini


extension=apc.so
apc.enabled=1 apc.shm_size=30
Das war's. Starte Apache neu:

/etc/init.d/httpd restart

Öffne danach info.php erneut in einem Browser: http://192.168.0.100/info.php

Du müsstest nun feststellen, dass APC auf der Seite erwähnt wird, was bedeutet, dass es erfolgreich integriert wurden ist und wie erwartet funktioniert:

4 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte