Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.



I have a confusing behaviour. I can't get any error into log file or screen.
I made a file index.php with content like this: "<?php a();".Normally, I will get message like this: "Call to undefined function a()" but when I called this script on my configuration I got nothing. Only white screen and empty logs.
I checked all rights. I turned on all possible log file. Nothing. Please help me.

My configuration is:
freebsd 8.3-RELEASE
PHP 5.4.7 (fpm-fcgi)
nginx version: nginx/1.2.4

FPM-config

[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 config

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 config (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]

I need to get errors on display and detailed record in the error.log.

share|improve this question

migrated from stackoverflow.com Oct 16 '12 at 13:43

This question came from our site for professional and enthusiast programmers.

    
Did you try making a script with a call to phpinfo() in it, checking the output and looking at the error_reporting and display_errors settings? –  GordonM Oct 16 '12 at 12:01
    
Yes. display_errors On error_reporting E_ALL & ~E_NOTICE –  Alexey Perepechko Oct 16 '12 at 12:06

1 Answer 1

fastcgi_intercept_errors on;  

Is this the culprit?

Also,, have you tried:

error_reporting(E_ALL);

at the top of your PHP scripts?

share|improve this answer
    
I solve this problem. php_admin_value[error_reporting] = 'E_ALL & ~E_NOTICE' Looks normal huh? But I found remark in documentation about quots. Do not use the quots. It breaks error logging and error displaying. Working string looks like php_admin_value[error_reporting] = E_ALL & ~E_NOTICE –  Alexey Perepechko Dec 7 '12 at 19:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.