Apache24 verweigert php_mod

affefreebsd

Well-Known Member
Hi Leute, ich bin seit 2015 mit BSD System (open & free) unterwegs da mir damals systemd (GNU/Linux) auf den Sac* ging und bei jedem Release "alles" wieder anders war (debian). Egal - heute finde ich mich bei BSD auch nicht mehr wohl ;-( Muss gerade nur einen FAMP Server aufsetzten und nix geht .... Mysql (bzw. Mariadb) habe ich noch nicht mal installiert aber es scheitet schon bei apache24 und php.....

Was habe ich bis jetzt gemacht!
apache24:
1. installiert,
2. sysrc......=yes
(Läuft, oder besser "It works" :-)

php82,php-mod82:
1. installiert
2. sysrc php-fpm_enable=yes

cat /usr/local/etc/apache24/modules.d/001_php-mod.conf
Code:
<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

Dann:
cat /boot/loader.conf
Code:
accf_http_load="YES"

APACHE ERROR LOG --- tail /var/log/https-error.log
[Tue Mar 28 14:18:34.976574 2023] [mpm_prefork:notice] [pid 952] AH00169: caught SIGTERM, shutting down
[Tue Mar 28 14:19:38.058984 2023] [mpm_prefork:notice] [pid 830] AH00163: Apache/2.4.56 (FreeBSD) configured -- resuming normal operations
[Tue Mar 28 14:19:38.083714 2023] [core:notice] [pid 830] AH00094: Command line: '/usr/local/sbin/httpd -D NOHTTPACCEPT'

Alle Anleitungen im Netz die ich gefunden habe machen es ähnlich! Wo ist mein Fehler?
Ich zweifel langsam an mir ....

Gruss
*ape

PS: ganz vergessen
Code:
# apachectl configtest
Performing sanity check on apache24 configuration:
Syntax OK
 
Ich selbst benutzt kein fpm, aber soweit ich mich erinnere, musst du auch da die entsprechenden Module laden und im vHost den SetHandler für \.php$ deinen Workern zuweisen.
 
Du musst glaub ich noch das PHP-Modul in den Apachen laden. Geht in der httpd.conf mit:
Apache-Konfiguration:
LoadModule php8_module        libexec/apache24/libphp8.so

Mit folgendem Befehl kannst du prüfen, ob das Modul geladen ist:
Code:
# httpd -M
 
httpd -M
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_prefork_module (shared)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)
php_module (shared)

Ja, php_module ist geladen und auch in der httpd.conf drin ... jetzt started apache24 aber erst garnicht:
# service apache24 start
---- läuft sauber durch, server ist aber nicht gestart ---
# /usr/local/sbin/httpd -X
Segmentation fault (core dumped)

Gibt es eine verbose Mode bei apache?
 
So, apache startet nicht wenn "LoadModule php_module libexec/apache24/libphp.so" eingeschaltet ist.
Kommentiere "#" ich es aus, dann läuft er - natürlich ohne php....
 
Apache hat ein Error-Log. Da kannst du mal gucken, ob dort was drin steht, was dir evtl. weiter hilft.
Hast du auch versucht, in der "LoadModule"-Zeile die PHP-Version mit anzugeben, wie ich oben im Beispiel (Version 8)?

Und ich glaube, du musst entweder PHP-FPM oder mod_php nutzen. Beides zusammen macht auch keinen Sinn IMHO.
 
mod_php und FPM sind zwei unterschiedliche Möglichkeiten, PHP in den Webserver einzubinden.
Ich empfehle dir, nicht mod_php zu nutzen, sondern php mit mod_fcgid (oder eben FPM) zu betreiben.

Wenn dir das nicht möglich ist, prüfe ob du PHP mit oder ohne ZTS (Zend Thread Safety) bauen kannst, eventuell kommen daher die Abstürze.

Rob
 
Sollte auf OpenBSD (nur der Pfad?) nicht anders sein, aber du musst zunächst die ini schreiben/kopieren cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

In meinen Notizen hat meine 001_mod_php.conf:
Code:
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

