2014-12-13 76 views
0

新发展nginx的和PHP-FPM [调试] 11:资源暂时不可用

PHP的核心错误日志都低于,但该网站的特定错误日志显示这一点。我的php.ini文件中的内存为:

memory_size 1024;

所以它不是php的内存限制。我也禁用了我所有的插件,所以这不是安全插件上的内存限制。在PHP中发送FastCGI错误:“PHP消息:PHP致命错误:允许内存大小268435456字节耗尽(试图分配71个字节)”错误:28264#0:* 212 FastCGI在stderr中发送:“PHP消息:PHP致命错误:在/ var/WWW/..

与WordPress插件运行完整的一批进口

我有麻烦。我得到这个错误,当我让nginx的调试,其结果是立刻得到404错误之后,我无法完全导入我的数据。

我很确定这是一个错误,但我找不到正确的答案来修复它。

请帮忙。

我迄今所做的:

  • 它看起来像一个nginx的漏洞,我的nginx的版本是旧的,所以我升级。不用找了。
  • 它看起来似乎仍然可能与php-fpm有关。我升级了。不用找了。
  • 我禁用了所有的插件。不用找了。

服务器

  • 的CentOS 6.0
  • nginx的v 1.0.15
  • PHP-FPM v 5.3.3(FPM-FCGI)
  • Web服务器上运行3个非常低流量的网站
  • PHP-FPM设置为ondemmand

PHP.ini中配置:

  • PM =按需
  • pm.process_idle_timeout = 50年代
  • pm.max_children = 20个
  • pm.start_servers = 1个
  • pm.min_spare_servers = 3个
  • pm.max_spare_servers = 5个
  • pm.max_requests = 1024
  • pm。status_path = /状态

我无法张贴我的日志,所以请检查出比较

Nginx的日志:

[12-Dec-2014 06:35:49.398315] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 1 spare children 
[12-Dec-2014 06:35:50.399474] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 1 spare children 
[12-Dec-2014 06:35:51.400765] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 1 spare children 
[12-Dec-2014 06:35:52.402053] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 1 spare children 
[12-Dec-2014 06:35:53.403346] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 1 spare children 
[12-Dec-2014 06:35:53.417762] DEBUG: pid 13384, fpm_got_signal(), line 72: received SIGCHLD 
[12-Dec-2014 06:35:53.417836] DEBUG: pid 13384, fpm_children_bury(), line 254: [pool www] child 18327 has been killed by the process managment after 52.123053 seconds from start 
[12-Dec-2014 06:35:53.417863] DEBUG: pid 13384, fpm_event_loop(), line 411: event module triggered 1 events 
[12-Dec-2014 06:35:54.404978] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 0 spare children 
[12-Dec-2014 06:35:54.687559] DEBUG: pid 13384, fpm_children_make(), line 421: [pool www] child 18397 started 




[12-Dec-2014 06:35:54.687593] DEBUG: pid 13384, fpm_pctl_on_socket_accept(), line 536: [pool www] got accept without idle child available .... I forked 
[12-Dec-2014 06:35:54.687602] DEBUG: pid 13384, fpm_event_loop(), line 411: event module triggered 1 events 




[12-Dec-2014 06:35:55.406455] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 1 spare children 
[12-Dec-2014 06:35:56.407633] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 1 spare children 
[12-Dec-2014 06:35:57.408949] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 1 spare children 
[12-Dec-2014 06:35:58.410111] DEBUG: pid 13384, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool www] currently 0 active children, 1 spare children 

PHP日志:

