• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

APC Modul auf Debian installieren

Sonya*

New Member
Hallo,

ich benötige Hilfe mit Installation von Modul APC auf Debian. Ich habe Root-Rechte auf dem Server.

Meine Leidensgeschichte:
Code:
pecl install apc
downloading APC-3.0.19.tgz ...
Starting to download APC-3.0.19.tgz (115,735 bytes)
.....................done: 115,735 bytes
47 source files, building
running: phpize
Configuring for:
PHP Api Version:         20020918
Zend Module Api No:      20020429
Zend Extension Api No:   20050606
ERROR: `phpize' failed
Die letzte Zeile zeigt den Fehler, den ich nicht lösen kann. Daher habe ich eine manuelle Installation ausprobiert.

Code:
cd /usr/src
wget http://pecl.php.net/get/APC-3.0.18.tgz
tar -zxf APC-3.0.18.tgz
phpize
./configure
make
make install
Das hat funktioniert und eine Datei /usr/share/extensions/no-debug-non-zts-20020429/apc.so erstellt. Jetzt muss ich
in php.ini die Zeile extension=apc.so einbinden, aber wie?

PHPinfo:
Code:
Configuration File (php.ini) Path 	/etc
Loaded Configuration File 	/etc/php.ini
Scan this dir for additional .ini files 	(none)
additional .ini files parsed 	(none) 
.....
extension_dir	/usr/share/extensions/no-debug-non-zts-20060613	/usr/share/extensions/no-debug-non-zts-20060613

In der Datei /etc/php.ini ist die Zeile auskommentiert
Code:
; extension_dir ./

Wie binde ich jetzt das Modul ein?

Ich hatte versucht in php.ini folgende Änderungen zu machen
Code:
extension=apc.so
....
extension_dir = /usr/share/extensions/no-debug-non-zts-20020429
aber es bringt gar nichts. Nach dem Neustart von Apache ist extension_dir nach wie vor so, wie vor der Änderung und das Modul ist nicht geladen.

Zum Server:
Debian
Apache2
PHP4 und PHP5 (für welchen PHP habe ich es eigentlich installiert? Wie kriege ich es raus?)

Bitte um Hilfe! Danke!
 
Last edited by a moderator:
Hallo!
Dir fehlt erst einmal phpize. Nachinstallieren mittels aptitude install php5-dev*. Welche PHP Version du einsetzt oder einsetzten willst solltest du am besten sagen können. Wie ist denn PHP in den Apache eingebunden?


* Für PHP5, sonst das Paket php4-dev.

mfG
Thorsten
 
Hallo Thorsten,

vielen Dank für Deine schnelle Antwort.
Dir fehlt erst einmal phpize. Nachinstallieren mittels aptitude install php5-dev*.

Habe ich ausgeführt:
Code:
aptitude install php                  5-dev*
Reading package lists... Doneons/no-debug-non-zts-20020429# nano /etc/php.ini
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Reading task descriptions... Done
Building tag database... Done
Couldn't find package "php5-dev*".  However, the following
packages contain "php5-dev*" in their name:
  php5-dev
The following packages are unused and will be REMOVED:
  autoconf
The following packages have been kept back:
  apache apache-common apache-dev apache-doc apache2-utils clamav
  clamav-base clamav-daemon clamav-freshclam debconf debconf-i18n
  debconf-utils dnsutils freetype2-demos initscripts libapache-mod-perl
  libbind9-0 libc6 libc6-dev libclamav3 libdns22 libfreetype6
  libfreetype6-dev libgd2-noxpm libgnutls13 libisc11 libisccc0 libisccfg1
  libkadm55 libkrb5-dev libkrb53 liblwres9 libmozjs-dev libmozjs0d
  libmysqlclient15off libnet-dns-perl libnetpbm10 libnetpbm9 libnetpbm9-dev
  libnspr4-0d libnspr4-dev libpcre3 libpq-dev libpq4 libtiff4 libxml2
  libxml2-dev libxslt1.1 locales mtr-tiny mysql-client-5.0 mysql-common
  mysql-server-4.1 mysql-server-5.0 netpbm openssh-client openssh-server
  postfix postfix-ldap postfix-pcre postgrey samba-common smbclient
  spamassassin spamc ssh sysv-rc sysvinit sysvinit-utils tzdata unzip
0 packages upgraded, 0 newly installed, 1 to remove and 71 not upgraded.
Need to get 0B of archives. After unpacking 1716kB will be freed.
Do you want to continue? [Y/n/?]
Irgendwie sieht es für mich so aus, als ob er nichts tun wird, außer autoconf löschen, oder? Soll ich trotzdem mit 'Y' bestätigen?

Welche PHP Version du einsetzt oder einsetzten willst solltest du am besten sagen können.
Ich benutze php5. Ich weiß aber, dass auf dem Server darüber hinaus PHP4 installiert ist.

Wie ist denn PHP in den Apache eingebunden?
In phpinfo steht
Code:
Server API 	Apache 2.0 Handler
Ist CGI oder Modul? Sorry, bin ganze Null, was Serveradministration angeht.
 
Last edited by a moderator:
phpize ist anscheinend installiert, aber etwas stimmt nicht. Wenn ich phpize eingebe, dann kriege ich:
Code:
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
 
Hallo,

Wenn ich mir deinen ersten CODE-Post ansehe hast du das so eingegeben:
Code:
aptitude install php                  5-dev*

sollte allerdings so aussehen:
Code:
aptitude install php5-dev
 
Hallo,

Wenn ich mir deinen ersten CODE-Post ansehe hast du das so eingegeben:
Code:
aptitude install php                  5-dev*

sollte allerdings so aussehen:
Code:
aptitude install php5-dev
Yep :eek:
Nach dem ich 'Y' für continue eingebe, kommt das:
Code:
Do you want to continue? [Y/n/?] Y
Writing extended state information... Done
dpkg: `ldconfig' not found on PATH.
dpkg: `start-stop-daemon' not found on PATH.
dpkg: `install-info' not found on PATH.
dpkg: `update-rc.d' not found on PATH.
dpkg: 4 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)
A package failed to install.  Trying to recover:
dpkg: `ldconfig' not found on PATH.
dpkg: `start-stop-daemon' not found on PATH.
dpkg: `install-info' not found on PATH.
dpkg: `update-rc.d' not found on PATH.
dpkg: 4 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
Sind irgendwie schlecht aus, oder?
 
Installation von php5-dev hat geklappt nach dem ich folgende Zeilen ausgeführt habe:
Code:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
export PATH
Allerdings bringt pecl nach wie vor "ERROR: `phpize' failed" wie im ersten Post. :(
 
