Probleme mit php

ww

Well-Known Member
Hallo zusammen,

ich habe ein Problem mit PHP. Kurz die Konstellation:

FBSD 4.10
Apache13-modssl
mod_php4
php4-extensions

Apache läuft, PHP soweit auch (phpinfo()), aber phpmyadmin zeigt:

Fatal error: Call to undefined function: preg_match() in /usr/local/www/data-dist/phpma/libraries/defines.lib.php on line 25

Warum wird eine Standardfunktion nicht ausgeführt? Habe ich einen Fehler in einer Conf? Hat jemand eine Idee?

Danke für jede Hilfe,
slatat2m
 
Hmm, mit was für Optionen hast du denne die php4-extensions kompiliert? Mach sonst mal "make config" im /usr/ports/lang/php4-extensions/ und schau ob du PCRE drin hast... Bei mir klappt es so (hatte vorher auch den selben Fehler)
 
mmm...

Bei mir haben sich
mod_php4
php4-extensions
immer in die Quere bekommen, ich würde nur php4 installieren und gut ist, es trägt sich selber in Apache ein und hat bei mir immer einen Konflikt verursacht, wenn ein Programm (PHPNuke) auf mod_php4 besteht. Soviel zur Paketverwaltung, ein fettes Minus ...
 
@slatat2m
Wie Dr.Sweety schon gesagt hat, wird es wahrscheinlich am Port lang/php4-extensions liegen.
Wenn du schon eine frühere PHP-Version am Laufen gehabt hast, schau dir mal die php.ini an:

,----[ /usr/ports/UPDATING ]
|
| [...]
| If you have a previous php.ini configuration file, be sure to comment out
| the extension_dir parameter, since the correct path is statically compiled
| into the PHP binary.
| For an overview of the modules used with the old PHP binary, use
| the command "php -m".
|
`----
 
Hallo zusammen,

vielen Dank für die Tipps. Ich habe die beiden PHP-Ports entfernt und nur php4-extensions installiert. Guess what...es klappt!

Ein Frage hätte ich noch:
http://foo.de/bar/ wird angezeigt, nicht aber http://foo.de/bar (also ohne Slash am Ende. Das müßte in der httpd.conf einzustellen sein, aber wo?

Tut mir leid, wenn ich mit diesem Kleinkram komme, aber
a) I did rtfm und
b) ich habe es alleine versucht.

Schönes Wochenende,
slatat2m
 
Hallo unlink,

nein, das ist es leider nicht, im ServerName ist die IP-Adresse eingetragen (weil es noch weitere virtuelle Hosts gibt.

Eigenartigerweise geht es, wenn ich kein Unterverzeichnis wähle, also:

http://123.123.123.123/ -> ok
http://123.123.123.123 -> ok
http://123.123.123.123/website/-> ok
http://123.123.123.123/website -> not ok

Ich habe nochmal die üblichen Fehler in der httpd.conf ausgeschlossen (ServerRoot, <Directory /usr/local/www/data>, ServerName, DocumentRoot).

.
.
.
Einige Stunden später.
.
.
.

Eigentlich sollte mod_dir automatisch einen trailing slash anhängen:

A "trailing slash" redirect is issued when the server receives a request for a URL http://servername/foo/dirname where dirname is a directory. Directories require a trailing slash, so mod_dir issues a redirect to http://servername/foo/dirname/.

Macht er aber nicht, obwohl das Modul eingebunden ist:
LoadModule dir_module libexec/apache/mod_dir.so

Ein entsprechender Eintrag ist vorhanden:
<IfModule mod_dir.c>
DirectoryIndex index.php4 index.php index.html index.htm index.shtml index.shtm
</IfModule>

Ich werd&acute; noch blond...
 
Zuletzt bearbeitet:
Problem gelöst!!

Ich werde doch nicht blond. Der Fehler lag in der falschen Angabe des ServerName. Ich hatte die IP-Adresse inklusive http:// angegeben, das war falsch.

Für nachfolgende Generationen:
ServerName http://123.123.123.123 # falsch
ServerName 123.123.123.123 #richtig

Jetzt brauche ich erstmal ein Bier.

Schönen Abend,
slatat2m
 
Zurück
Oben