fastcgi_intercept_errors on;
Este é o culpado?
Além disso, você já tentou:
error_reporting(E_ALL);
no topo dos seus scripts PHP?
Eu tenho um comportamento confuso. Não consigo obter nenhum erro no arquivo de log ou na tela.
Eu fiz um arquivo index.php com conteúdo como este:
"<? php a ();". Normalmente, eu recebo uma mensagem como esta: "Chame a função indefinida a ()" mas quando eu chamei este script na minha configuração eu não obtive nada. Apenas tela branca e registros vazios.
Eu verifiquei todos os direitos. Eu liguei todo o arquivo de log possível. Nada. Por favor me ajude.
Minha configuração é:
freebsd 8.3-RELEASE
PHP 5.4.7 (fpm-fcgi)
versão nginx: 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
Configuração do NGINX
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;
}
}
}
Configuração do PHP (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]
Eu preciso obter erros na exibição e registro detalhado no error.log.
fastcgi_intercept_errors on;
Este é o culpado?
Além disso, você já tentou:
error_reporting(E_ALL);
no topo dos seus scripts PHP?