Und du musst dann in der httpd.conf eventuell noch das aktivieren:
Code:
# Third party modules
IncludeOptional etc/apache24/modules.d/[0-9][0-9][0-9]_*.conf

Wahrscheinlich fehlt aber nur die php.ini
 
Apache hat ein Error-Log. Da kannst du mal gucken, ob dort was drin steht, was dir evtl. weiter hilft.
Hast du auch versucht, in der "LoadModule"-Zeile die PHP-Version mit anzugeben, wie ich oben im Beispiel (Version 8)?

Und ich glaube, du musst entweder PHP-FPM oder mod_php nutzen. Beides zusammen macht auch keinen Sinn IMHO.
Ja, das ist Richtig! mod_phpXX als Module - dann muss man den "php" umlenken wie ihc es gemacht habe im SetHandler

oder mod_phpXX Module auskomentieren und den SetHandler direkt auf php-fpm umbiegen. Dann kann man besser glaube ich sofort nginx nehmen wenn an es so trennen will. Der Handler sieht dann eher so aus"proxy:unix:/run/php/php7.3-fpm.sock|fcgi://localhost"
 
Sollte auf OpenBSD (nur der Pfad?) nicht anders sein, aber du musst zunächst die ini schreiben/kopieren cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

In meinen Notizen hat meine 001_mod_php.conf:
Code:
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

Und du musst dann in der httpd.conf eventuell noch das aktivieren:
Code:
# Third party modules
IncludeOptional etc/apache24/modules.d/[0-9][0-9][0-9]_*.conf

Wahrscheinlich fehlt aber nur die php.ini
ist drin ->
IncludeOptional etc/apache24/modules.d/[0-9][0-9][0-9]_*.conf
Hab ne Kopie von der php.ini-production genommen
Wahrscheinlich fehlt aber nur die php.ini
 
hattest du bei/nach Installation vom php noch das gemacht:

Code:
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
 
Dann hilft da jetzt das .log weiter, wenn die regulären Stolperfallen alle umschifft sind :)
 
Weiss jemand ob es einen VERBOSE MODE für apache kennt?
Er seit wieder Fehler an:


[Tue Mar 28 15:54:32.716402 2023] [core:notice] [pid 1070] AH00094: Command line: '/usr/local/sbin/httpd -D NOHTTPACCEPT'
[Tue Mar 28 15:56:32.497889 2023] [mpm_prefork:notice] [pid 1070] AH00169: caught SIGTERM, shutting down
[Tue Mar 28 16:09:41.597392 2023] [mpm_prefork:notice] [pid 1474] AH00163: Apache/2.4.56 (FreeBSD) configured -- resuming normal operations
[Tue Mar 28 16:09:41.601717 2023] [core:notice] [pid 1474] AH00094: Command line: '/usr/local/sbin/httpd -D NOHTTPACCEPT'
[Tue Mar 28 16:19:28.124355 2023] [mpm_prefork:notice] [pid 1474] AH00169: caught SIGTERM, shutting down
[Tue Mar 28 16:20:29.500969 2023] [mpm_prefork:notice] [pid 825] AH00163: Apache/2.4.56 (FreeBSD) configured -- resuming normal operations
[Tue Mar 28 16:20:29.502951 2023] [core:notice] [pid 825] AH00094: Command line: '/usr/local/sbin/httpd -D NOHTTPACCEPT'
[Tue Mar 28 16:26:33.104387 2023] [mpm_prefork:notice] [pid 825] AH00169: caught SIGTERM, shutting down
[Tue Mar 28 16:26:35.234077 2023] [mpm_prefork:notice] [pid 906] AH00163: Apache/2.4.56 (FreeBSD) configured -- resuming normal operations
[Tue Mar 28 16:26:35.235491 2023] [core:notice] [pid 906] AH00094: Command line: '/usr/local/sbin/httpd -D NOHTTPACCEPT'
 
Weiss jemand ob es einen VERBOSE MODE für apache kennt?
htdocs.conf -> LogLevel warn -> LogLevel debug