2014/12/12 06:35:02 [debug] 13350#0: *223 http header done 
2014/12/12 06:35:54 [debug] 13350#0: accept on 0.0.0.0:80, ready: 1 
2014/12/12 06:35:54 [debug] 13350#0: posix_memalign: 0000000002273A80:256 @16 
2014/12/12 06:35:54 [debug] 13350#0: *226 accept: 66.249.67.123 fd:3 
2014/12/12 06:35:54 [debug] 13350#0: *226 event timer add: 3: 60000:1418387814684 
2014/12/12 06:35:54 [debug] 13350#0: *226 epoll add event: fd:3 op:1 ev:80000001 
2014/12/12 06:35:54 [debug] 13350#0: accept() not ready (11: Resource temporarily unavailable) 
2014/12/12 06:35:54 [debug] 13350#0: *226 malloc: 0000000002274AF0:1296 
2014/12/12 06:35:54 [debug] 13350#0: *226 posix_memalign: 0000000002273BE0:256 @16 
2014/12/12 06:35:54 [debug] 13350#0: *226 malloc: 000000000232F4B0:131072 
2014/12/12 06:35:54 [debug] 13350#0: *226 posix_memalign: 00000000021F7590:4096 @16 
2014/12/12 06:35:54 [debug] 13350#0: *226 http process request line 
2014/12/12 06:35:54 [debug] 13350#0: *226 recv: fd:3 315 of 131072 
2014/12/12 06:35:54 [debug] 13350#0: *226 http request line: "GET /stores/giltcity/page/78/ HTTP/1.1" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http uri: "/stores/giltcity/page/78/" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http args: "" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http exten: "" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http process request header line 
2014/12/12 06:35:54 [debug] 13350#0: *226 http header: "Host: mydiscountman.com" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http header: "Connection: Keep-alive" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http header: "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http header: "From: googlebot(at)googlebot.com" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http header: "Accept-Encoding: gzip,deflate" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http header: "User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 
2014/12/12 06:35:54 [debug] 13350#0: *226 http header done 
2014/12/12 06:37:11 [debug] 13350#0: accept on 0.0.0.0:80, ready: 1 

Nginx Global Confi摹/etc/nginx/nginx.conf:

user apache; 
worker_processes 1; 
pid /var/run/nginx.pid; 


events { 
worker_connections 768; 
multi_accept on; 
use epoll; 
} 