Hallo!
Bitte zukünftig nicht gleich alles am lebenden Objekt testen - da kann auch schnell mal ein Produktivsystem sterben.

Zu deinem Problem:
Ich bin kein PHP Spezialist aber ich habe den Verdacht, hier stimmen PHP Version, Zend und APC nicht überein:
Code:
Configuring for:
PHP Api Version:         20020918
Zend Module Api No:      20020429
Zend Extension Api No:   20050606
Dies können aber etliche Leute besser beantworten als ich.

mfG
Thorsten
 
Bitte zukünftig nicht gleich alles am lebenden Objekt testen - da kann auch schnell mal ein Produktivsystem sterben.
Das Objekt lebt nicht wirklich, eher schlecht als recht, daher war es nicht ganz kritisch.

Ich werde mal schauen, was ich zu den API Versionen finden kann.
 
Wenn ich das hier anschaue PHP: pecl install liefert "ERROR: 'phpize' failed" - huschi.net, dann scheinen die Versionen zu stimmen.

Weiß jemand, warum die Installation von apc.so in
Code:
/usr/share/extensions/no-debug-non-zts-20020429/
gemacht wird bzw. warum bei mir in phpinfo unter extension_dir
Code:
/usr/share/extensions/no-debug-non-zts-20060613
steht, obwohl in php.ini extension_dir gar nicht angegeben ist? Woher kommt der 2. Pfad und wie kann ich es jetzt zusammenführen?

Danke für die Hilfe!
 
In diesem Forum steht die Erklärung für die unterschiedlichen Pfade und die Lösung. (Falls hier Links auf andere Foren verboten sind, bitte um Entschuldigung und Löschung!)

Jetzt wird das Modul in das Verzeichnis installiert, was auch in phpinfo angegeben wurde. Leider ist das Modul nach Apache Neustart immer noch nicht in phpinfo sichtbar. Ich habe es mit 2 unterschiedlichen Anweisungen versucht:
Code:
extension=apc.so;
und
Code:
extension="/usr/share/extensions/no-debug-non-zts-20060613/apc.so"
beide bringen gar nichts. Das Modul wird nicht geladen.