Hast du den apache in einer jail?
Dann gib mal explizit (auch in htdocs.conf) die IP und Servername an und ja, beide mit :80 dahinter:

Code:
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
.
.
.

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80

Ist accf_http_load überhaupt geladen? Rennt eventuell noch eine andere Instanz? Wahrscheinlich am besten mal alles neu starten um sauber debuggen zu können.
 
So ich gebe auf nach 2 Tagen auf einen Einfachen Webserver mit Php zu installieren. Kompett neu aufgesetzt - diesmal mit ngnix und fpm aber nix geht.
Das ist ja schlimmer als in den 90ern mit suse 5.x.
Soetwas habe ich noch nie erlebt. Debian installation läuft .... einen schönen Tag noch.
 
So ich gebe auf nach 2 Tagen auf einen Einfachen Webserver mit Php zu installieren. Kompett neu aufgesetzt - diesmal mit ngnix und fpm aber nix geht.
Das ist ja schlimmer als in den 90ern mit suse 5.x.
Soetwas habe ich noch nie erlebt. Debian installation läuft .... einen schönen Tag noch.
Junge du hast nicht mal im richtigen Forum gefragt weshalb alle versucht dir mit nem OpenBSD Problem zu helfen ...
 
So ich gebe auf nach 2 Tagen auf einen Einfachen Webserver mit Php zu installieren.
Ich weiß ehrlich gesagt auch gar nicht, wo das Problem liegt.
Hab hier mal aus Spaß ein FreeBSD 13.1 (AMD64) genommen und dann einfach apache24 und php82 nebst mod_php82 (das gibt netterweise als Post-Inst-Output noch den Hinweis, was man in die Apache-Config eintragen muss, damit es funktioniert) installiert und dann läuft Apache+PHP auch sofort. Das hat jetzt vielleicht 5 Minuten gedauert. Keine Ahnung, ob man da mit Debian noch Zeit einsparen kann. ;-)

Junge du hast nicht mal im richtigen Forum gefragt
Das ist bestimmt einer dieser seltenen Fälle, wo das Problem vor dem Bildschirm sitzt. :-)
 
1. installiert,
2. sysrc......=yes
(Läuft, oder besser "It works" :-)

php82,php-mod82:
1. installiert
2. sysrc php-fpm_enable=yes
Hab das grade mal mit ner Installation bei mir von neulich verglichen, ich machte ein

pkg install apache24

und dann ein

pkg install php81 php81-mysqli mod_php81

enabled hab ich laut Konsolen-Historie nur den Apachen
sysrc apache24_enable=yes

Bei dir oben, du installiertest php und php-mod, enablest per sysrc aber php-fpm, soll das so?
 
# /usr/local/sbin/httpd -X
Segmentation fault (core dumped)
Hier hätte der Thread schon aufhören können.
Wenn Apache mit mod_php abranzt, bringt es nicht viel, das Loglevel hochzulegen oder Konfigurationsschnippsel anzufassen.
Ich würde hier erstmal prüfen, ob der PHP-Interpreter überhaupt selbst ausführbar ist:
$ /usr/local/bin/php -v

Wenn PHP hier ebenso mit einem SEGV aussteigt, muss dieses Problem zuerst gelöst werden.
Rob
 
@affefreebsd, wie bist du bei der Installation vorgegangen?
Ich hab das (apache und php) zufällig grad selber letzte Woche mehrmals irgendwo aufgesetzt und da war das in ein paar Minuten vorbei, keine große Sache eigentlich, siehe die pkg install Befehle oben, dann noch wie beschrieben das php-production.ini nach php.ini kopieren, bzw in der apache Konfig sicherstellen, dass die richtigen Module geladen werden, fertig;
Ich versuche draufzukommen, warum das bei dir segfaultet; Segfaults hatte ich (gerade) mit FreeBSD auch desöfteren in der Vergangenheit, seit FreeBSD 4.x - deswegen die Nachfrage;
 
Zurück
Oben