Я использую php-fpm 5.5.9 наряду с nginx 1.4.6 на моей машине Ubuntu 14.04. Я установил их использующий склонный - получают диспетчер пакетов. Я не могу получить отслеживание стека ошибки, с которой мой index.php сценарий встречается в журнале ошибок, а также на браузере. Я искал и реализовал несколько решений от stackoverflow и других статей, но ни один из них не работал на меня. Вот мой nginx conf наряду с моим php-fpm conf файл. Выручите меня, если я делаю глупую ошибку.
Конфигурация Nginx:
location ~ \.php$ {
# With php5-fpm:
#try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
fastcgi_pass 127.0.0.1:7777;
fastcgi_index index.php;
}
Конфигурация PHP-FPM:
error_log = /tmp/php5-fpm.log
PHP-FPM объединяют Конфигурацию:
catch_workers_output = yes
slowlog = /var/log/php-fpm/$pool.log.slow
listen = 127.0.0.1:7777
php_flag[display_errors] = On
php_admin_value[error_log] = /tmp/fpm-php.www.log
php_admin_flag[log_errors] = On
Заранее спасибо.
Попытайтесь вставить конфигурацию своего сайта в директиве сервера следующее:
access_log /var/log/nginx/your_site.log;
error_log /var/log/nginx/your_site.log;
заменяют your_site.log
названием Вашего virtualhost - доменное имя.
Полный пример:
php-fpm
/etc/php5/fpm/php-fpm.conf
[global]
pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
include=/etc/php5/fpm/pool.d/*.conf
/etc/php5/fpm/pool.d
[www]
user = www-data
group = www-data
pm = dynamic
pm.max_children = 10
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
Виртуальный хост
upstream php {
server unix:/tmp/php-cgi.socket;
server 127.0.0.1:9000;
}
server {
listen 80; ## listen for ipv4; this line is default and implied
root /srv/www/mysite;
index index.php;
server_name mysite.com www.mysite.com;
access_log /var/log/nginx/mysite_access.log;
error_log /var/log/nginx/mysite_error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9$
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
access_log off;
log_not_found off;
}
}
Если Вы хотите ошибки выполнения сценария, это настроено по телефону /etc/php5/fpm/php.ini
.
, Если Вы хотите ошибки на файле журнала, редактируете php.ini
:
display_errors = off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
error_log = /path/to/some/file.log
, Если Вы хотите их на браузере, отредактируйте php.ini
:
display_errors = on
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
или, добавляя его сверху сценария:
ini_set('display_errors',1);
error_reporting( E_ALL & ~E_DEPRECATED & ~E_STRICT );
я не знаю способ зарегистрировать отслеживание стека непосредственно в файл журнала, но здесь существует способ, которым можно реализовать определение собственного обработчика ошибок.