http { 

# Let NGINX get the real client IP for its access logs 
set_real_ip_from 127.0.0.1; 
real_ip_header X-Forwarded-For; 

# Basic Settings 
sendfile on; 
tcp_nopush on; 
tcp_nodelay on; 
keepalive_timeout 20; 
client_max_body_size 15m; 
client_body_timeout 60; 
client_header_timeout 60; 
client_body_buffer_size 128k; 
client_header_buffer_size 128k; 
large_client_header_buffers 4 16k; 
send_timeout 60; 
reset_timedout_connection on; 
types_hash_max_size 8192; 
server_tokens off; 

# server_names_hash_bucket_size 64; 
# server_name_in_redirect off; 

include /etc/nginx/mime.types; 
default_type application/octet-stream; 

# Logging Settings 
# access_log /var/log/nginx/access.log; 
error_log /var/log/nginx/error.log debug; 

# Log Format 
log_format main '$remote_addr - $remote_user [$time_local] ' 
'"$request" $status $body_bytes_sent "$http_referer" ' 
'"$http_user_agent" "$http_x_forwarded_for"'; 

# Gzip Settings 
gzip on; 
gzip_static on; 
gzip_disable "msie6"; 
gzip_vary on; 
gzip_proxied any; 
gzip_comp_level 6; 
gzip_min_length 512; 
gzip_buffers 16 8k; 
gzip_http_version 1.1; 
gzip_types text/css text/javascript text/xml text/plain text/x-component 
application/javascript application/x-javascript application/json 
application/xml application/rss+xml font/truetype application/x-font-ttf 
font/opentype application/vnd.ms-fontobject image/svg+xml; 

# Virtual Host Configs 
include /etc/nginx/conf.d/*.conf; 
include /etc/nginx/sites-enabled/*; 
} 

Nginx的站点配置的/ etc/nginx的/网站可用/ TESTME:

server { 
listen  80; 
server_name testme.XXXXXXX.com; 

port_in_redirect off; 
server_tokens off; 
autoindex off; 

client_max_body_size 15m; 
client_body_buffer_size 128k; 

access_log /var/log/nginx/testme/access_log main; 
error_log /var/log/nginx/testme/error_log; 

root /var/www/testme; 
index index.php index.html index.htm; 
try_files $uri $uri/ /index.php; 

error_page 404    /404error.html; 
location = /var/www/testme/404error.html { 
    internal; 
} 

error_page 500    /500error.html; 
location = /var/www/testme/500error.html { 
    internal; 
} 

# Define default caching of 24h 
expires 8s; 
add_header Pragma public; 
add_header Cache-Control "max-age=86400, public, must-revalidate, proxy-revalidate"; 

# Redirect server error pages to static 50x.html 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
    root /usr/share/nginx/html; 
} 

# Don't log robots.txt requests 
location = /robots.txt { 
    allow all; 
    log_not_found off; 
    access_log off; 
} 

location /phpmyadmin { 
auth_basic   "Restricted"; 
auth_basic_user_file /var/www/testme/phpmyadmin/.htpasswd; 
try_files $uri $uri/ index.html index.php; 
index index.html index.htm index.php; 
location ~ /\.ht { 
    deny all; 
} 
location ~* ^.+\.(css|js)$ { 
    #try_files $uri $uri/; 
    #root /var/www/testme/phpmyadmin; 
    access_log off; 
} 
location ~ ^.+\.php { 
    try_files $uri $uri/ *.php; 
    fastcgi_split_path_info ^(.+.php)(.*)$; 
    fastcgi_pass unix:/var/run/php-fpm.socket; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME /var/www/testme$fastcgi_script_name; 
     fastcgi_param SCRIPT_NAME  $fastcgi_script_name; 
     include /etc/nginx/fastcgi_params; 
     fastcgi_intercept_errors on; 
     fastcgi_ignore_client_abort off; 
     fastcgi_connect_timeout 60; 
     fastcgi_send_timeout 180; 
     fastcgi_read_timeout 180; 
     fastcgi_buffer_size 128k; 
     fastcgi_buffers 4 256k; 
     fastcgi_busy_buffers_size 256k; 
     fastcgi_temp_file_write_size 256k; 

} 
} 

# Rewrite for versioned CSS+JS via filemtime 
# location ~* ^.+\.(css|js) { 
#  rewrite ^(.+)\.(\d+)\.(css|js)$ $1.$3 last; 
#  expires 31536000s; 
#  access_log on; 
#  log_not_found on; 
#  add_header Pragma public; 
#  add_header Cache-Control "max-age=31536000, public"; 
# } 

# Aggressive caching for static files 
# If you alter static files often, please use 
# add_header Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate"; 
location ~* \. (asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|ogv|otf|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|t?gz|tif|tiff|ttf|wav|webm|wma|woff|wri|xla|xls|xlsx|xlt|xlw|zip)$ { 
    expires 31536000s; 
    access_log on; 
    log_not_found on; 
    add_header Pragma public; 
    add_header Cache-Control "max-age=31536000, public"; 
} 


location ~* (^(?!(?:(?!(php|inc)).)*/uploads/).*?(php)) { 
set $php_root $document_root; 
    if ($request_uri ~* /phpmyadmin) { 
    #set $php_root /usr/share; 
    } 

    try_files $uri = 404; 
    fastcgi_split_path_info ^(.+.php)(.*)$; 
    fastcgi_pass unix:/var/run/php-fpm.socket; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name; 
    fastcgi_param SCRIPT_NAME  $fastcgi_script_name; 
    include /etc/nginx/fastcgi_params; 
    fastcgi_intercept_errors on; 
    fastcgi_ignore_client_abort off; 
    fastcgi_connect_timeout 3600; 
    fastcgi_send_timeout 3600; 
    fastcgi_read_timeout 3600; 
    fastcgi_buffer_size 128k; 
    fastcgi_buffers 4 256k; 
    fastcgi_busy_buffers_size 256k; 
    fastcgi_temp_file_write_size 256k; 
    } 

} 

的php.ini

