php5.4 + freebsd8.3 + nginx kann keine Fehler bekommen

php5.4 + freebsd8.3 + nginx kann keine Fehler bekommen



Bei mir ist das Verhalten verwirrend. Ich bekomme keine Fehler in die Protokolldatei oder auf den Bildschirm.
Ich habe eine Datei index.php mit folgendem Inhalt erstellt: „<?php a();“. Normalerweise bekomme ich eine Meldung wie diese: „Aufruf der nicht definierten Funktion a()“, aber als ich dieses Skript in meiner Konfiguration aufgerufen habe, habe ich nichts bekommen. Nur einen weißen Bildschirm und leere Protokolle.
Ich habe alle Rechte überprüft. Ich habe alle möglichen Protokolldateien aktiviert. Nichts. Bitte helfen Sie mir.

Meine Konfiguration ist:
freebsd 8.3-RELEASE
PHP 5.4.7 (fpm-fcgi)
Nginx-Version: nginx/1.2.4

FPM-Konfiguration

[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice
emergency_restart_threshold = 5
emergency_restart_interval = 2
process_control_timeout = 2
daemonize = yes
events.mechanism = kqueue

[puser]
listen = /usr/local/www/host/tmp/php-fpm.sock;
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = puser
listen.group = puser
listen.mode = 0666
user = puser
group = puser
pm = dynamic
pm.max_children = 30
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 5
pm.max_requests = 50
slowlog = /usr/local/www/host/logs/fpm.log.slow
request_slowlog_timeout = 1s
rlimit_files = 1024
rlimit_core = 0
chroot = /usr/local/www/host/
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[TMP] =    /tmp
env[TMPDIR] = /tmp
env[TEMP] =   /tmp
php_admin_value[upload_tmp_dir] = /tmp
php_admin_value[cgi.fix_pathinfo] = 0
php_admin_value[date.timezone]= 'Europe/Moscow'
php_admin_value[memory_limit] = 320m
php_admin_value[max_execution_time] = 180
php_admin_flag[log_errors] = on
php_admin_value[error_log]  = /logs/fpm-err.log
php_admin_value[error_reporting] = 'E_ALL & ~E_NOTICE'
php_admin_value[display_errors] = on
php_admin_flag[display_startup_errors] = on

NGINX-Konfiguration

user  www;
worker_processes  2;
worker_rlimit_nofile 80000;

error_log  /var/log/nginx_error.log  notice;

#pid        logs/nginx.pid;

events {
    worker_connections  2048;
    use kqueue;
}

http {
    server_tokens off;
    client_max_body_size 4m;
    include       mime.types;
    default_type  application/octet-stream;
    charset utf-8;
    sendfile        on;
    keepalive_timeout  65;
    tcp_nopush          on;
    tcp_nodelay         on;
    log_format IP .$remote_addr.;
    log_format main '$remote_addr - $remote_user [$time_local] $request $request_body '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
    reset_timedout_connection on;
    server {
  listen 80;
  server_name www.example.com;

  access_log /usr/local/www/host/logs/access.log main;
  error_log  /usr/local/www/host/logs/error.log error;
  error_page 500 502 503 504 /errors/50x.html;
  error_page 404  /errors/404.html;
  root /usr/local/www/host/htdocs;
  index index.php index.html index.htm;


  location / {
        index  index.html index.php;
        try_files $uri /index.php?$args;
    }

   location ~ \.php$ {
    fastcgi_split_path_info  ^(.+\.php)(.*)$;
    fastcgi_intercept_errors on;
    fastcgi_pass unix:/usr/local/www/host/tmp/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME   /htdocs$fastcgi_script_name;
    fastcgi_param  PATH_INFO        $fastcgi_path_info;
    fastcgi_param  PATH_TRANSLATED  /htdocs$fastcgi_script_name;
    include /usr/local/etc/nginx/fastcgi_params;
    }
}

}

PHP-Konfiguration(php.ini)

[PHP]
engine = On
short_open_tag = On
asp_tags = Off
precision = 14
y2k_compliance = On
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 100
allow_call_time_pass_reference = Off
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions = dl,system,exec,passthru,shell_exec
disable_classes =
expose_php = On
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = On
error_log = /var/log/php-fpm-error.log
variables_order = "GPCS"
request_order = "GP"
register_globals = Off
register_long_arrays = Off
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[Date]
date.timezone = Europe/Moscow
[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
[Phar]
[Syslog]
define_syslog_variables  = Off
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[OCI8]
[PostgresSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]

Ich muss Fehler angezeigt bekommen und eine detaillierte Aufzeichnung im Fehlerprotokoll erhalten.

Antwort1

fastcgi_intercept_errors on;  

Ist das der Täter?

Haben Sie außerdem Folgendes versucht:

error_reporting(E_ALL);

oben in Ihren PHP-Skripten?

verwandte Informationen