Hat jemand noch einen Tipp, bitte?
 
Last edited by a moderator:
(Falls hier Links auf andere Foren verboten sind, bitte um Entschuldigung und Löschung!)
Nein, damit haben wir hier gar kein Problem. ;)

Leider ist das Modul nach Apache Neustart immer noch nicht in phpinfo sichtbar.
Gibt es eine Fehlermeldung im Logfile /var/log/(httpd|apache|apache2)/error*?

Denn so wie ich das sehe, hast/hattest Du zwei unterschiedliche PHP-Versionen drauf: PHP4 und PHP5. Und Dein APC scheint wohl für die 4er-Version zu sein.
Aber anhand der aptitude-Ausgabe scheint mehr als nur das durcheinander zu sein:
Zweimal MySQL: mysql-server-4.1, mysql-server-5.0.
Der Apache scheint noch der 1.3er zu sein, dennoch ist ein 2er Paket vorhanden: apache2-utils.

huschi
 
Hallo Huschi,

Gibt es eine Fehlermeldung im Logfile /var/log/(httpd|apache|apache2)/error*?
Ja, es gibt eine Fehlermeldung beim Start des Servers. Die kommt aber unabhängig davon, ob ich Modul einbinde oder nicht und der Server startet trotzdem:

Code:
[Thu Jan 15 16:49:19 2009] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Jan 15 16:49:19 2009] [notice] Digest: generating secret for digest authentication ...
[Thu Jan 15 16:49:19 2009] [notice] Digest: done
[Thu Jan 15 16:49:20 2009] [notice] Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 PHP/5.2.8 mod_ssl/2.2.3 OpenSSL/0.9.8c configured -- resuming normal operations

Denn so wie ich das sehe, hast/hattest Du zwei unterschiedliche PHP-Versionen drauf: PHP4 und PHP5. Und Dein APC scheint wohl für die 4er-Version zu sein.
Aber anhand der aptitude-Ausgabe scheint mehr als nur das durcheinander zu sein:
Zweimal MySQL: mysql-server-4.1, mysql-server-5.0.
Der Apache scheint noch der 1.3er zu sein, dennoch ist ein 2er Paket vorhanden: apache2-utils.
Das stimmt. Auf diesem Server sind alle erdenklichen Versionen installiert. PHP4 und PHP5, MySQL4 und MySQL5, Apache1.3 und Apache2. Ich benutze für meine Entwicklung die Combi: PHP5, MySQL5 und Apache2. Den Rest benötige ich nicht. Allerdings habe ich diesen Server nicht aufgesetzt und bin auch kein Linux-Profi, um verstehen zu können, wie die einzelnen Versionen da zusammenarbeiten. Ich glaube, dass die Admins es selbst nicht verstehen und arbeiten nach dem Prinzip "never change a running system".

Nach 2 Tagen "Nix-Verstehen" gebe ich auf. Ich benötige Modul APC um Download-Fortschritt in PHP zu realisieren. Ich werde jetzt aber zu sehen, dass ich da auf einen Perl-Skript zurückgreife oder einen Fachmann bitte gegen Bezahlung das Modul zu installieren.

Ganz doof bin ich nicht :) Auf einem anderen Server dauerte die Installation ganze 10 Minuten und es läuft :)
 
Denn so wie ich das sehe, hast/hattest Du zwei unterschiedliche PHP-Versionen drauf: PHP4 und PHP5. Und Dein APC scheint wohl für die 4er-Version zu sein.
Du hast Recht und hast mich ein Stückchen weiter gebracht. Wenn ich versuche, eine Erweiterung, die es nur für PHP5 gibt, zu installieren, dann erhalte ich:
Code:
pecl install uploadprogress-beta
pecl/uploadprogress requires PHP (version >= 5.2.0), installed version is 4.4.5-dev
No valid packages found
install failed
Wenn ich es jetzt richtig verstehe, dann installiert PECL für PHP4. Ich habe keine Ahnung, welche Version bei einer manuellen Installation dann benutzt wird. make, config (müsste doch auch versionsabhängig sein?) Wie sage ich diesem Server, dass ich nur PHP5 benötige? Wie kriege PECL für PHP5?
 
Back
Top