[PHP] 

    ;;;;;;;;;;;;;;;;;;; 
    ; Quick Reference ; 
    ;;;;;;;;;;;;;;;;;;; 

    error_reporting = E_ALL & ~E_NOTICE 

    extension=apc.so 

    ;;;;;;;;;;;;;;;;;;;; 
    ; Language Options ; 
    ;;;;;;;;;;;;;;;;;;;; 

    engine = On 
    short_open_tag = Off 
    asp_tags = Off 
    precision = 14 
    y2k_compliance = On 
    zlib.output_compression = Off 
    implicit_flush = Off 
    unserialize_callback_func = 
    serialize_precision = 100 

    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 = 
    disable_classes = 
    realpath_cache_size = 16k 
    realpath_cache_ttl = 120 

    ;;;;;;;;;;;;;;;;; 
    ; Miscellaneous ; 
    ;;;;;;;;;;;;;;;;; 

    expose_php = On 

    ;;;;;;;;;;;;;;;;;;; 
    ; Resource Limits ; 
    ;;;;;;;;;;;;;;;;;;; 

    max_execution_time = 600 
    set_time_limit = 600 
    max_input_time = 300 
    memory_limit = 2048M 

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
    ; Error handling and logging ; 
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

    error_reporting = E_ALL & ~E_DEPRECATED 
    display_errors = Off 
    display_startup_errors = Off 
    log_errors = On 
    log_errors_max_len = 1024 
    ignore_repeated_errors = Off 
    ignore_repeated_source = Off 
    report_memleaks = On 
    track_errors = Off 
    html_errors = Off 
    error_log = /var/log/php-fpm/www-error.log 


    ;;;;;;;;;;;;;;;;; 
    ; Data Handling ; 
    ;;;;;;;;;;;;;;;;; 

    variables_order = "GPCS" 
    request_order = "GP" 
    register_globals = Off 
    register_long_arrays = Off 
    register_argc_argv = Off 
    auto_globals_jit = On 
    post_max_size = 384M 
    magic_quotes_gpc = Off 
    magic_quotes_runtime = Off 
    magic_quotes_sybase = Off 
    auto_prepend_file = 
    auto_append_file = 
    default_mimetype = "text/html" 

    ;;;;;;;;;;;;;;;;;;;;;;;;; 
    ; Paths and Directories ; 
    ;;;;;;;;;;;;;;;;;;;;;;;;; 

    doc_root = 
    user_dir = 
    enable_dl = Off 
    cgi.fix_pathinfo=0 

    ;;;;;;;;;;;;;;;; 
    ; File Uploads ; 
    ;;;;;;;;;;;;;;;; 

    file_uploads = On 
    upload_max_filesize = 512M 

    ;;;;;;;;;;;;;;;;;; 
    ; Fopen wrappers ; 
    ;;;;;;;;;;;;;;;;;; 

    allow_url_fopen = On 
    allow_url_include = Off 
    default_socket_timeout = 120 

    ;;;;;;;;;;;;;;;;;;;;;; 
    ; Dynamic Extensions ; 
    ;;;;;;;;;;;;;;;;;;;;;; 

    ;;;;;;;;;;;;;;;;;;; 
    ; Module Settings ; 
    ;;;;;;;;;;;;;;;;;;; 

    [Date] 

    date.timezone = America/Chicago 

    [filter] 

    [iconv] 

    [intl] 

    [sqlite] 

    [sqlite3] 

    [Pcre] 

    [Pdo] 

    [Phar] 

    [Syslog] 

    define_syslog_variables = Off 

    [mail function] 

    SMTP = localhost 
    smtp_port = 25 
    sendmail_path = /usr/sbin/sendmail -t -i 
    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 

    [MySQL] 

    mysql.allow_persistent = On 
    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 = 300 
    mysql.trace_mode = Off 

    [MySQLi] 

    mysqli.max_links = -1 
    mysqli.default_port = 3306 
    mysqli.default_socket = 
    mysqli.default_host = 
    mysqli.default_user = 
    mysqli.default_pw = 
    mysqli.reconnect = Off 

    [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.save_path = "/var/lib/php/session" 
    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.entropy_file = 
    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.timeout = 300 
    mssql.secure_connection = Off 




    [Tidy] 

    tidy.clean_output = Off 

    [soap] 

    soap.wsdl_cache_enabled=1 
    soap.wsdl_cache_dir="/tmp" 
    soap.wsdl_cache_ttl=86400 
+0

所以,分叉命令不是一个错误。由于孩子被杀而停止100%的PHP进程是根本问题。 我为什么还是如何不确定。任何想法的人? – Thomas 2014-12-13 21:51:18

+0

memory_size 1024;意味着1024字节。 – 2014-12-13 23:15:17

+0

允许的内存大小268435456字节耗尽(试图分配71个字节) - 它确实是PHP内存限制,所以检查您的设置(使用phpinfo()命令) – 2014-12-13 23:16:33

回答

0

我想你应该检查当时的代码PHP强制执行,并且应该优化导致缓冲区ov的命令PHP erflow。而不是增加代码上的内存限制执行命令。

因为我的公司有你的事情错误。起初,我增加了dev的内存,但是在我们意识到不应该增加应该在代码上执行最佳性能的内存之后。当它帮助你改进编程时。

相关问题